summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README.s60-mkspec99
-rwxr-xr-xbin/patch_capabilities.pl2
-rwxr-xr-xbin/syncqt6
-rwxr-xr-xconfigure7
-rw-r--r--demos/declarative/calculator/Core/calculator.js2
-rw-r--r--demos/declarative/calculator/calculator.qml29
-rw-r--r--demos/declarative/flickr/mobile/TitleBar.qml1
-rw-r--r--demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml4
-rw-r--r--demos/declarative/samegame/SamegameCore/BoomBlock.qml11
-rwxr-xr-xdemos/declarative/samegame/SamegameCore/samegame.js7
-rw-r--r--demos/declarative/twitter/TwitterCore/AuthView.qml2
-rw-r--r--demos/declarative/twitter/TwitterCore/HomeTitleBar.qml1
-rw-r--r--demos/declarative/twitter/TwitterCore/TitleBar.qml1
-rw-r--r--doc/src/classes/phonon-api.qdoc12
-rw-r--r--doc/src/declarative/advtutorial.qdoc11
-rw-r--r--doc/src/declarative/anchor-layout.qdoc5
-rw-r--r--doc/src/declarative/basictypes.qdoc26
-rw-r--r--doc/src/declarative/declarativeui.qdoc16
-rw-r--r--doc/src/declarative/elements.qdoc3
-rw-r--r--doc/src/declarative/examples.qdoc13
-rw-r--r--doc/src/declarative/extending-tutorial.qdoc340
-rw-r--r--doc/src/declarative/extending.qdoc43
-rw-r--r--doc/src/declarative/focus.qdoc2
-rw-r--r--doc/src/declarative/globalobject.qdoc2
-rw-r--r--doc/src/declarative/modules.qdoc15
-rw-r--r--doc/src/declarative/network.qdoc4
-rw-r--r--doc/src/declarative/pics/extending-tutorial-chapter1.pngbin0 -> 6687 bytes
-rw-r--r--doc/src/declarative/pics/extending-tutorial-chapter2.pngbin0 -> 7318 bytes
-rw-r--r--doc/src/declarative/pics/extending-tutorial-chapter3.pngbin0 -> 8145 bytes
-rw-r--r--doc/src/declarative/pics/extending-tutorial-chapter5.pngbin0 -> 5557 bytes
-rw-r--r--doc/src/declarative/pics/imageprovider.pngbin0 -> 420 bytes
-rw-r--r--doc/src/declarative/qdeclarativedebugging.qdoc8
-rw-r--r--doc/src/declarative/qdeclarativei18n.qdoc8
-rw-r--r--doc/src/declarative/qdeclarativeperformance.qdoc21
-rw-r--r--doc/src/declarative/qml-intro.qdoc24
-rw-r--r--doc/src/declarative/qmlviewer.qdoc4
-rw-r--r--doc/src/declarative/qtprogrammers.qdoc12
-rw-r--r--doc/src/declarative/tutorial.qdoc4
-rw-r--r--doc/src/examples/qml-examples.qdoc19
-rw-r--r--doc/src/examples/qml-webbrowser.qdoc40
-rw-r--r--doc/src/external-resources.qdoc4
-rw-r--r--doc/src/frameworks-technologies/dnd.qdoc2
-rw-r--r--doc/src/images/qml-imageprovider-example.pngbin0 -> 2259 bytes
-rw-r--r--doc/src/images/qml-mousearea-example.pngbin5527 -> 6969 bytes
-rw-r--r--doc/src/images/qml-xmllistmodel-example.pngbin0 -> 5252 bytes
-rw-r--r--doc/src/index.qdoc2
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc17
-rw-r--r--doc/src/snippets/code/doc_src_installation.qdoc2
-rw-r--r--doc/src/snippets/declarative/gridview/gridview.qml6
-rw-r--r--doc/src/snippets/declarative/listview/listview.qml10
-rw-r--r--doc/src/snippets/declarative/mousearea.qml13
-rwxr-xr-xdoc/src/template/style/style.css1181
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider-example.qml28
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider.cpp73
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml16
-rw-r--r--examples/declarative/modelviews/listview/highlight.qml5
-rw-r--r--examples/declarative/touchinteraction/mousearea/mousearea-example.qml64
-rw-r--r--examples/declarative/toys/clocks/content/Clock.qml35
-rw-r--r--examples/declarative/toys/corkboards/Day.qml6
-rw-r--r--examples/declarative/toys/tvtennis/tvtennis.qml24
-rw-r--r--examples/declarative/tutorials/extending/chapter1-basics/app.qml18
-rw-r--r--examples/declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro4
-rw-r--r--examples/declarative/tutorials/extending/chapter1-basics/main.cpp4
-rw-r--r--examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp81
-rw-r--r--examples/declarative/tutorials/extending/chapter1-basics/piechart.h (renamed from examples/declarative/tutorials/extending/chapter1-basics/musician.h)21
-rw-r--r--examples/declarative/tutorials/extending/chapter2-methods/app.qml24
-rw-r--r--examples/declarative/tutorials/extending/chapter2-methods/chapter2-methods.pro4
-rw-r--r--examples/declarative/tutorials/extending/chapter2-methods/main.cpp4
-rw-r--r--examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp87
-rw-r--r--examples/declarative/tutorials/extending/chapter2-methods/piechart.h (renamed from examples/declarative/tutorials/extending/chapter3-bindings/musician.h)26
-rw-r--r--examples/declarative/tutorials/extending/chapter3-bindings/app.qml42
-rw-r--r--examples/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings.pro4
-rw-r--r--examples/declarative/tutorials/extending/chapter3-bindings/main.cpp4
-rw-r--r--examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp89
-rw-r--r--examples/declarative/tutorials/extending/chapter3-bindings/piechart.h84
-rw-r--r--examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml18
-rw-r--r--examples/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pro8
-rw-r--r--examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp8
-rw-r--r--examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp (renamed from examples/declarative/tutorials/extending/chapter2-methods/musician.cpp)30
-rw-r--r--examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h (renamed from examples/declarative/tutorials/extending/chapter4-customPropertyTypes/musician.h)20
-rw-r--r--examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp (renamed from examples/declarative/tutorials/extending/chapter4-customPropertyTypes/musician.cpp)29
-rw-r--r--examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h (renamed from examples/declarative/tutorials/extending/chapter4-customPropertyTypes/instrument.h)21
-rw-r--r--examples/declarative/tutorials/extending/chapter5-listproperties/app.qml70
-rw-r--r--examples/declarative/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pro7
-rw-r--r--examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp (renamed from examples/declarative/tutorials/extending/chapter4-customPropertyTypes/instrument.cpp)26
-rw-r--r--examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp (renamed from examples/declarative/tutorials/extending/chapter3-bindings/musician.cpp)32
-rw-r--r--examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h (renamed from examples/declarative/tutorials/extending/chapter2-methods/musician.h)34
-rw-r--r--examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp88
-rw-r--r--examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h76
-rw-r--r--examples/declarative/tutorials/extending/chapter5-plugins/instrument.cpp56
-rw-r--r--examples/declarative/tutorials/extending/chapter5-plugins/instrument.h61
-rw-r--r--examples/declarative/tutorials/extending/chapter5-plugins/musician.cpp67
-rw-r--r--examples/declarative/tutorials/extending/chapter5-plugins/qmldir1
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/app.qml (renamed from examples/declarative/tutorials/extending/chapter5-plugins/app.qml)29
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro (renamed from examples/declarative/tutorials/extending/chapter5-plugins/chapter5-plugins.pro)12
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp (renamed from examples/declarative/tutorials/extending/chapter5-plugins/musicplugin.cpp)14
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h (renamed from examples/declarative/tutorials/extending/chapter5-plugins/musicplugin.h)6
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp (renamed from examples/declarative/tutorials/extending/chapter1-basics/musician.cpp)23
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/piechart.h (renamed from examples/declarative/tutorials/extending/chapter5-plugins/musician.h)21
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp88
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h74
-rw-r--r--examples/declarative/tutorials/extending/chapter6-plugins/qmldir1
-rw-r--r--examples/declarative/tutorials/extending/extending.pro3
-rw-r--r--examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml11
-rwxr-xr-xexamples/declarative/tutorials/samegame/samegame4/content/samegame.js7
-rw-r--r--examples/declarative/ui-components/dialcontrol/content/Dial.qml19
-rw-r--r--examples/declarative/ui-components/tabwidget/TabWidget.qml7
-rw-r--r--examples/network/bearermonitor/sessionwidget.h2
-rw-r--r--examples/network/bearermonitor/sessionwidget_maemo.ui48
-rw-r--r--mkspecs/win32-msvc2005/qmake.conf2
-rw-r--r--mkspecs/win32-msvc2008/qmake.conf2
-rw-r--r--mkspecs/win32-msvc2010/qmake.conf2
-rw-r--r--src/3rdparty/sqlite/sqlite3.c47
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebCore/ChangeLog502
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSAttrCustom.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h2
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSElementCustom.cpp11
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodeMapCustom.cpp32
-rw-r--r--src/3rdparty/webkit/WebCore/bindings/js/JSNodeCustom.cpp70
-rw-r--r--src/3rdparty/webkit/WebCore/css/CSSHelper.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Attr.idl2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp47
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.cpp22
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Document.h3
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Element.cpp14
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp5
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedAttrMap.h2
-rw-r--r--src/3rdparty/webkit/WebCore/dom/NamedNodeMap.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Node.idl4
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.cpp25
-rw-r--r--src/3rdparty/webkit/WebCore/dom/Range.h1
-rw-r--r--src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp21
-rw-r--r--src/3rdparty/webkit/WebCore/editing/markup.cpp4
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.h4
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNode.cpp12
-rw-r--r--src/3rdparty/webkit/WebCore/generated/JSNode.h4
-rw-r--r--src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/loader/DocumentThreadableLoader.cpp29
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragController.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/page/DragController.h8
-rw-r--r--src/3rdparty/webkit/WebCore/page/EventHandler.cpp8
-rw-r--r--src/3rdparty/webkit/WebCore/page/FrameView.cpp7
-rw-r--r--src/3rdparty/webkit/WebCore/page/SecurityOrigin.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/page/Settings.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/page/Settings.h4
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURL.cpp18
-rw-r--r--src/3rdparty/webkit/WebCore/platform/KURLGoogle.cpp10
-rw-r--r--src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp43
-rw-r--r--src/3rdparty/webkit/WebCore/platform/network/ProtectionSpace.h1
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.cpp3
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderButton.h4
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp27
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListItem.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderListMarker.cpp6
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMedia.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderMenuList.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderObject.h3
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderProgress.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderSlider.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderText.cpp2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextControl.h2
-rw-r--r--src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.cpp4
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.h2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog62
-rw-r--r--src/corelib/global/qnamespace.qdoc5
-rw-r--r--src/corelib/io/qiodevice_p.h2
-rw-r--r--src/corelib/io/qprocess.cpp4
-rw-r--r--src/corelib/kernel/qabstractitemmodel.cpp4
-rw-r--r--src/corelib/kernel/qeventdispatcher_symbian.cpp36
-rw-r--r--src/corelib/thread/qthread_unix.cpp8
-rw-r--r--src/corelib/tools/qlocale.cpp1
-rw-r--r--src/corelib/tools/qsimd_p.h5
-rw-r--r--src/corelib/tools/qstring.cpp2
-rw-r--r--src/declarative/QmlChanges.txt18
-rw-r--r--src/declarative/debugger/qdeclarativedebug.cpp49
-rw-r--r--src/declarative/debugger/qdeclarativedebug_p.h20
-rw-r--r--src/declarative/graphicsitems/qdeclarativeborderimage.cpp100
-rw-r--r--src/declarative/graphicsitems/qdeclarativeborderimage_p_p.h2
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable.cpp14
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable_p.h3
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview.cpp42
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimage.cpp99
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimage_p.h2
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimagebase.cpp65
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimagebase_p_p.h5
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp43
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem_p.h20
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp50
-rw-r--r--src/declarative/graphicsitems/qdeclarativemousearea.cpp14
-rw-r--r--src/declarative/graphicsitems/qdeclarativepathview.cpp4
-rw-r--r--src/declarative/graphicsitems/qdeclarativerepeater.cpp38
-rw-r--r--src/declarative/graphicsitems/qdeclarativetext.cpp174
-rw-r--r--src/declarative/graphicsitems/qdeclarativetext_p.h3
-rw-r--r--src/declarative/graphicsitems/qdeclarativetext_p_p.h7
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextedit.cpp24
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput.cpp92
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput_p.h7
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput_p_p.h1
-rw-r--r--src/declarative/qml/qdeclarativebinding.cpp145
-rw-r--r--src/declarative/qml/qdeclarativebinding_p_p.h28
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp6
-rw-r--r--src/declarative/qml/qdeclarativecomponent.cpp65
-rw-r--r--src/declarative/qml/qdeclarativecontext.cpp2
-rw-r--r--src/declarative/qml/qdeclarativecontext_p.h1
-rw-r--r--src/declarative/qml/qdeclarativedom.cpp2
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp72
-rw-r--r--src/declarative/qml/qdeclarativeengine_p.h4
-rw-r--r--src/declarative/qml/qdeclarativeenginedebug.cpp82
-rw-r--r--src/declarative/qml/qdeclarativeenginedebug_p.h2
-rw-r--r--src/declarative/qml/qdeclarativeexpression.cpp502
-rw-r--r--src/declarative/qml/qdeclarativeexpression_p.h83
-rw-r--r--src/declarative/qml/qdeclarativeextensionplugin.cpp4
-rw-r--r--src/declarative/qml/qdeclarativeimageprovider.cpp176
-rw-r--r--src/declarative/qml/qdeclarativeimageprovider.h18
-rw-r--r--src/declarative/qml/qdeclarativeimport.cpp24
-rw-r--r--src/declarative/qml/qdeclarativelist.cpp2
-rw-r--r--src/declarative/qml/qdeclarativemetatype.cpp2
-rw-r--r--src/declarative/qml/qdeclarativevmemetaobject.cpp30
-rw-r--r--src/declarative/qml/qdeclarativevmemetaobject_p.h2
-rw-r--r--src/declarative/util/qdeclarativeanimation.cpp10
-rw-r--r--src/declarative/util/qdeclarativeanimation_p.h5
-rw-r--r--src/declarative/util/qdeclarativebehavior.cpp23
-rw-r--r--src/declarative/util/qdeclarativebehavior_p.h2
-rw-r--r--src/declarative/util/qdeclarativelistmodel.cpp2
-rw-r--r--src/declarative/util/qdeclarativepackage.cpp4
-rw-r--r--src/declarative/util/qdeclarativepixmapcache.cpp1175
-rw-r--r--src/declarative/util/qdeclarativepixmapcache_p.h85
-rw-r--r--src/declarative/util/qdeclarativesmoothedanimation.cpp2
-rw-r--r--src/declarative/util/qdeclarativesmoothedfollow.cpp299
-rw-r--r--src/declarative/util/qdeclarativesmoothedfollow_p.h113
-rw-r--r--src/declarative/util/qdeclarativespringanimation.cpp (renamed from src/declarative/util/qdeclarativespringfollow.cpp)292
-rw-r--r--src/declarative/util/qdeclarativespringanimation_p.h (renamed from src/declarative/util/qdeclarativespringfollow_p.h)42
-rw-r--r--src/declarative/util/qdeclarativestateoperations.cpp2
-rw-r--r--src/declarative/util/qdeclarativestyledtext.cpp6
-rw-r--r--src/declarative/util/qdeclarativeutilmodule.cpp6
-rw-r--r--src/declarative/util/qdeclarativeview.cpp47
-rw-r--r--src/declarative/util/qdeclarativexmllistmodel.cpp21
-rw-r--r--src/declarative/util/util.pri6
-rw-r--r--src/gui/dialogs/qwizard_win.cpp42
-rw-r--r--src/gui/dialogs/qwizard_win_p.h21
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.cpp7
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp9
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.cpp7
-rw-r--r--src/gui/graphicsview/qgraphicswidget_p.cpp4
-rw-r--r--src/gui/gui.pro126
-rw-r--r--src/gui/image/image.pri3
-rw-r--r--src/gui/image/qimage.cpp18
-rw-r--r--src/gui/image/qimage_p.h4
-rw-r--r--src/gui/image/qimage_sse2.cpp109
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp2
-rw-r--r--src/gui/itemviews/qfileiconprovider.cpp71
-rw-r--r--src/gui/kernel/qapplication.cpp3
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac.mm1
-rw-r--r--src/gui/kernel/qcocoasharedwindowmethods_mac_p.h4
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm38
-rw-r--r--src/gui/kernel/qcocoaview_mac_p.h1
-rw-r--r--src/gui/kernel/qwidget_mac.mm7
-rw-r--r--src/gui/painting/painting.pri155
-rw-r--r--src/gui/painting/qdrawhelper_sse2.cpp168
-rw-r--r--src/gui/painting/qdrawingprimitive_sse2_p.h222
-rw-r--r--src/gui/styles/qstyle.cpp4
-rw-r--r--src/gui/styles/qstyle.h2
-rw-r--r--src/gui/styles/qstyleoption.cpp6
-rw-r--r--src/gui/styles/qstyleoption.h2
-rw-r--r--src/gui/text/qfont.cpp9
-rw-r--r--src/gui/text/qfont.h5
-rw-r--r--src/gui/text/qfont_mac.cpp6
-rw-r--r--src/gui/text/qfont_qws.cpp1
-rw-r--r--src/gui/text/qfont_win.cpp5
-rw-r--r--src/gui/text/qfont_x11.cpp9
-rw-r--r--src/gui/text/qfontengine_s60_p.h3
-rw-r--r--src/gui/text/qtextcursor.cpp10
-rw-r--r--src/gui/text/qtextcursor_p.h1
-rw-r--r--src/gui/text/qtextdocument.cpp8
-rw-r--r--src/gui/text/qtextdocument_p.cpp51
-rw-r--r--src/gui/text/qtextdocument_p.h6
-rw-r--r--src/gui/text/qtextoption.cpp7
-rw-r--r--src/gui/text/qtexttable.cpp28
-rw-r--r--src/gui/util/qcompleter.cpp4
-rw-r--r--src/imports/gestures/qdeclarativegesturearea.cpp2
-rw-r--r--src/imports/particles/qdeclarativeparticles.cpp54
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp9
-rw-r--r--src/network/access/qnetworkaccesshttpbackend.cpp8
-rw-r--r--src/network/access/qnetworkrequest.cpp10
-rw-r--r--src/network/access/qnetworkrequest.h2
-rw-r--r--src/network/kernel/qauthenticator.cpp408
-rw-r--r--src/network/kernel/qauthenticator.h5
-rw-r--r--src/network/kernel/qauthenticator_p.h6
-rw-r--r--src/network/kernel/qhostaddress.cpp12
-rw-r--r--src/network/kernel/qnetworkproxy_mac.cpp5
-rw-r--r--src/network/socket/qtcpserver.cpp2
-rw-r--r--src/network/ssl/qsslsocket.cpp10
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp122
-rw-r--r--src/network/ssl/qsslsocket_openssl_p.h2
-rw-r--r--src/network/ssl/qsslsocket_p.h11
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp2
-rw-r--r--src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp5
-rw-r--r--src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h1
-rw-r--r--src/opengl/qgl.cpp14
-rw-r--r--src/openvg/openvg.pro9
-rw-r--r--src/openvg/qpaintengine_vg.cpp29
-rw-r--r--src/openvg/qpaintengine_vg_p.h1
-rw-r--r--src/openvg/qpixmapdata_vg.cpp259
-rw-r--r--src/openvg/qvg_symbian.cpp398
-rw-r--r--src/openvg/qvgfontglyphcache_p.h95
-rw-r--r--src/plugins/bearer/bearer.pro3
-rw-r--r--src/plugins/bearer/connman/connman.pro19
-rw-r--r--src/plugins/bearer/connman/main.cpp93
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.cpp787
-rw-r--r--src/plugins/bearer/connman/qconnmanengine.h179
-rw-r--r--src/plugins/bearer/connman/qconnmanservice_linux.cpp1072
-rw-r--r--src/plugins/bearer/connman/qconnmanservice_linux_p.h381
-rw-r--r--src/plugins/bearer/icd/qnetworksession_impl.cpp3
-rw-r--r--src/plugins/bearer/symbian/3_2/3_2.pro16
-rw-r--r--src/plugins/bearer/symbian/symbian_3/symbian_3.pro22
-rw-r--r--src/s60installs/bwins/QtDeclarativeu.def3317
-rw-r--r--src/s60installs/eabi/QtDeclarativeu.def3379
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.pri14
-rw-r--r--tests/auto/declarative/declarative.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml20
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp18
-rw-r--r--tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp56
-rw-r--r--tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/testtypes.h2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp46
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/chain.qml28
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml4
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test.qml2
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test5.qml2
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp23
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/footer.qml32
-rw-r--r--tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp41
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart-arm.pngbin0 -> 12596 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart200-arm.pngbin0 -> 8063 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp47
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/data/exists.pngbin2738 -> 0 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/data/exists1.pngbin2738 -> 0 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/data/exists2.pngbin2738 -> 0 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp202
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importFile.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importFile.qml3
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/qmldir2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp10
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp10
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/footer.qml30
-rw-r--r--tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp32
-rw-r--r--tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp3
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp99
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml3
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml5
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml6
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml13
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml13
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro16
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp194
-rw-r--r--tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml4
-rw-r--r--tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml (renamed from tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml)5
-rw-r--r--tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml (renamed from tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml)4
-rw-r--r--tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro (renamed from tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro)2
-rw-r--r--tests/auto/declarative/qdeclarativespringanimation/tst_qdeclarativespringanimation.cpp (renamed from tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp)44
-rw-r--r--tests/auto/declarative/qdeclarativespringfollow/data/springfollow1.qml4
-rw-r--r--tests/auto/declarative/qdeclarativetext/data/alignments.qml6
-rw-r--r--tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp5
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/data/alignments.qml2
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp120
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/halign_center.pngbin0 -> 293 bytes
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/halign_left.pngbin0 -> 291 bytes
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/halign_right.pngbin0 -> 292 bytes
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml22
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml (renamed from tests/auto/declarative/qdeclarativetextinput/data/inputmethodhints.qml)1
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp151
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp16
-rw-r--r--tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp38
-rw-r--r--tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp2
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml20
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml27
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml26
-rw-r--r--tests/auto/gui.pro1
-rw-r--r--tests/auto/network.pro2
-rw-r--r--tests/auto/qauthenticator/qauthenticator.pro5
-rw-r--r--tests/auto/qauthenticator/tst_qauthenticator.cpp155
-rw-r--r--tests/auto/qfiledialog2/tst_qfiledialog2.cpp22
-rw-r--r--tests/auto/qfileinfo/tst_qfileinfo.cpp2
-rw-r--r--tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp7
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp76
-rw-r--r--tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp7
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp20
-rw-r--r--tests/auto/qmimedata/qmimedata.pro4
-rw-r--r--tests/auto/qmimedata/tst_qmimedata.cpp343
-rw-r--r--tests/auto/qscrollbar/tst_qscrollbar.cpp2
-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp24
-rw-r--r--tests/auto/qtcpsocket/tst_qtcpsocket.cpp4
-rw-r--r--tests/auto/qtexttable/tst_qtexttable.cpp55
-rw-r--r--tests/auto/quuid/quuid.pro9
-rw-r--r--tests/auto/quuid/test/test.pro29
-rw-r--r--tests/auto/quuid/testProcessUniqueness/main.cpp62
-rw-r--r--tests/auto/quuid/testProcessUniqueness/testProcessUniqueness.pro8
-rw-r--r--tests/auto/quuid/tst_quuid.cpp29
-rw-r--r--tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp64
-rw-r--r--tests/benchmarks/gui/text/qtext/main.cpp41
-rw-r--r--tools/assistant/tools/assistant/assistant.pro2
-rw-r--r--tools/assistant/translations/qt_help.pro53
-rw-r--r--tools/assistant/translations/translations.pro54
-rw-r--r--tools/configure/configureapp.cpp16
-rw-r--r--tools/designer/src/components/lib/lib.pro10
-rw-r--r--tools/designer/src/components/objectinspector/objectinspector.pri2
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.pri4
-rw-r--r--tools/designer/src/designer/designer.pro5
-rw-r--r--tools/designer/src/lib/shared/shared.pri10
-rw-r--r--tools/designer/translations/translations.pro141
-rw-r--r--tools/linguist/linguist/linguist.pro12
-rw-r--r--tools/qdoc3/doc/files/qt.qdocconf10
-rw-r--r--tools/qdoc3/htmlgenerator.cpp117
-rw-r--r--tools/qdoc3/htmlgenerator.h8
-rw-r--r--tools/qdoc3/node.cpp18
-rw-r--r--tools/qdoc3/node.h1
-rw-r--r--tools/qdoc3/test/assistant.qdocconf24
-rw-r--r--tools/qdoc3/test/qdeclarative.qdocconf6
-rw-r--r--tools/qdoc3/test/qt-build-docs.qdocconf12
-rw-r--r--tools/qml/deviceorientation_symbian.cpp162
-rw-r--r--tools/qml/main.cpp21
-rw-r--r--tools/qml/qml.pri6
-rw-r--r--tools/qml/qml.pro3
-rw-r--r--tools/qml/qmlruntime.cpp164
-rw-r--r--tools/qml/qmlruntime.h4
-rw-r--r--tools/qtconfig/translations/translations.pro16
-rw-r--r--tools/qvfb/qvfb.pro2
-rw-r--r--tools/qvfb/translations/translations.pro35
-rw-r--r--tools/runonphone/main.cpp18
-rw-r--r--tools/runonphone/serenum.h2
-rw-r--r--tools/runonphone/serenum_unix.cpp107
-rw-r--r--tools/runonphone/serenum_win.cpp2
-rw-r--r--tools/runonphone/symbianutils/json.cpp490
-rw-r--r--tools/runonphone/symbianutils/json.h149
-rw-r--r--tools/runonphone/symbianutils/launcher.cpp180
-rw-r--r--tools/runonphone/symbianutils/launcher.h12
-rw-r--r--tools/runonphone/symbianutils/symbianutils.pri12
-rw-r--r--tools/runonphone/symbianutils/tcftrkdevice.cpp929
-rw-r--r--tools/runonphone/symbianutils/tcftrkdevice.h295
-rw-r--r--tools/runonphone/symbianutils/tcftrkmessage.cpp562
-rw-r--r--tools/runonphone/symbianutils/tcftrkmessage.h296
-rw-r--r--tools/runonphone/symbianutils/trkdevice.cpp5
-rw-r--r--tools/runonphone/symbianutils/trkutils.cpp143
-rw-r--r--tools/runonphone/symbianutils/trkutils.h31
-rw-r--r--tools/runonphone/symbianutils/trkutils_p.h2
-rw-r--r--tools/runonphone/trksignalhandler.cpp180
-rw-r--r--tools/runonphone/trksignalhandler.h8
-rwxr-xr-xtranslations/check-ts.pl13
-rw-r--r--translations/translations.pri144
467 files changed, 19403 insertions, 8867 deletions
diff --git a/.gitignore b/.gitignore
index fdb6843..4d5aa9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,6 +114,7 @@ tools/qtestlib/chart/chart*
tools/qtestlib/updater/updater*
tools/activeqt/testcon/testcon.tlb
translations/*.qm
+translations/*_untranslated.ts
qrc_*.cpp
# xemacs temporary files
diff --git a/README.s60-mkspec b/README.s60-mkspec
deleted file mode 100644
index af500e1..0000000
--- a/README.s60-mkspec
+++ /dev/null
@@ -1,99 +0,0 @@
-How to build Qt for Symbian using the Linux makespec.
-
-Prerequisites:
-
- - Working RVCT 2.2 native Linux compiler. The new publicly
- available RVCT 4.0 compiler may work, but it hasn't been tested
- yet.
-
- - A working GnuPoc environment. See this page for details:
- http://www.martin.st/symbian/
- Download the latest version, unpack it and run the 'install_eka2_tools' script as
- described in the last part under the EKA2 part. The part about the your own gcc
- are not needed as we use the rvct compiler.
- Make sure you do the part about Wine setup as well.
-
- - Anderson Lizardo's patches for GnuPoc. Look for the
- qt_s60_gnupoc_v10.patch on this page:
- http://lizardo.wordpress.com/2009/09/24/installing-qt-for-s60-daily-snapshots-on-linux/
- and carry out the instructions under point 8: Installing Open C.
-
-Compiling:
-
- 1. First a few environment variables need to be set:
-
- export RVCT22LIB=<rvct-dir>/lib/armlib
- export EPOCROOT=<s60-root>
- export PATH=$PATH:<s60-root>/epoc32/tools:<rvctInstallDir>/bin
- export PATH=$PATH:<qt-root>/bin
-
- Replace the s60-root with the installation directory of your SDK,
- and the qt-root with the root of your Qt repository.
- These are good candidates for putting in a script somewhere.
-
- 2. Run configure. It needs a bit more switches than usual, so here's
- the full line:
-
- ./configure -developer-build -platform linux-g++ -xplatform \
- symbian/linux-armcc -little-endian -host-little-endian \
- -arch symbian
-
- 3. Compile Qt
-
- cd src
- make
-
- and then wait for a while.
-
- 4. Package and install Qt
-
- cd s60installs
-
- Edit Qt_template.pkg and change the first 0x2xxxxxxx to
- 0xExxxxxxx. Then execute:
-
- makesis Qt_template.pkg
- signsis Qt_template.sis Qt_template.sisx selfsigned.cer selfsigned.key
-
- Then put Qt_template.sisx on a memory card and install it from
- the phone file manager.
-
- Alternatively, you can use the runonphone tool found in the tools
- directory of Qt. To build, this requires a separately configured
- Qt installation for Linux, unfortunately. To use it, you also
- need have App TRK running on the phone. At the time of writing,
- only bleeding edge Linux kernels are able to autodetect the USB
- serial port on the phone, but you can force detection by running:
-
- modprobe usbserial vendor=0xXXXX product=0xXXXX
-
- The XXXXs should be replaced with the two values listed for your
- device when executing "lsusb". In most distributions, this will
- lead to the creation of two devices: /dev/ttyUSB0 and
- /dev/ttyUSB1. The latter is usually the one that App TRK responds
- to. Then execute:
-
- runonphone -p /dev/ttyUSB1 -s Qt_template.sisx dummy.exe
-
- The dummy.exe argument is irrelevant, since we are not executing
- anything yet.
-
- 5. Compile some helloworld application (I leave the details to you
- ;-)
-
- qmake
- make
-
- 6. Package, install and run application.
-
- makesis helloworld_template.pkg
- signsis helloworld_template.sis helloworld_template.sisx \
- <QTDIR>/src/s60installs/selfsigned.cer \
- <QTDIR>/src/s60installs/selfsigned.key
-
- Then either install by memory card, or install and run like this:
-
- runonphone -p /dev/ttyUSB1 -s helloworld_template.sisx \
- helloworld.exe
-
- 7. Enjoy "hello world" on the phone!
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index 501939a..7d6f5dc 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -186,7 +186,7 @@ if (@ARGV)
}
# If the line specifies a file, parse the source and destination locations.
- if ($line =~ m|\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|)
+ if ($line =~ m|^ *\"([^\"]+)\"\s*\-\s*\"([^\"]+)\"|)
{
my $sourcePath = $1;
diff --git a/bin/syncqt b/bin/syncqt
index 11b1d72..03659d3 100755
--- a/bin/syncqt
+++ b/bin/syncqt
@@ -691,6 +691,7 @@ my @ignore_for_qt_begin_header_check = ( "qiconset.h", "qconfig.h", "qconfig-dis
my @ignore_for_qt_begin_namespace_check = ( "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qatomic_arch.h", "qatomic_windowsce.h", "qt_windows.h", "qatomic_macosx.h" );
my @ignore_for_qt_module_check = ( "$modules{QtCore}/arch", "$modules{QtCore}/global", "$modules{QtSql}/drivers", "$modules{QtTest}", "$modules{QtDesigner}", "$modules{QtUiTools}", "$modules{QtDBus}", "$modules{phonon}" );
my %colliding_headers = ();
+my %inject_headers = ( "$basedir/src/corelib/global" => ( "*qconfig.h" ) );
foreach (@modules_to_sync) {
#iteration info
@@ -800,8 +801,10 @@ foreach (@modules_to_sync) {
foreach (@subdirs) {
my $subdir = "$_";
my @headers = findFiles("$subdir", "^[-a-z0-9_]*\\.h\$" , 0);
+ push @headers, $inject_headers{$subdir} if (defined $inject_headers{$subdir});
foreach (@headers) {
my $header = "$_";
+ my $shadow = ($header =~ s/^\*//);
$header = 0 if("$header" =~ /^ui_.*.h/);
foreach (@ignore_headers) {
$header = 0 if("$header" eq "$_");
@@ -819,6 +822,7 @@ foreach (@modules_to_sync) {
}
my $iheader = $subdir . "/" . $header;
+ $iheader =~ s/^\Q$basedir\E/$out_basedir/ if ($shadow);
my @classes = $public_header ? classNames($iheader) : ();
if($showonly) {
print "$header [$lib]\n";
@@ -843,7 +847,7 @@ foreach (@modules_to_sync) {
my $warning_msg = 'Inclusion of header files from include/Qt is deprecated.';
$header_content = "#ifndef QT_NO_QT_INCLUDE_WARN\n" .
" #if defined(__GNUC__)\n" .
- " #pragma warning \"$warning_msg\"\n" .
+ " #warning \"$warning_msg\"\n" .
" #elif defined(_MSC_VER)\n" .
" #pragma message \"WARNING: $warning_msg\"\n" .
" #endif\n".
diff --git a/configure b/configure
index 166f201..fb544bd 100755
--- a/configure
+++ b/configure
@@ -4481,11 +4481,6 @@ if true; then ###[ '!' -f "$outpath/bin/qmake" ];
fi
mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
- for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
- if [ '!' -f "$conf" ]; then
- ln -s "$QCONFIG_H" "$conf"
- fi
- done
#mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
rm -f mkspecs/default
@@ -7751,7 +7746,7 @@ EOF
# Ensure we can link to uninistalled libraries
if [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
- echo "QMAKE_LFLAGS += -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib" >> "$CACHEFILE.tmp"
+ echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$CACHEFILE.tmp"
fi
if [ -n "$QT_CFLAGS_PSQL" ]; then
diff --git a/demos/declarative/calculator/Core/calculator.js b/demos/declarative/calculator/Core/calculator.js
index 51b3dd3..c80c42f 100644
--- a/demos/declarative/calculator/Core/calculator.js
+++ b/demos/declarative/calculator/Core/calculator.js
@@ -84,7 +84,7 @@ function doOperation(op) {
}
if (op == rotateLeft)
- main.state = 'rotated'
+ main.state = "orientation " + Orientation.Landscape
if (op == rotateRight)
main.state = ''
}
diff --git a/demos/declarative/calculator/calculator.qml b/demos/declarative/calculator/calculator.qml
index 3d36211..63b6c55 100644
--- a/demos/declarative/calculator/calculator.qml
+++ b/demos/declarative/calculator/calculator.qml
@@ -58,10 +58,11 @@ Rectangle {
property string plusminus : "\u00b1"
function doOp(operation) { CalcEngine.doOperation(operation) }
-
+
Item {
id: main
- state: (runtime.orientation == Orientation.Portrait) ? '' : 'rotated'
+ state: "orientation " + runtime.orientation
+
width: parent.width; height: parent.height; anchors.centerIn: parent
Column {
@@ -130,16 +131,28 @@ Rectangle {
}
}
- states: State {
- name: 'rotated'
- PropertyChanges { target: main; rotation: -90; width: window.height; height: window.width }
- PropertyChanges { target: rotateButton; operation: rotateRight }
- }
+ states: [
+ State {
+ name: "orientation " + Orientation.Landscape
+ PropertyChanges { target: main; rotation: -90; width: window.height; height: window.width }
+ PropertyChanges { target: rotateButton; operation: rotateRight }
+ },
+ State {
+ name: "orientation " + Orientation.PortraitInverted
+ PropertyChanges { target: main; rotation: -180; }
+ PropertyChanges { target: rotateButton; operation: rotateLeft }
+ },
+ State {
+ name: "orientation " + Orientation.LandscapeInverted
+ PropertyChanges { target: main; rotation: -270; width: window.height; height: window.width }
+ PropertyChanges { target: rotateButton; operation: rotateRight }
+ }
+ ]
transitions: Transition {
SequentialAnimation {
PropertyAction { target: rotateButton; property: "operation" }
- NumberAnimation { properties: "rotation"; duration: 300; easing.type: Easing.InOutQuint }
+ RotationAnimation { direction: RotationAnimation.Shortest; duration: 300; easing.type: Easing.InOutQuint }
NumberAnimation { properties: "x,y,width,height"; duration: 300; easing.type: Easing.InOutQuint }
}
}
diff --git a/demos/declarative/flickr/mobile/TitleBar.qml b/demos/declarative/flickr/mobile/TitleBar.qml
index c7e1a53..335c315 100644
--- a/demos/declarative/flickr/mobile/TitleBar.qml
+++ b/demos/declarative/flickr/mobile/TitleBar.qml
@@ -109,6 +109,7 @@ Item {
Item {
id: returnKey
Keys.onReturnPressed: container.accept()
+ Keys.onEnterPressed: container.accept()
Keys.onEscapePressed: titleBar.state = ""
}
}
diff --git a/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml b/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml
index 6109535..be7dfa4 100644
--- a/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml
+++ b/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml
@@ -64,6 +64,10 @@ Item {
container.labelChanged(textInput.text)
container.focus = true
}
+ Keys.onEnterPressed: {
+ container.labelChanged(textInput.text)
+ container.focus = true
+ }
Keys.onEscapePressed: {
textInput.text = container.label
container.focus = true
diff --git a/demos/declarative/samegame/SamegameCore/BoomBlock.qml b/demos/declarative/samegame/SamegameCore/BoomBlock.qml
index 3f43579..43050af 100644
--- a/demos/declarative/samegame/SamegameCore/BoomBlock.qml
+++ b/demos/declarative/samegame/SamegameCore/BoomBlock.qml
@@ -47,11 +47,14 @@ Item {
property bool dying: false
property bool spawned: false
property int type: 0
- property int targetX: 0
- property int targetY: 0
- SpringFollow on x { enabled: spawned; to: targetX; spring: 2; damping: 0.2 }
- SpringFollow on y { to: targetY; spring: 2; damping: 0.2 }
+ Behavior on x {
+ enabled: spawned;
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
+ Behavior on y {
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
Image {
id: img
diff --git a/demos/declarative/samegame/SamegameCore/samegame.js b/demos/declarative/samegame/SamegameCore/samegame.js
index 5c008a2..6e1b24d 100755
--- a/demos/declarative/samegame/SamegameCore/samegame.js
+++ b/demos/declarative/samegame/SamegameCore/samegame.js
@@ -110,7 +110,7 @@ function shuffleDown()
}else{
if(fallDist > 0){
var obj = board[index(column,row)];
- obj.targetY += fallDist * gameCanvas.blockSize;
+ obj.y += fallDist * gameCanvas.blockSize;
board[index(column,row+fallDist)] = obj;
board[index(column,row)] = null;
}
@@ -128,7 +128,7 @@ function shuffleDown()
obj = board[index(column,row)];
if(obj == null)
continue;
- obj.targetX -= fallDist * gameCanvas.blockSize;
+ obj.x -= fallDist * gameCanvas.blockSize;
board[index(column-fallDist,row)] = obj;
board[index(column,row)] = null;
}
@@ -184,8 +184,7 @@ function createBlock(column,row){
}
dynamicObject.type = Math.floor(Math.random() * 3);
dynamicObject.x = column*gameCanvas.blockSize;
- dynamicObject.targetX = column*gameCanvas.blockSize;
- dynamicObject.targetY = row*gameCanvas.blockSize;
+ dynamicObject.y = row*gameCanvas.blockSize;
dynamicObject.width = gameCanvas.blockSize;
dynamicObject.height = gameCanvas.blockSize;
dynamicObject.spawned = true;
diff --git a/demos/declarative/twitter/TwitterCore/AuthView.qml b/demos/declarative/twitter/TwitterCore/AuthView.qml
index 4f75777..0d05deb 100644
--- a/demos/declarative/twitter/TwitterCore/AuthView.qml
+++ b/demos/declarative/twitter/TwitterCore/AuthView.qml
@@ -115,6 +115,7 @@ Item {
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();
@@ -135,6 +136,7 @@ Item {
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/HomeTitleBar.qml b/demos/declarative/twitter/TwitterCore/HomeTitleBar.qml
index b26f7b3..56f31b1 100644
--- a/demos/declarative/twitter/TwitterCore/HomeTitleBar.qml
+++ b/demos/declarative/twitter/TwitterCore/HomeTitleBar.qml
@@ -136,6 +136,7 @@ Item {
Item {
id: returnKey
Keys.onReturnPressed: container.accept()
+ Keys.onEnterPressed: container.accept()
Keys.onEscapePressed: titleBar.state = ""
}
}
diff --git a/demos/declarative/twitter/TwitterCore/TitleBar.qml b/demos/declarative/twitter/TwitterCore/TitleBar.qml
index 6cd0a50..558bc18 100644
--- a/demos/declarative/twitter/TwitterCore/TitleBar.qml
+++ b/demos/declarative/twitter/TwitterCore/TitleBar.qml
@@ -98,6 +98,7 @@ Item {
Item {
id: returnKey
Keys.onReturnPressed: container.accept()
+ Keys.onEnterPressed: container.accept()
Keys.onEscapePressed: titleBar.state = ""
}
}
diff --git a/doc/src/classes/phonon-api.qdoc b/doc/src/classes/phonon-api.qdoc
index 641b936..6fe0223 100644
--- a/doc/src/classes/phonon-api.qdoc
+++ b/doc/src/classes/phonon-api.qdoc
@@ -1577,7 +1577,6 @@
\since 4.4
\brief The MediaObject class provides an interface for media playback.
-
The media object manages a \l{Phonon::}{MediaSource}, which
supplies the media object with multimedia content, e.g., from a
file. A playback in Phonon is always started by calling the
@@ -1651,17 +1650,8 @@
playback of the current source, but it is possible to try with a
different one. A user readable error message is given by
errorString().
- \section1 Symbian Platform Security Requirements
-
- On Symbian, processes which access media via the network must
- have the \c NetworkServices platform security capability. If the client
- process lacks this capability, operations will result in errors.
- This failure is indicated by a state() of Phonon::ErrorState.
-
- Platform security capabilities are added via the
- \l{qmake-variable-reference.html#target-capability}{TARGET.CAPABILITY}
- qmake variable.
+ \sa {Symbian Platform Security Requirements}
\sa Phonon::MediaSource, Phonon::AudioOutput, VideoWidget,
{Music Player Example}, {Phonon Overview}, Phonon::VideoPlayer,
Phonon::createPlayer(), {Phonon Module}
diff --git a/doc/src/declarative/advtutorial.qdoc b/doc/src/declarative/advtutorial.qdoc
index 740f6f9..1341bbb 100644
--- a/doc/src/declarative/advtutorial.qdoc
+++ b/doc/src/declarative/advtutorial.qdoc
@@ -314,18 +314,17 @@ In anticipation of the new block animations, \c Block.qml file is now renamed to
\section3 Animating block movement
First we will animate the blocks so that they move in a fluid manner. QML has a number of methods for adding fluid
-movement, and in this case we're going to use the \l SpringFollow element to add an animation with a spring-like
-movement. In \c BoomBlock.qml, we apply a \l SpringFollow
-to the \c x and \c y properties so that the block will follow and animate its movement towards the
-position specified by the new \c targetX and \c targetY properties (whose values will be set by \c samegame.js).
-Here is the code added to \c BoomBlock.qml:
+movement, and in this case we're going to use the \l Behavior element to add a \l SpringAnimation.
+In \c BoomBlock.qml, we apply a \l SpringAnimation behavior to the \c x and \c y properties so that the
+block will follow and animate its movement in a spring-like fashion towards the specified position (whose
+values will be set by \c samegame.js).Here is the code added to \c BoomBlock.qml:
\snippet declarative/tutorials/samegame/samegame4/content/BoomBlock.qml 1
The \c spring and \c damping values can be changed to modify the spring-like effect of the animation.
The \c {enabled: spawned} setting refers to the \c spawned value that is set from \c createBlock() in \c samegame.js.
-This ensures the \l SpringFollow on the \c x is only enabled after \c createBlock() has set the block to
+This ensures the \l SpringAnimation on the \c x is only enabled after \c createBlock() has set the block to
the correct position. Otherwise, the blocks will slide out of the corner (0,0) when a game begins, instead of falling
from the top in rows. (Try commenting out \c {enabled: spawned} and see for yourself.)
diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc
index 9c217e1..5c025e5 100644
--- a/doc/src/declarative/anchor-layout.qdoc
+++ b/doc/src/declarative/anchor-layout.qdoc
@@ -33,7 +33,10 @@
In addition to the more traditional \l Grid, \l Row, and \l Column,
QML also provides a way to layout items using the concept of \e anchors.
Each item can be thought of as having a set of 7 invisible "anchor lines":
-\e left, \e horizontalCenter, \e right, \e top, \e verticalCenter, \e baseline, and \e bottom.
+\l {Item::anchors.left}{left}, \l {Item::anchors.horizontalCenter}{horizontalCenter},
+\l {Item::anchors.right}{right}, \l {Item::anchors.top}{top},
+\l {Item::anchors.verticalCenter}{verticalCenter}, \l {Item::anchors.baseline}{baseline},
+and \l {Item::anchors.bottom}{bottom}.
\image edges_qml.png
diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc
index 159f40d..e327d4a 100644
--- a/doc/src/declarative/basictypes.qdoc
+++ b/doc/src/declarative/basictypes.qdoc
@@ -107,6 +107,9 @@
Text { text: "Hello world!" }
\endqml
+ Strings have a \c length attribute that holds the number of
+ characters in the string.
+
\sa {QML Basic Types}
*/
@@ -400,3 +403,26 @@
\sa {QML Basic Types}
*/
+
+/*!
+ \qmlbasictype enumeration
+ \ingroup qmlbasictypes
+
+ \brief An enumeration type consists of a set of named values.
+
+ An enumeration type consists of a set of named values.
+
+ An enumeration value may be specifed as either a string:
+ \qml
+ Text { horizontalAlignment: "AlignRight" }
+ \endqml
+
+ or as \c {<Element>.<value>}:
+ \qml
+ Text { horizontalAlignment: Text.AlignRight }
+ \endqml
+
+ The second form is preferred.
+
+ \sa {QML Basic Types}
+*/
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index 4235c27..217e372 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -37,7 +37,9 @@ 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.
+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
{http://www.ecma-international.org/publications/standards/Ecma-262.htm}
@@ -58,7 +60,7 @@ complete internet-enabled applications like a \l
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 to build completely new applications. QML is fully \l
-{Extending QML in C++}{extensible from C++}.
+{Extending QML in C++}{extensible from C++} through the QtDeclarative Module.
\section1 Getting Started
@@ -74,15 +76,15 @@ application or to build completely new applications. QML is fully \l
\list
\o \l {QML Documents}
\o \l {Property Binding}
-\o \l {Integrating JavaScript}
-\o \l {QML Scope}
\o \l {Network Transparency}
+\o \l {QML Scope}
+\o \l {Integrating JavaScript}
\o \l {Data Models}
\o \l {anchor-layout.html}{Anchor-based Layout}
\o \l {qdeclarativestates.html}{States}
\o \l {qdeclarativeanimation.html}{Animation}
-\o \l {qdeclarativemodules.html}{Modules}
\o \l {qdeclarativefocus.html}{Keyboard Focus}
+\o \l {qdeclarativemodules.html}{Modules}
\o \l {Extending types from QML}
\o \l {qdeclarativedynamicobjects.html}{Dynamic Object Creation}
\o \l {qmlruntime.html}{The Qt Declarative Runtime}
@@ -90,10 +92,10 @@ application or to build completely new applications. QML is fully \l
\section1 Using QML with C++
\list
-\o \l {Tutorial: Writing QML extensions with C++}
-\o \l {Extending QML in C++}
\o \l {Using QML in C++ Applications}
\o \l {Integrating QML with existing Qt UI code}
+\o \l {Tutorial: Writing QML extensions with C++}
+\o \l {Extending QML in C++}
\endlist
\section1 Reference
diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc
index 349a8ed..c2930b3 100644
--- a/doc/src/declarative/elements.qdoc
+++ b/doc/src/declarative/elements.qdoc
@@ -76,11 +76,10 @@ The following table lists the QML elements provided by the \l {QtDeclarative}{Qt
\row \o \l {AnchorAnimation} \o Animates anchor changes
\row \o \l {PauseAnimation} \o Pauses an animation
\row \o \l {SmoothedAnimation} \o Allows a property to smoothly track a value
+\row \o \l {SpringAnimation} \o Allows a property to track a value in a spring-like motion
\row \o \l {PropertyAction} \o Sets immediate property changes during animation
\row \o \l {ScriptAction} \o Runs scripts during an animation
\row \o \l {Transition} \o Animates transitions during state changes
-\row \o \l {SpringFollow} \o Allows a property to follow value changes
-\row \o \l {SmoothedFollow} \o Allows animation to smoothly follow value changes
\header \o {2,1} \bold {Working with Data}
\row \o \l {Binding} \o Binds any value to any property
diff --git a/doc/src/declarative/examples.qdoc b/doc/src/declarative/examples.qdoc
index 587cdf2..8a24228 100644
--- a/doc/src/declarative/examples.qdoc
+++ b/doc/src/declarative/examples.qdoc
@@ -36,11 +36,18 @@ Qt includes a set of examples and demos that show how to use various aspects
of QML. The examples are small demonstrations of particular QML components,
while the demos contain more complete and functional applications.
-To run the examples and demos, you can use Qt Creator or the included \l {Qt Declarative UI Runtime}{qmlviewer}
-command-line application. For example, from your build directory, run:
+To run the examples and demos, open them in Qt Creator or use the included
+\l {QML Viewer} tool. The \l {QML Viewer} can be run from the command line:
\code
- bin/qmlviewer $QTDIR/demos/declarative/samegame/samegame.qml
+ qmlviewer $QTDIR/demos/declarative/samegame/samegame.qml
+\endcode
+
+On Mac OS X, you can run the included "QMLViewer" application from the
+Finder, or use the command line:
+
+\code
+ QMLViewer.app/Contents/MacOS/QMLViewer $QTDIR/demos/declarative/samegame/samegame.qml
\endcode
diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc
index 0cb3a7d..cc93e86 100644
--- a/doc/src/declarative/extending-tutorial.qdoc
+++ b/doc/src/declarative/extending-tutorial.qdoc
@@ -48,8 +48,9 @@ Tutorial chapters:
\o \l{declarative/tutorials/extending/chapter2-methods}{Connecting to C++ Methods and Signals}
\o \l{declarative/tutorials/extending/chapter3-bindings}{Adding Property Bindings}
\o \l{declarative/tutorials/extending/chapter4-customPropertyTypes}{Using Custom Property Types}
-\o \l{declarative/tutorials/extending/chapter5-plugins}{Writing an Extension Plugin}
-\o \l{qml-extending-tutorial6.html}{In Summary}
+\o \l{declarative/tutorials/extending/chapter5-listproperties}{Using List Property Types}
+\o \l{declarative/tutorials/extending/chapter6-plugins}{Writing an Extension Plugin}
+\o \l{qml-extending-tutorial7.html}{In Summary}
\endlist
*/
@@ -59,66 +60,99 @@ Tutorial chapters:
\example declarative/tutorials/extending/chapter1-basics
-Let's create a new QML type called "Musician" that has two properties: a name
-and an instrument. We will make it available in a \l {Modules}{module} called "Music", with
+A common task when extending QML is to provide a new QML type that supports some
+ custom functionality beyond what is provided by the built-in \l {QML Elements}.
+For example, this could be done to implement particular data models, or provide
+elements with custom painting and drawing capabilities, or access system features
+like network programming that are not accessible through built-in QML features.
+
+In this tutorial, we will show how to use the C++ classes in the QtDeclarative
+module to extend QML. The end result will be a simple Pie Chart display implemented by
+several custom QML types connected together through QML features like bindings and
+signals, and made available to the QML runtime through a plugin.
+
+To begin with, let's create a new QML type called "PieChart" that has two properties: a name
+and a color. We will make it available in a \l {Modules}{module} called "Charts", with
a module version of 1.0.
-We want this \c Musician type to be usable from QML like this:
+
+We want this \c PieChart type to be usable from QML like this:
\code
- import Music 1.0
+ import Charts 1.0
- Musician {
- name: "Reddy the Rocker"
- instrument: "Guitar"
+ PieChart {
+ width: 100; height: 100
+ name: "A simple pie chart"
+ color: "red"
}
\endcode
-To do this, we need a C++ class that encapsulates this \c Musician type and its two
-properties. Since QML relies heavily on Qt's \l{Meta-Object System}{meta object system},
+To do this, we need a C++ class that encapsulates this \c PieChart type and its two
+properties. Since QML makes extensive use of Qt's \l{Meta-Object System}{meta object system},
this new class must:
\list
-\o inherit from QObject
-\o declare its properties using the Q_PROPERTY() macro
+\o Inherit from QObject
+\o Declare its properties using the Q_PROPERTY macro
\endlist
-Here is our \c Musician class, defined in \c musician.h:
+Here is our \c PieChart class, defined in \c piechart.h:
-\snippet declarative/tutorials/extending/chapter1-basics/musician.h 0
+\snippet declarative/tutorials/extending/chapter1-basics/piechart.h 0
-It defines the two properties, \c name and \c instrument, with the Q_PROPERTY() macro.
-The class implementation in \c musician.cpp simply sets and returns the \c m_name and
-\c m_instrument values as appropriate.
+The class inherits from QDeclarativeItem because we want to override
+QDeclarativeItem::paint() in order to draw. If the class just represented some
+data type and was not an item that actually needed to be displayed, it could simply inherit
+from QObject. Or, if we want to extend the functionality of an existing QObject-based
+class, it could inherit from that class instead.
-Our QML file, \c app.qml, creates a \c Musician item and display the musician's details
+The \c PieChart class defines the two properties, \c name and \c color, with the Q_PROPERTY macro,
+and overrides QDeclarativeItem::paint(). The class implementation in \c piechart.cpp
+simply sets and returns the \c m_name and \c m_color values as appropriate, and
+implements \c paint() to draw a simple pie chart. It also turns off the
+QGraphicsItem::ItemHasNoContents flag to enable painting:
+
+\snippet declarative/tutorials/extending/chapter1-basics/piechart.cpp 0
+\dots 0
+\snippet declarative/tutorials/extending/chapter1-basics/piechart.cpp 1
+
+Now that we have defined the \c PieChart type, we will use it from QML. The \c app.qml
+file creates a \c PieChart item and display the pie chart's details
using a standard QML \l Text item:
\snippet declarative/tutorials/extending/chapter1-basics/app.qml 0
+Notice that although the color is specified as a string in QML, it is automatically
+converted to a QColor object for the PieChart \c color property. Automatic conversions are
+provided for various other \l {QML Basic Types}{basic types}; for example, a string
+like "640x480" can be automatically converted to a QSize value.
+
We'll also create a C++ application that uses a QDeclarativeView to run and
-display \c app.qml. The application must register the \c Musician type
+display \c app.qml. The application must register the \c PieChart type
using the qmlRegisterType() function, to allow it to be used from QML. If
-you don't register the type, \c app.qml won't be able to create a \c Musician.
+you don't register the type, \c app.qml won't be able to create a \c PieChart.
Here is the application \c main.cpp:
\snippet declarative/tutorials/extending/chapter1-basics/main.cpp 0
-This call to qmlRegisterType() registers the \c Musician type as a type called "Musician", in a module named "Music",
+This call to qmlRegisterType() registers the \c PieChart type as a type called "PieChart", in a module named "Charts",
with a module version of 1.0.
Lastly, we write a \c .pro project file that includes the files and the \c declarative library:
\quotefile declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro
-Now we can build and run the application. Try it yourself with the code in Qt's \c examples/tutorials/extending/chapter1-basics directory.
+Now we can build and run the application:
-\example declarative/tutorials/extending/chapter1-basics
+\image extending-tutorial-chapter1.png
+
+Try it yourself with the code in Qt's \c examples/tutorials/extending/chapter1-basics directory.
At the moment, the \c app.qml is run from within a C++ application.
-This may seem odd if you're used to running QML files with the standard \c qml tool.
+This may seem odd if you're used to running QML files with the \l {QML Viewer}.
Later on, we'll show how to create a plugin so that you can run \c app.qml using the
-\c qml tool instead.
+\l {QML Viewer} instead.
*/
@@ -128,39 +162,40 @@ Later on, we'll show how to create a plugin so that you can run \c app.qml using
\example declarative/tutorials/extending/chapter2-methods
-Suppose we want \c Musician to have a "perform" method that prints a message
-to the console and then emits a "performanceEnded" signal.
-Other elements would be able to call \c perform() and receive
-\c performanceEnded() signals like this:
+Suppose we want \c PieChart to have a "clearChart()" method that erases the
+chart and then emits a "chartCleared" signal. Our \c app.qml would be able
+to call \c clearChart() and receive \c chartCleared() signals like this:
\snippet declarative/tutorials/extending/chapter2-methods/app.qml 0
-To do this, we add a \c perform() method and a \c performanceEnded() signal
+\image extending-tutorial-chapter2.png
+
+To do this, we add a \c clearChart() method and a \c chartCleared() signal
to our C++ class:
-\snippet declarative/tutorials/extending/chapter2-methods/musician.h 0
+\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 0
\dots
-\snippet declarative/tutorials/extending/chapter2-methods/musician.h 1
+\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 1
\dots
-\snippet declarative/tutorials/extending/chapter2-methods/musician.h 2
+\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 2
\dots
-\snippet declarative/tutorials/extending/chapter2-methods/musician.h 3
+\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 3
-The use of Q_INVOKABLE makes the \c perform() method available to the
+The use of Q_INVOKABLE makes the \c clearChart() method available to the
Qt Meta-Object system, and in turn, to QML. Note that it could have
been declared as as a Qt slot instead of using Q_INVOKABLE, as
slots are also callable from QML. Both of these approaches are valid.
-The \c perform() method simply prints a message to the console and
-then emits \c performanceEnded():
+The \c clearChart() method simply changes the color to Qt::transparent,
+repaints the chart, then emits the \c chartCleared() signal:
-\snippet declarative/tutorials/extending/chapter2-methods/musician.cpp 0
+\snippet declarative/tutorials/extending/chapter2-methods/piechart.cpp 0
-Now when we run the application and click the window, the application outputs:
+Now when we run the application and click the window, the pie chart
+disappears, and the application outputs:
\code
- "Reddy the Rocker" is playing the "Guitar"
- The performance has now ended
+ The chart has been cleared
\endcode
Try out the example yourself with the updated code in Qt's \c examples/tutorials/extending/chapter2-methods directory.
@@ -174,45 +209,49 @@ Try out the example yourself with the updated code in Qt's \c examples/tutorials
Property bindings is a powerful feature of QML that allows values of different
elements to be synchronized automatically. It uses signals to notify and update
-other elements' values when property values change.
+other elements' values when property values are changed.
-Let's enable property bindings for the \c instrument property. That means
+Let's enable property bindings for the \c color property. That means
if we have code like this:
\snippet declarative/tutorials/extending/chapter3-bindings/app.qml 0
-The "instrument: reddy.instrument" statement binds the \c instrument value of
-\c craig to the \c instrument of \c reddy.
-Whenever \c reddy's \c instrument value changes, \c craig's \c instrument value
-updates to the same value. When the window is clicked, the application outputs:
+\image extending-tutorial-chapter3.png
-\code
- "Reddy the Rocker" is playing the "Guitar"
- "Craig the Copycat" is playing the "Guitar"
- "Reddy the Rocker" is playing the "Drums"
- "Craig the Copycat" is playing the "Drums"
-\endcode
+The "color: chartA.color" statement binds the \c color value of
+\c chartB to the \c color of \c chartA.
+Whenever \c chartA's \c color value changes, \c chartB's \c color value
+updates to the same value. When the window is clicked, the \c onClicked
+handler in the MouseArea changes the color of \c chartA, thereby changing
+both charts to the color blue.
-It's easy to enable property binding for the \c instrument property.
-We add a \l{Qt's Property System}{NOTIFY} feature to its Q_PROPERTY() declaration to indicate that a "instrumentChanged" signal
+It's easy to enable property binding for the \c color property.
+We add a \l{Qt's Property System}{NOTIFY} feature to its Q_PROPERTY() declaration to indicate that a "colorChanged" signal
is emitted whenever the value changes.
-\snippet declarative/tutorials/extending/chapter3-bindings/musician.h 0
+\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 0
\dots
-\snippet declarative/tutorials/extending/chapter3-bindings/musician.h 1
+\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 1
\dots
-\snippet declarative/tutorials/extending/chapter3-bindings/musician.h 2
+\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 2
\dots
-\snippet declarative/tutorials/extending/chapter3-bindings/musician.h 3
+\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 3
-Then, we emit this signal in \c setInstrument():
+Then, we emit this signal in \c setPieSlice():
-\snippet declarative/tutorials/extending/chapter3-bindings/musician.cpp 0
+\snippet declarative/tutorials/extending/chapter3-bindings/piechart.cpp 0
-It's important for \c setInstrument() to check that the instrument value has actually changed
-before emitting \c instrumentChanged(). This ensures the signal is not emitted unnecessarily and
+It's important for \c setColor() to check that the color value has actually changed
+before emitting \c colorChanged(). This ensures the signal is not emitted unnecessarily and
also prevents loops when other elements respond to the value change.
+The use of bindings is essential to QML. You should always add NOTIFY
+signals for properties if they are able to be implemented, so that your
+properties can be used in bindings. Properties that cannot be bound cannot be
+automatically updated and cannot be used as flexibly in QML. Also, since
+bindings are invoked so often and relied upon in QML usage, users of your
+custom QML types may see unexpected behavior if bindings are not implemented.
+
*/
/*!
@@ -220,19 +259,19 @@ also prevents loops when other elements respond to the value change.
\example declarative/tutorials/extending/chapter4-customPropertyTypes
-The \c Musician type currently has two properties that are both strings.
-It could have all sorts of other properties. For example, we could add an
-integer-type property to store the age of each musician:
+The \c PieChart type currently has a string-type property and a color-type property.
+It could have many other types of properties. For example, we could add an
+integer-type property to store an identifier for each pie chart:
\code
- class Musician : public QObject
+ class PieChart : public QDeclarativeItem
{
...
- Q_PROPERTY(int age READ age WRITE setAge)
+ Q_PROPERTY(int id READ id WRITE setId)
public:
...
- int age() const;
- void setAge(int age);
+ int id() const;
+ void setId(int id);
...
};
\endcode
@@ -257,31 +296,39 @@ types:
If we want to create a property whose type is not supported by QML by default,
we need to register the type with QML.
-For example, let's change the type of the \c instrument property from a string to a
-new type called "Instrument". Instead of assigning a string value to \c instrument,
-we assign an \c Instrument value:
+For example, let's replace the use of the \c property with a type called
+"PieSlice" that has a \c color property. Instead of assigning a color,
+we assign an \c PieSlice value which itself contains a \c color:
\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml 0
-Like \c Musician, this new \c Instrument type has to inherit from QObject and declare
+Like \c PieChart, this new \c PieSlice type inherits from QDeclarativeItem and declares
its properties with Q_PROPERTY():
-\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/instrument.h 0
+\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h 0
-To use it from \c Musician, we modify the \c instrument property declaration
+To use it in \c PieChart, we modify the \c color property declaration
and associated method signatures:
-\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/musician.h 0
+\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 0
\dots
-\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/musician.h 1
+\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 1
\dots
-\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/musician.h 2
+\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 2
\dots
-\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/musician.h 3
+\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 3
+
+There is one thing to be aware of when implementing \c setPieSlice(). The \c PieSlice
+is a visual item, so it must be set as a child of the \c PieChart using
+QDeclarativeItem::setParentItem() so that the \c PieChart knows to paint this child
+item when its contents are drawn:
+
+\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp 0
-Like the \c Musician type, the \c Instrument type has to be registered
-using qmlRegisterType() to be used from QML. As with \c Musician, we'll add the
-type to the "Music" module, version 1.0:
+
+Like the \c PieChart type, the \c PieSlice type has to be registered
+using qmlRegisterType() to be used from QML. As with \c PieChart, we'll add the
+type to the "Charts" module, version 1.0:
\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp 0
\dots
@@ -293,16 +340,66 @@ Try it out with the code in Qt's \c examples/tutorials/extending/chapter4-custom
*/
+
+/*!
+\title Chapter 5: Using List Property Types
+
+\example declarative/tutorials/extending/chapter5-listproperties
+
+Right now, a \c PieChart can only have one \c PieSlice. Ideally a chart would
+have multiple slices, with different colors and sizes. To do this, we could
+have a \c slices property that accepts a list of \c PieSlice items:
+
+\snippet declarative/tutorials/extending/chapter5-listproperties/app.qml 0
+
+\image extending-tutorial-chapter5.png
+
+To do this, we replace the \c pieSlice property in \c PieChart with a \c slices property,
+declared as a QDeclarativeListProperty type. The QDeclarativeListProperty class enables the
+creation of list properties in QML extensions. We replace the \c pieSlice()
+function with a \c slices() function that returns a list of slices, and add
+an internal \c append_slice() function (discussed below). We also use a QList to
+store the internal list of slices as \c m_slices:
+
+\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.h 0
+\dots
+\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.h 1
+\dots
+\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.h 2
+
+Although the \c slices property does not have an associated \c WRITE function,
+it is still modifiable because of the way QDeclarativeListProperty works.
+In the \c PieChart implementation, we implement \c PieChart::slices() to
+return a QDeclarativeListProperty value and indicate that the internal
+\c PieChart::append_slice() function is to be called whenever a request is made from QML
+to add items to the list:
+
+\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.cpp 0
+
+The \c append_slice() function simply sets the parent item as before,
+and adds the new item to the \c m_slices list. As you can see, the append function for a
+QDeclarativeListProperty is called with two arguments: the list property, and
+the item that is to be appended.
+
+The \c PieSlice class has also been modified to include \c fromAngle and \c angleSpan
+properties and to draw the slice according to these values. This is a straightforward
+modification if you have read the previous pages in this tutorial, so the code is not shown here.
+
+The complete code can be seen in the updated \c examples/tutorials/extending/chapter5-listproperties directory.
+
+*/
+
+
/*!
-\title Chapter 5: Writing an Extension Plugin
+\title Chapter 6: Writing an Extension Plugin
-\example declarative/tutorials/extending/chapter5-plugins
+\example declarative/tutorials/extending/chapter6-plugins
-Currently the \c Musician and \c Instrument types are used by \c app.qml,
+Currently the \c PieChart and \c PieSlice types are used by \c app.qml,
which is displayed using a QDeclarativeView in a C++ application. An alternative
way to use our QML extension is to create a plugin library to make it available
-to the QML engine. This means we could load \c app.qml using the standard \c qml tool
-(or some other QML runtime application) instead of writing a \c main.cpp file and
+to the QML engine. This allows \c app.qml to be loaded with the \l {QML Viewer}
+(or some other QML \l{Qt Declarative UI Runtime}{runtime} application) instead of writing a \c main.cpp file and
loading our own C++ application.
To create a plugin library, we need:
@@ -313,45 +410,48 @@ To create a plugin library, we need:
\o A "qmldir" file that tells the QML engine to load the plugin
\endlist
-First, we create a plugin class named \c MusicPlugin. It subclasses QDeclarativeExtensionPlugin
+First, we create a plugin class named \c ChartsPlugin. It subclasses QDeclarativeExtensionPlugin
and registers our QML types in the inherited \l{QDeclarativeExtensionPlugin::}{registerTypes()} method. It also calls
Q_EXPORT_PLUGIN2 for Qt's \l{How to Create Qt Plugins}{plugin system}.
-Here is the \c MusicPlugin definition in \c musicplugin.h:
+Here is the \c ChartsPlugin definition in \c chartsplugin.h:
-\snippet declarative/tutorials/extending/chapter5-plugins/musicplugin.h 0
+\snippet declarative/tutorials/extending/chapter6-plugins/chartsplugin.h 0
-And its implementation in \c musicplugin.cpp:
+And its implementation in \c chartsplugin.cpp:
-\snippet declarative/tutorials/extending/chapter5-plugins/musicplugin.cpp 0
+\snippet declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp 0
Then, we write a \c .pro project file that defines the project as a plugin library
and specifies with DESTDIR that library files should be built into a "lib" subdirectory:
-\quotefile declarative/tutorials/extending/chapter5-plugins/chapter5-plugins.pro
+\quotefile declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro
Finally, we add a \c qmldir file that is automatically parsed by the QML engine.
-Here, we specify that a plugin named "chapter5-plugin" (the name
+Here, we specify that a plugin named "chapter6-plugin" (the name
of the example project) can be found in the "lib" subdirectory:
-\quotefile declarative/tutorials/extending/chapter5-plugins/qmldir
+\quotefile declarative/tutorials/extending/chapter6-plugins/qmldir
Now we have a plugin, and instead of having a main.cpp and an executable, we can build
-the project and then run the QML file directly using the \c qml tool:
+the project and then load the QML file in the \l {QML Viewer}:
\code
- qml app.qml
+ qmlviewer app.qml
\endcode
-Notice the "import Music 1.0" statement has disappeared from \c app.qml. This is
+(On Mac OS X, you can launch the "QMLViewer" application instead.)
+
+Notice the "import Charts 1.0" statement has disappeared from \c app.qml. This is
because the \c qmldir file is in the same directory as \c app.qml: this is equivalent to
-having Musician.qml and Instrument.qml files inside the project directory, which could both
+having PieChart.qml and PieSlice.qml files inside the project directory, which could both
be used by \c app.qml without import statements.
*/
+
/*!
-\page qml-extending-tutorial6.html
-\title Chapter 6: In Summary
+\page qml-extending-tutorial7.html
+\title Chapter 7: In Summary
In this tutorial, we've shown the basic steps for creating a QML extension:
@@ -360,47 +460,33 @@ In this tutorial, we've shown the basic steps for creating a QML extension:
\o Add callable methods using Q_INVOKABLE or Qt slots, and connect to Qt signals with an \c onSignal syntax
\o Add property bindings by defining \l{Qt's Property System}{NOTIFY} signals
\o Define custom property types if the built-in types are not sufficient
+\o Define list property types using QDeclarativeListProperty
\o Create a plugin library by defining a Qt plugin and writing a \c qmldir file
\endlist
The \l {Extending QML in C++} reference documentation shows other useful features that can be added to
-QML extensions. For example, we could use \l{Object and List Property Types}{list properties} to allow multiple instruments for a \c Musician:
-
-\code
- Musician {
- instruments: [
- Instrument { type: "Guitar" }
- Instrument { type: "Drums" }
- Instrument { type: "Keyboard" }
- ]
- }
-\endcode
-
-Or use \l{Default Property}{default properties} and avoid an
-\c instruments property altogether:
+QML extensions. For example, we could use \l{Default Property}{default properties} to allow
+slices to be added without using the \c slices property:
\code
- Musician {
- Instrument { type: "Guitar" }
- Instrument { type: "Drums" }
- Instrument { type: "Keyboard" }
+ PieChart {
+ PieSlice { ... }
+ PieSlice { ... }
+ PieSlice { ... }
}
\endcode
-Or even change the \c instrument of a \c Musician from time to time using \l{Property Value Sources}{property value sources}:
+Or randomly add and remove slices from time to time using \l{Property Value Sources}{property value sources}:
\code
- Musician {
- InstrumentRandomizer on instrument {}
+ PieChart {
+ PieSliceRandomizer on slices {}
}
\endcode
See the \l{Extending QML in C++}{reference documentation} for more information.
-Additionally, \l {Integrating QML with existing Qt UI code} shows how to create
-and integrate with QML extensions that have drawing and graphical capabilities (through QGraphicsWidget).
-
*/
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 2fd6fa8..3acfbdf 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -704,10 +704,6 @@ of some of the types. For the remaining types the default values are undefined.
\row \o color \o #000000 (black)
\endtable
-If specified, the optional "default" attribute marks the new property as the
-types default property, overriding any existing default property. Using the
-default attribute twice in the same type block is an error.
-
The following example shows how to declare a new "innerColor" property that
controls the color of the inner rectangle.
@@ -725,6 +721,9 @@ controls the color of the inner rectangle.
}
\endcode
+
+\section3 Property signal handlers
+
Adding a property to an item automatically adds a \e{value-changed}
signal handler to the item. The signal hander is named
\c{on<Property_name>Changed}, with the first letter of the property
@@ -743,6 +742,42 @@ example shows how to output to a text console a new value of property
}
\endcode
+
+\section3 Setting default properties
+
+The optional \c default attribute for a property marks it as the \e {default property}
+for a type. This allows other items to specify the default property's value
+as child elements. For example, the \l Item element's default property is its
+\l{Item::children}{children} property. This allows the children of an \l Item
+to be set like this:
+
+\qml
+Item {
+ Rectangle {}
+ Rectangle {}
+}
+\endqml
+
+If the \l{Item::children}{children} property was not the default property for
+\l Item, its value would have to be set like this instead:
+
+\qml
+Item {
+ children: [
+ Rectangle {}
+ Rectangle {}
+ ]
+}
+\endqml
+
+See the \l{declarative/ui-components/tabwidget}{TabWidget} example for a
+demonstration of using default properties.
+
+Specifying a default property overrides any existing default property (for
+example, any default property inherited from a parent item). Using the
+default attribute twice in the same type block is an error.
+
+
\target qml-property-aliases
\section2 Property aliases
diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc
index cc546c0..0dd5eb3 100644
--- a/doc/src/declarative/focus.qdoc
+++ b/doc/src/declarative/focus.qdoc
@@ -87,7 +87,7 @@ Text {
An \l Item requests focus by setting the \c {Item::focus} property to true.
For very simple cases simply setting the \c {Item::focus} property is sometimes
-sufficient. If we run the following example with the \l {Qt Declarative UI Runtime}{qml} tool, we see that
+sufficient. If we run the following example with the \l {QML Viewer}, we see that
the \c {keyHandler} element has \e {active focus} and pressing the 'A', 'B'
or 'C' keys modifies the text appropriately.
diff --git a/doc/src/declarative/globalobject.qdoc b/doc/src/declarative/globalobject.qdoc
index 36d91ec..a9aee2f 100644
--- a/doc/src/declarative/globalobject.qdoc
+++ b/doc/src/declarative/globalobject.qdoc
@@ -35,7 +35,7 @@ Contains all the properties of the JavaScript global object, plus:
\section1 Qt Object
-The \l{Qt}{Qt object} provides useful enums and functions from Qt, for use in all QML
+The \l{QmlGlobalQtObject}{Qt object} provides useful enums and functions from Qt, for use in all QML
files.
\section1 XMLHttpRequest
diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc
index 02a2f5f..938222a 100644
--- a/doc/src/declarative/modules.qdoc
+++ b/doc/src/declarative/modules.qdoc
@@ -72,7 +72,7 @@ The second exception is explained in more detail in the section below on Namespa
\section2 The Import Path
Installed modules are searched for on the import path.
-The \c -I option to the \l {Qt Declarative UI Runtime}{qml} runtime adds paths to the import path.
+The \c -I option to the \l {QML Viewer} adds paths to the import path.
From C++, the path is available via \l QDeclarativeEngine::importPathList() and can be prepended to
using \l QDeclarativeEngine::addImportPath().
@@ -103,9 +103,16 @@ the \c qmldir file. Types which you do not wish to export to users of your modul
may be marked with the \c internal keyword: \c internal <TypeName> <File>.
The same type can be provided by different files in different versions, in which
-case later earlier versions (eg. 1.2) must precede earlier versions (eg. 1.0),
+case later versions (eg. 1.2) must precede earlier versions (eg. 1.0),
since the \e first name-version match is used and a request for a version of a type
-can be fulfilled by one defined in an earlier version of the module.
+can be fulfilled by one defined in an earlier version of the module. If a user attempts
+to import a version earlier than the earliest provided or later than the latest provided,
+an error results, but if the user imports a version within the range of versions provided,
+even if no type is specific to that version, no error results.
+
+A single module, in all versions, may only be provided in a single directory (and a single \c qmldir file).
+If multiple are provided, only the first in the search path will be used (regardless of whether other versions
+are provided by directories later in the search path).
Installed and remote files without a namespace \e must be referred to by version information described above,
local files \e may have it.
@@ -122,7 +129,7 @@ to the module.
of the plugin binary, which is platform dependent; e.g. the library MyAppTypes would produce
a libMyAppTypes.so on Linux and MyAppTypes.dll on Windows.
By default the engine searches for the plugin library in the directory containing the \c qmldir
-file. The \c -P option to the \l {Qt Declarative UI Runtime}{qml} runtime adds paths to the
+file. The \c -P option to the \l {QML Viewer} adds paths to the
plugin search path.
From C++, the path is available via \l QDeclarativeEngine::pluginPathList() and can be prepended to
using \l QDeclarativeEngine::addPluginPath().
diff --git a/doc/src/declarative/network.qdoc b/doc/src/declarative/network.qdoc
index b0d19e2..60359de 100644
--- a/doc/src/declarative/network.qdoc
+++ b/doc/src/declarative/network.qdoc
@@ -54,7 +54,7 @@ Network transparency is supported throughout QML, for example:
\o WebViews - the \c url property of WebView (obviously!)
\endlist
-Even QML types themselves can be on the network - if the \l {Qt Declarative UI Runtime}{qml} tool is used to load
+Even QML types themselves can be on the network - if the \l {QML Viewer} is used to load
\tt http://example.com/mystuff/Hello.qml and that content refers to a type "World", the engine
will load \tt http://example.com/mystuff/qmldir and resolve the type just as it would for a local file.
For example if the qmldir file contains the line "World World.qml", it will load
@@ -119,7 +119,7 @@ All network access from QML is managed by a QNetworkAccessManager set on the QDe
By default, this is an unmodified Qt QNetworkAccessManager. You may set a different manager by
providing a QDeclarativeNetworkAccessManagerFactory and setting it via
QDeclarativeEngine::setNetworkAccessManagerFactory().
-For example, the \l {Qt Declarative UI Runtime}{qml} tool sets a QDeclarativeNetworkAccessManagerFactory which
+For example, the \l {QML Viewer} sets a QDeclarativeNetworkAccessManagerFactory which
creates QNetworkAccessManager that trusts HTTP Expiry headers to avoid network cache checks,
allows HTTP Pipelining, adds a persistent HTTP CookieJar, a simple disk cache, and supports proxy settings.
diff --git a/doc/src/declarative/pics/extending-tutorial-chapter1.png b/doc/src/declarative/pics/extending-tutorial-chapter1.png
new file mode 100644
index 0000000..9f5836b
--- /dev/null
+++ b/doc/src/declarative/pics/extending-tutorial-chapter1.png
Binary files differ
diff --git a/doc/src/declarative/pics/extending-tutorial-chapter2.png b/doc/src/declarative/pics/extending-tutorial-chapter2.png
new file mode 100644
index 0000000..5c8f222
--- /dev/null
+++ b/doc/src/declarative/pics/extending-tutorial-chapter2.png
Binary files differ
diff --git a/doc/src/declarative/pics/extending-tutorial-chapter3.png b/doc/src/declarative/pics/extending-tutorial-chapter3.png
new file mode 100644
index 0000000..825553f
--- /dev/null
+++ b/doc/src/declarative/pics/extending-tutorial-chapter3.png
Binary files differ
diff --git a/doc/src/declarative/pics/extending-tutorial-chapter5.png b/doc/src/declarative/pics/extending-tutorial-chapter5.png
new file mode 100644
index 0000000..0c2e69e
--- /dev/null
+++ b/doc/src/declarative/pics/extending-tutorial-chapter5.png
Binary files differ
diff --git a/doc/src/declarative/pics/imageprovider.png b/doc/src/declarative/pics/imageprovider.png
new file mode 100644
index 0000000..422103c
--- /dev/null
+++ b/doc/src/declarative/pics/imageprovider.png
Binary files differ
diff --git a/doc/src/declarative/qdeclarativedebugging.qdoc b/doc/src/declarative/qdeclarativedebugging.qdoc
index da6e407..ea21852 100644
--- a/doc/src/declarative/qdeclarativedebugging.qdoc
+++ b/doc/src/declarative/qdeclarativedebugging.qdoc
@@ -47,7 +47,7 @@ Rectangle {
When a transition doesn't look quite right, it can be helpful to view it in slow
motion to see what is happening more clearly. This functionality is supported
-in the \l {Qt Declarative UI Runtime}{qmlviewer} tool: to enable this,
+in the \l {QML Viewer} tool: to enable this,
click on the "Debugging" menu, then "Slow Down Animations".
@@ -64,7 +64,7 @@ import Qt 4.7
Rectangle { width: 100; height: 100 }
\endqml
-If you set \c {QML_IMPORT_TRACE=1} before running the \l {Qt Declarative UI Runtime}{qmlviewer}
+If you set \c {QML_IMPORT_TRACE=1} before running the \l {QML Viewer}
(or your QML C++ application), you will see output similar to this:
\code
@@ -85,11 +85,11 @@ show QML debugging information and options for your application, including
object inspection, property monitoring and application frame-rate analysis.
Creator can be used to debug both local and remote QML applications. To
-enable remote debugging, start the \l {Qt Declarative UI Runtime}{qml} tool
+enable remote debugging, start the \l {QML Viewer}
on the remote device with a debugging port defined, like this:
\code
- QML_DEBUG_SERVER_PORT=3768 qml myqmlfile.qml
+ QML_DEBUG_SERVER_PORT=3768 qmlviewer myqmlfile.qml
\endcode
In Creator, open the project settings pane and set the server and port
diff --git a/doc/src/declarative/qdeclarativei18n.qdoc b/doc/src/declarative/qdeclarativei18n.qdoc
index 40f7919..b6e6c6e 100644
--- a/doc/src/declarative/qdeclarativei18n.qdoc
+++ b/doc/src/declarative/qdeclarativei18n.qdoc
@@ -49,7 +49,7 @@ capabilities are described more fully in:
\o \l {Qt Linguist Manual}
\endlist
-You can test a translation with the \l {Qt Declarative UI Runtime}{qml} tool using the -translation option.
+You can test a translation with the \l {QML Viewer} using the -translation option.
\section1 Example
@@ -61,8 +61,8 @@ hello.qml:
import Qt 4.7
Rectangle {
- width: 200; height: 200
- Text { text: qsTr("Hello"); anchors.centerIn: parent }
+ width: 200; height: 200
+ Text { text: qsTr("Hello"); anchors.centerIn: parent }
}
\endqml
@@ -76,7 +76,7 @@ a translation and create the release file \c hello.qm.
Finally, we can test the translation:
\code
-qml -translation hello.qm hello.qml
+qmlviewer -translation hello.qm hello.qml
\endcode
diff --git a/doc/src/declarative/qdeclarativeperformance.qdoc b/doc/src/declarative/qdeclarativeperformance.qdoc
index 26c1e89..be8c029 100644
--- a/doc/src/declarative/qdeclarativeperformance.qdoc
+++ b/doc/src/declarative/qdeclarativeperformance.qdoc
@@ -115,4 +115,25 @@ provide an image that includes the frame and the shadow.
Avoid running JavaScript during animation. For example, running a complex
JavaScript expression for each frame of an x property animation.
+\section1 Rendering
+
+Often using a different graphics system will give superior performance to the native
+graphics system (this is especially the case on X11). This can be configured using
+QApplication::setGraphicsSystem() or via the command line using the \c -graphicssystem
+switch.
+
+You can enable OpenGL acceleration using the \c opengl graphics system, or by setting a
+QGLWidget as the viewport of your QDeclarativeView.
+
+You may need to try various options to find what works the best for your application.
+For embedded X11-based devices one recommended combination is to use the raster graphics
+system with a QGLWidget for the viewport. While this doesn't guarantee the \bold fastest
+performance for all use-cases, it typically has \bold{consistently good} performance for
+all use-cases. In contrast, only using the raster paint engine may result in very good
+performance for parts of your application and very poor performance elsewhere.
+
+The QML Viewer uses the raster graphics system by default for X11 and OS X. It also
+includes a \c -opengl command line option which sets a QGLWidget as the viewport of the
+view. On OS X, a QGLWidget is always used.
+
*/
diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc
index ac79496..fbab001 100644
--- a/doc/src/declarative/qml-intro.qdoc
+++ b/doc/src/declarative/qml-intro.qdoc
@@ -105,9 +105,17 @@ 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 command
\code
- qml myexample.qml
+ qmlviewer myexample.qml
\endcode
+On Mac OS X, open the "QMLViewer" application instead and open the
+\c myexample.qml file, or run it from the command line:
+
+ \code
+ QMLViewer.app/Contents/MacOS/QMLViewer myexample.qml
+ \endcode
+
+
It will create a very boring rectangle in its own window.
@@ -915,16 +923,18 @@ 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
- SpringFollow on angle {
- spring: 1.4
- damping: .15
- to: Math.min(Math.max(-130, root.value*2.6 - 130), 133)
+ angle: Math.min(Math.max(-130, root.value*2.6 - 130), 133)
+ Behavior on angle {
+ SpringAnimation {
+ spring: 1.4
+ damping: .15
+ }
}
\endcode
This is part of the \c needleRotation that rotates the needle and causes the
-rotation of its shadow. \l SpringFollow is an element that modifies the value
-of that rotation angle \e to and mimics the oscillatory behavior of a spring,
+rotation of its shadow. \l SpringAnimation is an element that modifies the value
+of that rotation \e angle and mimics the oscillatory behavior of a spring,
with the appropriate \e spring constant to control the acceleration and the \e
damping to control how quickly the effect dies away.
diff --git a/doc/src/declarative/qmlviewer.qdoc b/doc/src/declarative/qmlviewer.qdoc
index efff9cc..5efc0ce 100644
--- a/doc/src/declarative/qmlviewer.qdoc
+++ b/doc/src/declarative/qmlviewer.qdoc
@@ -42,7 +42,7 @@ deployment of QML applications. In those cases, the QML runtime should be invoke
from a Qt application instead; see \l {Qt Declarative UI Runtime} for more
information.
-The viewer is located at QTDIR/bin/qmlviewer. To load a \c .qml file
+The viewer is located at \c QTDIR/bin/qmlviewer. To load a \c .qml file
with the viewer, run the viewer and select the file to be opened, or provide the
file path on the command line:
@@ -50,7 +50,7 @@ file path on the command line:
qmlviewer myqmlfile.qml
\endcode
-On Mac OS X, the QML Viewer application is named \c QMLViewer.app instead. You
+On Mac OS X, the QML Viewer application is named "QMLViewer" instead. You
can launch the viewer by opening the QMLViewer application from the Finder, or
from the command line:
diff --git a/doc/src/declarative/qtprogrammers.qdoc b/doc/src/declarative/qtprogrammers.qdoc
index ae54d58..68d56bf 100644
--- a/doc/src/declarative/qtprogrammers.qdoc
+++ b/doc/src/declarative/qtprogrammers.qdoc
@@ -27,8 +27,6 @@
/*!
- INCOMPLETE
-
\page qtprogrammers.html
\target qtprogrammers
\title QML for Qt programmers
@@ -146,4 +144,14 @@ transition from an arbitrary Text item, or characters within a Text item, so you
item would need to be sufficiently flexible to allow such animation.
\section1 QML Items Compared With QGraphicsWidgets
+
+The main difference between QML items and QGraphicsWidgets is how they are intended to be used. The technical implementation details are much the same, but in practice they are different because QML items are made for declarative and compositional use, and QGraphicsWidgets are made for imperative and more integrated use. Both QML items and QGraphicsWidgets inherit from QGraphicsObject, and can co-exist. The differences are in the layouting system and the interfacing with other components. Note that, as QGraphicsWidgets tend more to be all-in-one packages, the equivalent of a QGraphicsWidget may be many QML items composed across several QML files, but it can still be loaded and used as a single QGraphicsObject from C++.
+
+QGraphicsWidgets are usually designed to be laid out with QGraphicsLayouts. QML does not use QGraphicsLayouts, as the Qt layouts do not mix well with animated and fluid UIs, so the geometry interface is one of the main differences. When writing QML elements, you allow the designers to place their bounding rectangle using absolute geometry, bindings or anchors (all setup for you when you inherit QDeclarativeItem) and you do not use layouts or size hints. If size hints are appropriate, then place them in the QML documentation so that the designers know how to use the item best, but still have complete control over the look and feel.
+
+The other main difference is that QGraphicsWidgets tend to follow the widget model, in that they are a self-contained bundle of UI and logic. In contrast, QML primitives are usually a single purpose item that does not fulfill a use case on its own, but is composed into the equivalent of the widget inside the QML file. So when writing QML Items, try to avoid doing UI logic or composing visual elements inside the items. Try instead to write more general purpose primitives, so that the look and feel (which involves the UI logic) can be written in QML.
+
+Both differences are caused by the different method of interaction. QGraphicsWidget is a QGraphicsObject subclass which makes fluid UI development from C++ easier, and QDeclarativeItem is a QGraphicsObject subclass which makes fluid UI development from QML easier. The difference therefore is primarily one of the interface exposed, and the design of the items that come with it (the Declarative primitives for QML and the nothing for QGraphicsWidget, because you need to write your own UI logic into the subclass).
+
+If you wish to use both QML and C++ to write the UI, for example to ease the transition period, it is recommended to use QDeclarativeItem subclasses (although you can use QGraphicsWidgets as well). To allow for easier use from C++ make the root item of each C++ component a LayoutItem, and load individual 'widgets' of QML (possibly comprised of multiple files, and containing a self-contained bundle of UI and logic) into your scene to replace individual QGraphicsWidgets one at a time.
*/
diff --git a/doc/src/declarative/tutorial.qdoc b/doc/src/declarative/tutorial.qdoc
index c884486..7a97eb1 100644
--- a/doc/src/declarative/tutorial.qdoc
+++ b/doc/src/declarative/tutorial.qdoc
@@ -101,11 +101,11 @@ The \c font.pointSize and \c font.bold properties are related to fonts and use t
\section2 Viewing the example
-To view what you have created, run the \l{Qt Declarative UI Runtime}{qml} tool (located in the \c bin directory) with your filename as the first argument.
+To view what you have created, run the \l{QML Viewer} tool (located in the \c bin directory) with your filename as the first argument.
For example, to run the provided completed Tutorial 1 example from the install location, you would type:
\code
-bin/qml $QTDIR/examples/declarative/tutorials/helloworld/tutorial1.qml
+bin/qmlviewer $QTDIR/examples/declarative/tutorials/helloworld/tutorial1.qml
\endcode
*/
diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc
index c8a7403..ce53677 100644
--- a/doc/src/examples/qml-examples.qdoc
+++ b/doc/src/examples/qml-examples.qdoc
@@ -196,6 +196,9 @@
\o \l{declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout}{QGraphicsGridLayout}
\o \l{declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout}{QGraphicsLinearLayout}
\endlist
+
+ Also see \l {Integrating QML with existing Qt UI code} for information on using QML
+ in Qt applications that use the Graphics View framework or ordinary QWidget-based views.
*/
/*!
@@ -211,8 +214,10 @@
\title C++ Extensions: Image Provider
\example declarative/cppextensions/imageprovider
- This examples shows how to use QDeclarativeImageProvider to serve images asynchronously
- into a QML item.
+ This examples shows how to use QDeclarativeImageProvider to serve images
+ to QML image elements.
+
+ \image qml-imageprovider-example.png
*/
/*!
@@ -472,7 +477,7 @@
This example displays a set of clocks with different times for different cities.
Each clock is created by combining \l Image elements with \l Rotation transforms
- and \l SpringFollow animations.
+ and \l SpringAnimation behaviors.
\image qml-clocks-example.png
*/
@@ -512,7 +517,7 @@
\title Toys: TV Tennis
\example declarative/toys/tvtennis
- This example shows how to use animation components such as \l SpringFollow,
+ This example shows how to use animation components such as \l SpringAnimation,
\l SequentialAnimation and \l PropertyAction to create a game of TV tennis.
\image qml-tvtennis-example.png
@@ -540,7 +545,7 @@
\example declarative/ui-components/dialcontrol
This example shows how to create a dial-type control. It combines
- \l Image elements with \l Rotation transforms and \l SpringFollow animations
+ \l Image elements with \l Rotation transforms and \l SpringAnimatino behaviors
to produce an interactive speedometer-type dial.
\image qml-dialcontrol-example.png
@@ -608,7 +613,9 @@
\title UI Components: Tab Widget
\example declarative/ui-components/tabwidget
- This example shows how to create a tab widget.
+ This example shows how to create a tab widget. It also demonstrates how
+ \l {Setting default properties}{default properties} can be used to collect and
+ assemble the child items declared within an \l Item.
\image qml-tabwidget-example.png
*/
diff --git a/doc/src/examples/qml-webbrowser.qdoc b/doc/src/examples/qml-webbrowser.qdoc
index da6f600..a3cef66 100644
--- a/doc/src/examples/qml-webbrowser.qdoc
+++ b/doc/src/examples/qml-webbrowser.qdoc
@@ -6,41 +6,27 @@
**
** This file is part of the documentation 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.
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in a
+** written agreement between you and Nokia.
+**
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
- \title Web Browser
+ \title QML Web Browser
\example demos/declarative/webbrowser
This demo shows how to write a simple web browser in QML by combining the
diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index cbd66ee..61c9da2 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -416,5 +416,5 @@
/*!
\externalpage http://opensource.org/licenses/bsd-license.php
- \title New and Modified BSD Licenses
-*/ \ No newline at end of file
+ \title BSD License
+*/
diff --git a/doc/src/frameworks-technologies/dnd.qdoc b/doc/src/frameworks-technologies/dnd.qdoc
index 4a1b631..c5dd27c 100644
--- a/doc/src/frameworks-technologies/dnd.qdoc
+++ b/doc/src/frameworks-technologies/dnd.qdoc
@@ -45,7 +45,7 @@
outlines the approach used to enable it in custom widgets. Drag
and drop operations are also supported by Qt's item views and by
the graphics view framework. More information is available in
- \l{Using Drag and Drop with Item Views} and \l{Graphics View
+ \l{Using drag & drop with item views} and \l{Graphics View
Framework}.
\section1 Drag and Drop Classes
diff --git a/doc/src/images/qml-imageprovider-example.png b/doc/src/images/qml-imageprovider-example.png
new file mode 100644
index 0000000..e82548a
--- /dev/null
+++ b/doc/src/images/qml-imageprovider-example.png
Binary files differ
diff --git a/doc/src/images/qml-mousearea-example.png b/doc/src/images/qml-mousearea-example.png
index c6e52d6..c0eef7f 100644
--- a/doc/src/images/qml-mousearea-example.png
+++ b/doc/src/images/qml-mousearea-example.png
Binary files differ
diff --git a/doc/src/images/qml-xmllistmodel-example.png b/doc/src/images/qml-xmllistmodel-example.png
new file mode 100644
index 0000000..be2d15d
--- /dev/null
+++ b/doc/src/images/qml-xmllistmodel-example.png
Binary files differ
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index ca7fef5..b5e73ed 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -44,7 +44,7 @@
<li><a href="installation.html">Installation &amp; first steps</a></li>
<li><a href="how-to-learn-qt.html">How to learn Qt</a></li>
<li><a href="tutorials.html">Tutorials</a></li>
- <li><a href="examples.html">Examples</a></li>
+ <li><a href="all-examples.html">Examples</a></li>
<li><a href="qt4-7-intro.html">Whats new in Qt 4.7</a></li>
</ul>
</div>
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 22d858f..afb17c4 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -51,6 +51,7 @@
\o \l {Exception Safety with Symbian}
\o \l {Platform Notes - Symbian} {Qt for the Symbian platform - state of support}
\o \l {qmake Platform Notes#Symbian platform} {Qt for Symbian extensions for qmake}
+ \o \l {Symbian Platform Security Requirements} {Symbian Platform Security Requirements}
\endlist
\o
\list
@@ -60,6 +61,22 @@
*/
/*!
+ \page symbian-platform-security-requirements.html
+
+ \title Symbian Platform Security Requirements
+ \ingroup qtsymbian
+
+ On Symbian, processes that access media via the network must
+ have the \c NetworkServices platform security capability. If the client
+ process lacks this capability, operations will result in errors.
+ This failure is indicated by a state() of Phonon::ErrorState.
+
+ Platform security capabilities are added via the
+ \l{qmake-variable-reference.html#target-capability}{TARGET.CAPABILITY}
+ qmake variable.
+*/
+
+/*!
\page symbian-with-qt-introduction.html
\title The Symbian platform - Introduction to Qt
diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc
index 985f3da..c46159c 100644
--- a/doc/src/snippets/code/doc_src_installation.qdoc
+++ b/doc/src/snippets/code/doc_src_installation.qdoc
@@ -263,7 +263,7 @@ make
//! [40]
//! [41]
-cd src/s60installs
+cd src
make sis
//! [41]
diff --git a/doc/src/snippets/declarative/gridview/gridview.qml b/doc/src/snippets/declarative/gridview/gridview.qml
index 7377cee..e92a429 100644
--- a/doc/src/snippets/declarative/gridview/gridview.qml
+++ b/doc/src/snippets/declarative/gridview/gridview.qml
@@ -108,8 +108,10 @@ Component {
Rectangle {
width: view.cellWidth; height: view.cellHeight
color: "lightsteelblue"; radius: 5
- SpringFollow on x { to: view.currentItem.x; spring: 3; damping: 0.2 }
- SpringFollow on y { to: view.currentItem.y; spring: 3; damping: 0.2 }
+ x: view.currentItem.x
+ y: view.currentItem.y
+ Behavior on x { SpringAnimation { spring: 3; damping: 0.2 } }
+ Behavior on y { SpringAnimation { spring: 3; damping: 0.2 } }
}
}
diff --git a/doc/src/snippets/declarative/listview/listview.qml b/doc/src/snippets/declarative/listview/listview.qml
index 0c6dfd4..cde820e 100644
--- a/doc/src/snippets/declarative/listview/listview.qml
+++ b/doc/src/snippets/declarative/listview/listview.qml
@@ -99,10 +99,12 @@ Component {
Rectangle {
width: 180; height: 40
color: "lightsteelblue"; radius: 5
- SpringFollow on y {
- to: list.currentItem.y
- spring: 3
- damping: 0.2
+ y: list.currentItem.y
+ Behavior on y {
+ SpringAnimation {
+ spring: 3
+ damping: 0.2
+ }
}
}
}
diff --git a/doc/src/snippets/declarative/mousearea.qml b/doc/src/snippets/declarative/mousearea.qml
index 8e7c737..fb6cba0 100644
--- a/doc/src/snippets/declarative/mousearea.qml
+++ b/doc/src/snippets/declarative/mousearea.qml
@@ -83,17 +83,18 @@ Rectangle {
id: container
width: 600; height: 200
- Image {
- id: pic
- source: "pics/qt.png"
- opacity: (600.0 - pic.x) / 600
+ Rectangle {
+ id: rect
+ width: 50; height: 50
+ color: "red"
+ opacity: (600.0 - rect.x) / 600
MouseArea {
anchors.fill: parent
- drag.target: pic
+ drag.target: rect
drag.axis: Drag.XAxis
drag.minimumX: 0
- drag.maximumX: container.width - pic.width
+ drag.maximumX: container.width - rect.width
}
}
}
diff --git a/doc/src/template/style/style.css b/doc/src/template/style/style.css
index 5144020..9f80921 100755
--- a/doc/src/template/style/style.css
+++ b/doc/src/template/style/style.css
@@ -1,6 +1,8 @@
@media screen
{
- html
+
+/* basic elements */
+ html
{
color: #000000;
background: #FFFFFF;
@@ -18,6 +20,7 @@
fieldset, img
{
border: 0;
+ max-width:100%;
}
address, caption, cite, code, dfn, em, strong, th, var, optgroup
{
@@ -39,7 +42,6 @@
h1, h2, h3, h4, h5, h6
{
font-size: 100%;
-/* font-weight: normal; */
}
q:before, q:after
{
@@ -50,11 +52,7 @@
border: 0;
font-variant: normal;
}
- sup
- {
- vertical-align: baseline;
- }
- sub
+ sup, sub
{
vertical-align: baseline;
}
@@ -62,19 +60,6 @@
{
word-spacing:5px;
}
- .heading
- {
- font: normal bold 16px/1.0 Arial;
- padding-bottom: 15px;
- }
- .subtitle
- {
- font-size: 13px;
- }
- .small-subtitle
- {
- font-size: 13px;
- }
legend
{
color: #000000;
@@ -90,9 +75,19 @@
{
font-size: 100%;
}
+ strong
+ {
+ font-weight: bold;
+ }
+ em
+ {
+ font-style: italic;
+ }
+
+ /* adding Qt theme */
html
{
- background-color: #e5e5e5;
+ /* background-color: #e5e5e5;*/
}
body
{
@@ -100,73 +95,115 @@
font: normal 13px/1.2 Verdana;
color: #363534;
}
- strong
+ a
{
- font-weight: bold;
+ color: #00732f;
+ text-decoration: none;
}
- em
+ hr
{
- font-style: italic;
+ background-color: #E6E6E6;
+ border: 1px solid #E6E6E6;
+ height: 1px;
+ width: 100%;
+ text-align: left;
+ margin: 15px 0px 15px 0px;
}
- a
+
+ pre
{
- color: #00732f;
- text-decoration: none;
+ border: 1px solid #DDDDDD;
+ -moz-border-radius: 7px 7px 7px 7px;
+ margin: 0 20px 10px 10px;
+ padding: 20px 15px 20px 20px;
+ overflow-x: auto;
}
- .header, .footer, .wrapper
+ table, pre
{
- min-width: 600px;
- max-width: 1500px;
- margin: 0 30px;
+ -moz-border-radius: 7px 7px 7px 7px;
+ background-color: #F6F6F6;
+ border: 1px solid #E6E6E6;
+ border-collapse: separate;
+ font-size: 11px;
+ margin-bottom: 25px;
}
- .wrapper
+ pre.highlightedCode {
+ display: block;
+ overflow:hidden;
+ }
+ thead
{
- background: url(../images/bg_r.png) repeat-y 100% 0;
+ margin-top: 5px;
+ font:600 12px/1.2 Arial;
}
- .wrapper .hd
+ th
{
- padding-left: 216px;
- height: 15px;
- background: url(../images/page.png) no-repeat 0 0;
- overflow: hidden;
+ padding: 5px 15px 5px 15px;
+ background-color: #E1E1E1;
+ border-left: 1px solid #E6E6E6;
}
- .offline .wrapper .hd
+ td
{
- background: url(../images/page.png) no-repeat 0 -15px;
+ padding: 3px 15px 3px 20px;
}
- .wrapper .hd span
+ tr.odd td:hover, tr.even td:hover {}
+
+ td.rightAlign
+ {
+ padding: 3px 5px 3px 10px;
+ }
+ table tr.odd
{
- height: 15px;
- display: block;
- overflow: hidden;
- background: url(../images/page.png) no-repeat 100% -30px;
+ border-left: 1px solid #E6E6E6;
+ background-color: #F6F6F6;
+ color: #66666E;
}
- .wrapper .bd
+ table tr.even
{
- background: url(../images/bg_l.png) repeat-y 0 0;
- position: relative;
+ border-left: 1px solid #E6E6E6;
+ background-color: #ffffff;
+ color: #66666E;
}
- .offline .wrapper .bd
+ table tr.odd td:hover, table tr.even td:hover
{
- background: url(../images/bg_l_blank.png) repeat-y 0 0;
+ /* background-color: #E6E6E6;*/ /* disabled until further notice */
}
- .wrapper .ft
+
+ span.comment
{
- padding-left: 216px;
- height: 15px;
- background: url(../images/page.png) no-repeat 0 -75px;
- overflow: hidden;
+ color: #8B0000;
+ font-style: italic;
}
- .offline .wrapper .ft
+ span.string, span.char
{
- background: url(../images/page.png) no-repeat 0 -90px;
+ color: #254117;
}
- .wrapper .ft span
+
+
+/* end basic elements */
+
+/* font style elements */
+ .heading
{
- height: 15px;
- display: block;
- background: url(../images/page.png) no-repeat 100% -60px;
- overflow: hidden;
+ font: normal bold 16px/1.0 Arial;
+ padding-bottom: 15px;
+ }
+ .subtitle
+ {
+ font-size: 13px;
+ }
+ .small-subtitle
+ {
+ font-size: 13px;
+ }
+/* end font style elements */
+
+/* global settings*/
+ .header, .footer, .wrapper
+ {
+ min-width: 600px;
+ max-width: 1500px;
+ margin: 0 30px;
}
.header, .footer
{
@@ -174,6 +211,17 @@
clear: both;
overflow: hidden;
}
+ .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after
+ {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+ }
+
+/* end global settings*/
+/* header elements */
.header
{
height: 115px;
@@ -201,7 +249,247 @@
text-indent: -999em;
background: url(../images/sprites-combined.png) no-repeat -78px -235px;
}
+ .content a:visited
+ {
+ color: #4c0033;
+ text-decoration: none;
+ }
+ .content a:visited:hover
+ {
+ color: #4c0033;
+ text-decoration: underline;
+ }
+
+ #nav-topright
+ {
+ height: 70px;
+ }
+
+ #nav-topright ul
+ {
+ list-style-type: none;
+ float: right;
+ width: 370px;
+ margin-top: 11px;
+ }
+
+ #nav-topright li
+ {
+ display: inline-block;
+ margin-right: 20px;
+ float: left;
+ }
+
+ #nav-topright li.nav-topright-last
+ {
+ margin-right: 0;
+ }
+
+ #nav-topright li a
+ {
+ background: transparent url(../images/sprites-combined.png) no-repeat;
+ height: 18px;
+ display: block;
+ overflow: hidden;
+ text-indent: -9999px;
+ }
+
+ #nav-topright li.nav-topright-home a
+ {
+ width: 65px;
+ background-position: -2px -91px;
+ }
+
+ #nav-topright li.nav-topright-home a:hover
+ {
+ background-position: -2px -117px;
+ }
+
+
+ #nav-topright li.nav-topright-dev a
+ {
+ width: 30px;
+ background-position: -76px -91px;
+ }
+
+ #nav-topright li.nav-topright-dev a:hover
+ {
+ background-position: -76px -117px;
+ }
+
+
+ #nav-topright li.nav-topright-labs a
+ {
+ width: 40px;
+ background-position: -114px -91px;
+ }
+
+ #nav-topright li.nav-topright-labs a:hover
+ {
+ background-position: -114px -117px;
+ }
+
+ #nav-topright li.nav-topright-doc a
+ {
+ width: 32px;
+ background-position: -162px -91px;
+ }
+ #nav-topright li.nav-topright-doc a:hover, #nav-topright li.nav-topright-doc-active a
+ {
+ background-position: -162px -117px;
+ }
+
+ #nav-topright li.nav-topright-blog a
+ {
+ width: 40px;
+ background-position: -203px -91px;
+ }
+
+ #nav-topright li.nav-topright-blog a:hover, #nav-topright li.nav-topright-blog-active a
+ {
+ background-position: -203px -117px;
+ }
+
+ #nav-topright li.nav-topright-shop a
+ {
+ width: 40px;
+ background-position: -252px -91px;
+ }
+
+ #nav-topright li.nav-topright-shop a:hover, #nav-topright li.nav-topright-shop-active a
+ {
+ background-position: -252px -117px;
+ }
+
+ #nav-logo
+ {
+ background: transparent url(../images/sprites-combined.png ) no-repeat 0 -225px;
+ left: -3px;
+ position: absolute;
+ width: 75px;
+ height: 75px;
+ top: 13px;
+ }
+ #nav-logo a
+ {
+ width: 75px;
+ height: 75px;
+ display: block;
+ text-indent: -9999px;
+ overflow: hidden;
+ }
+
+
+ .shortCut-topleft-inactive
+ {
+ padding-left: 3px;
+ background: transparent url( ../images/sprites-combined.png) no-repeat 0px -58px;
+ height: 20px;
+ width: 47px;
+ }
+ .shortCut-topleft-inactive span
+ {
+ font-variant: normal;
+ }
+ .shortCut-topleft-inactive span a:hover, .shortCut-topleft-active a:hover
+ {
+ text-decoration:none;
+ }
+ #shortCut
+ {
+ padding-top: 10px;
+ font-weight: bolder;
+ color: #b0adab;
+ }
+ #shortCut ul
+ {
+ list-style-type: none;
+ float: left;
+ width: 347px;
+ margin-left: 100px;
+ }
+ #shortCut li
+ {
+ display: inline-block;
+ margin-right: 25px;
+ float: left;
+ white-space: nowrap;
+ }
+ #shortCut li a
+ {
+ color: #b0adab;
+ }
+ #shortCut li a:hover
+ {
+ color: #44a51c;
+ }
+
+
+
+/* end header elements */
+/* content and sidebar elements */
+ .wrapper
+ {
+ background: url(../images/bg_r.png) repeat-y 100% 0;
+ }
+ .wrapper .hd
+ {
+ padding-left: 216px;
+ height: 15px;
+ background: url(../images/page.png) no-repeat 0 0;
+ overflow: hidden;
+ }
+
+
+
+
+ .wrapper .hd span
+ {
+ height: 15px;
+ display: block;
+ overflow: hidden;
+ background: url(../images/page.png) no-repeat 100% -30px;
+ }
+ .wrapper .bd
+ {
+ background: url(../images/bg_l.png) repeat-y 0 0;
+ position: relative;
+ }
+
+
+
+
+ .wrapper .ft
+ {
+ padding-left: 216px;
+ height: 15px;
+ background: url(../images/page.png) no-repeat 0 -75px;
+ overflow: hidden;
+ }
+
+
+
+
+ .wrapper .ft span
+ {
+ height: 15px;
+ display: block;
+ background: url(../images/page.png) no-repeat 100% -60px;
+ overflow: hidden;
+ }
+ .navTop{
+ float:right;
+ display:block;
+ padding-right:15px;
+
+
+ }
+
+
+
+/* end content and sidebar elements */
+/* sidebar elements */
.sidebar
{
float: left;
@@ -210,10 +498,10 @@
font-size: 11px;
}
- .offline .sidebar, .offline .feedback, .offline .t_button, .offline #narrowsearch, .offline #narrowmenu
- {
- display: none;
- }
+
+
+
+
.sidebar .searchlabel
{
@@ -258,7 +546,6 @@
{
font: bold 16px/1.2 Arial;
padding: 0;
-/* min-height: 32px;*/
}
.sidebar .box h2 span
{
@@ -271,10 +558,6 @@
}
.sidebar #lookup.box h2 span
{
-/* background: url(../images/sprites-combined.png) no-repeat -6px -311px;
- width: 27px;
- height: 35px;
- margin-right: 13px;*/
}
.sidebar .box#topics h2
{
@@ -282,10 +565,6 @@
}
.sidebar #topics.box h2 span
{
- /* background: url(../images/sprites-combined.png) no-repeat -94px -311px;
- width: 27px;
- height: 32px;
- margin-right: 13px;*/
}
.sidebar .box#examples h2
{
@@ -293,10 +572,6 @@
}
.sidebar #examples.box h2 span
{
- /* background: url(../images/sprites-combined.png) no-repeat -48px -311px;
- width: 30px;
- height: 31px;
- margin-right: 9px;*/
}
.sidebar .box .list
@@ -313,7 +588,6 @@
}
.sidebar .box ul
{
- /*padding:10px;*/
padding-bottom:5px;
padding-left:10px;
padding-top:5px;
@@ -340,16 +614,40 @@
color:#AAD2F0;
font-style:italic;
}
+ .sidebar .search form input.loading
+ {
+ background:url("../images/spinner.gif") no-repeat scroll right center transparent;
+ }
+.floatingResult{
+ z-index:1;
+ position:relative;
+ padding-top:0px;
+ background-color:white;
+ border:solid 1px black;
+ height:250px;
+ width:600px;
+ overflow-x:hidden;
+ overflow-y:auto;
+}
+
+ .floatingResult:hover{
+ display:block;
+ }
+ .floatingResult:hover{
+ }
+
+/* end sidebar elements */
+/* content elements */
.wrap
{
margin: 0 5px 0 208px;
overflow: visible;
}
- .offline .wrap
- {
- margin: 0 5px 0 5px;
- }
+
+
+
+
.wrap .toolbar
{
background-color: #fafafa;
@@ -435,8 +733,11 @@
color: #00732F;
}
- .offline .wrap .breadcrumb
+
+ .wrap .content
{
+ padding: 30px;
+ word-wrap:break-word;
}
.wrap .breadcrumb ul
@@ -464,30 +765,36 @@
padding-left: 0;
margin-left: 0;
}
- .wrap .content
- {
- padding: 30px;
- word-wrap:break-word;
- }
+
+
+
+ .wrap .content ol li {
+ background:none;
+ font:normal 10pt/1 Verdana;
+
+ margin-bottom:10px;
+ margin-left:12px;
+ /*list-style-type:disc;*/
+ }
+
.wrap .content li
{
- /*padding-left: 12px;*/
background: url(../images/bullet_sq.png) no-repeat 0 5px;
font: normal 400 10pt/1 Verdana;
- /* color: #44a51c;*/
margin-bottom: 10px;
padding-left:12px;
}
- .content li:hover
- {
- /* text-decoration: underline;*/
- }
- .offline .wrap .content
- {
- padding-top: 15px;
- }
+
+
+
+
+
+
+
+
+ .content li:hover {}
.wrap .content h1
{
@@ -495,17 +802,14 @@
}
.wrap .content h2
{
-
border-bottom:1px solid #DDDDDD;
font:600 16px/1.2 Arial;
margin-top:15px;
- width:100%;
-
+ width:100%;
}
.wrap .content h3
{
font: bold 14px/1.2 Arial;
- /*border-bottom:1px solid #DDDDDD;*/
font:600 16px/1.2 Arial;
margin-top:15px;
width:100%;
@@ -514,7 +818,6 @@
{
line-height: 20px;
padding: 5px;
- /* text-align:justify;*/
}
.wrap .content table p
{
@@ -531,25 +834,6 @@
color: #4c0033;
text-decoration: underline;
}
- .content a:visited
- {
- color: #4c0033;
- text-decoration: none;
- }
- .content a:visited:hover
- {
- color: #4c0033;
- text-decoration: underline;
- } .footer
- {
- min-height: 100px;
- color: #797775;
- font: normal 9px/1 Verdana;
- text-align: center;
- padding-top: 40px;
- background-color: #E6E7E8;
- margin: 0;
- }
.feedback
{
float: none;
@@ -566,267 +850,36 @@
color: #00732F;
text-decoration: underline;
}
- .header:after, .footer:after, .breadcrumb:after, .wrap .content:after, .group:after
- {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
- }
- #nav-topright
- {
- height: 70px;
- }
-
- #nav-topright ul
- {
- list-style-type: none;
- float: right;
- width: 370px;
- margin-top: 11px;
- }
-
- #nav-topright li
- {
- display: inline-block;
- margin-right: 20px;
- float: left;
- }
-
- #nav-topright li.nav-topright-last
- {
- margin-right: 0;
- }
-
- #nav-topright li a
- {
- background: transparent url(../images/sprites-combined.png) no-repeat;
- height: 18px;
- display: block;
- overflow: hidden;
- text-indent: -9999px;
- }
-
- #nav-topright li.nav-topright-home a
- {
- width: 65px;
- background-position: -2px -91px;
- }
-
- #nav-topright li.nav-topright-home a:hover
- {
- background-position: -2px -117px;
- }
-
-
- #nav-topright li.nav-topright-dev a
- {
- width: 30px;
- background-position: -76px -91px;
- }
-
- #nav-topright li.nav-topright-dev a:hover
- {
- background-position: -76px -117px;
- }
-
-
- #nav-topright li.nav-topright-labs a
- {
- width: 40px;
- background-position: -114px -91px;
- }
-
- #nav-topright li.nav-topright-labs a:hover
- {
- background-position: -114px -117px;
- }
-
- #nav-topright li.nav-topright-doc a
- {
- width: 32px;
- background-position: -162px -91px;
- }
-
- #nav-topright li.nav-topright-doc a:hover, #nav-topright li.nav-topright-doc-active a
- {
- background-position: -162px -117px;
- }
-
- #nav-topright li.nav-topright-blog a
- {
- width: 40px;
- background-position: -203px -91px;
- }
-
- #nav-topright li.nav-topright-blog a:hover, #nav-topright li.nav-topright-blog-active a
- {
- background-position: -203px -117px;
- }
-
- #nav-topright li.nav-topright-shop a
- {
- width: 40px;
- background-position: -252px -91px;
- }
-
- #nav-topright li.nav-topright-shop a:hover, #nav-topright li.nav-topright-shop-active a
- {
- background-position: -252px -117px;
- }
-
- #nav-logo
- {
- background: transparent url(../images/sprites-combined.png ) no-repeat 0 -225px;
- left: -3px;
- position: absolute;
- width: 75px;
- height: 75px;
- top: 13px;
- }
- #nav-logo a
- {
- width: 75px;
- height: 75px;
- display: block;
- text-indent: -9999px;
- overflow: hidden;
- }
-
-
- .shortCut-topleft-inactive
- {
- padding-left: 3px;
- background: transparent url( ../images/sprites-combined.png) no-repeat 0px -58px;
- height: 20px;
- width: 47px;
- }
- .shortCut-topleft-inactive span
- {
- font-variant: normal;
- }
- .shortCut-topleft-inactive span a:hover, .shortCut-topleft-active a:hover
- {
- text-decoration:none;
+ .alphaChar{
+ width:100%;
+ background-color:#F6F6F6;
+ border:1px solid #E6E6E6;
+ -moz-border-radius: 7px 7px 7px 7px;
+ font-size:12pt;
+ padding-left:10px;
+ margin-top:10px;
+ margin-bottom:10px;
}
- #shortCut
- {
- padding-top: 10px;
- font-weight: bolder;
- color: #b0adab;
- }
- #shortCut ul
- {
- list-style-type: none;
- float: left;
- width: 347px;
- margin-left: 100px;
- }
- #shortCut li
- {
- display: inline-block;
- margin-right: 25px;
- float: left;
- white-space: nowrap;
- }
- #shortCut li a
- {
- color: #b0adab;
- }
- #shortCut li a:hover
- {
- color: #44a51c;
- }
+ .flowList{
+ vertical-align:top;
+ }
- hr
- {
- background-color: #E6E6E6;
- border: 1px solid #E6E6E6;
- height: 1px;
- width: 100%;
- text-align: left;
- margin: 15px 0px 15px 0px;
- }
+ .flowList dl{
+ }
+ .flowList dd{
+ display:inline-block;
+ margin-left:10px;
+ width:250px;
+ }
+ .wrap .content .flowList p{
+ padding:0px;
+ }
.content .alignedsummary
{
margin: 15px;
}
- pre
- {
- border: 1px solid #DDDDDD;
- -moz-border-radius: 7px 7px 7px 7px;
- margin: 0 20px 10px 10px;
- padding: 20px 15px 20px 20px;
- overflow-x: auto;
- }
- table, pre
- {
- -moz-border-radius: 7px 7px 7px 7px;
- background-color: #F6F6F6;
- border: 1px solid #E6E6E6;
- border-collapse: separate;
- font-size: 11px;
- /*min-width: 395px;*/
- margin-bottom: 25px;
- /* display: inline-block;*/
- }
- thead
- {
- margin-top: 5px;
- font:600 12px/1.2 Arial;
- }
- th
- {
- padding: 5px 15px 5px 15px;
- background-color: #E1E1E1;
- /* border-bottom: 1px solid #E6E6E6;*/
- border-left: 1px solid #E6E6E6;
- /* border-right: 1px solid #E6E6E6;*/
- }
- td
- {
- padding: 3px 15px 3px 20px;
- /* border-left: 1px solid #E6E6E6;
- border-right: 1px solid #E6E6E6;*/
- }
- tr.odd td:hover, tr.even td:hover
- {
- /* border-right: 1px solid #C3C3C3;
- border-left: 1px solid #C3C3C3;*/
- }
-
- td.rightAlign
- {
- padding: 3px 5px 3px 10px;
- }
- table tr.odd
- {
- border-left: 1px solid #E6E6E6;
- background-color: #F6F6F6;
- color: #66666E;
- }
- table tr.even
- {
- border-left: 1px solid #E6E6E6;
- background-color: #ffffff;
- color: #66666E;
- }
- table tr.odd td:hover, table tr.even td:hover
- {
- background-color: #E6E6E6;
- }
-
- span.comment
- {
- color: #8B0000;
- font-style: italic;
- }
- span.string, span.char
- {
- color: #254117;
- }
+
.qmltype
{
@@ -854,7 +907,6 @@
*.qmlitem p
{
}
-
#feedbackBox
{
display: none;
@@ -936,12 +988,10 @@
}
.generic{
- /*max-width:75%;*/
}
.generic td{
padding:5px;
}
-
.generic .alphaChar{
margin-top:5px;
}
@@ -989,6 +1039,16 @@
padding-left: 0px;
}
+ .wrap .content .toc h3{
+ border-bottom:0px;
+ margin-top:0px;
+ }
+
+ .wrap .content .toc h3 a:hover{
+ color:#00732F;
+ text-decoration:none;
+ }
+
.wrap .content .toc .level2
{
@@ -1005,7 +1065,6 @@
font: normal 10px/1.2 Verdana;
background: url(../images/bullet_dn.png) no-repeat 0 5px;
}
-
.relpage
{
-moz-border-radius: 7px 7px 7px 7px;
@@ -1069,6 +1128,24 @@
.functionIndex a{
display:inline-block;
}
+
+/* end content elements */
+/* footer elements */
+
+ .footer
+ {
+ min-height: 100px;
+ color: #797775;
+ font: normal 9px/1 Verdana;
+ text-align: center;
+ padding-top: 40px;
+ background-color: #E6E7E8;
+ margin: 0;
+ }
+/* end footer elements */
+
+
+
/* start index box */
.indexbox
@@ -1080,15 +1157,15 @@
.indexboxcont
{
display: block;
- /* overflow: hidden;*/
+
}
.indexboxbar
{
background: transparent url(../images/horBar.png ) repeat-x left bottom;
margin-bottom: 25px;
- /* background-image: none;
- border-bottom: 1px solid #e2e2e2;*/
+
+
}
.indexboxcont .section
@@ -1188,87 +1265,285 @@
visibility: hidden;
}
-.sidebar .search form input.loading
-{
- background:url("../images/spinner.gif") no-repeat scroll right center transparent;
-}
- /* end of screen media */
-
-.flowList{
-vertical-align:top;
-}
-.alphaChar{
-width:100%;
-background-color:#F6F6F6;
-border:1px solid #E6E6E6;
--moz-border-radius: 7px 7px 7px 7px;
-font-size:12pt;
-padding-left:10px;
-margin-top:10px;
-margin-bottom:10px;
-}
-.flowList dl{
-}
-.flowList dd{
-display:inline-block;
-margin-left:10px;
-width:250px;
-}
-.wrap .content .flowList p{
-padding:0px;
-}
-pre.highlightedCode {
- display: block;
- overflow:hidden;
-}
-.floatingResult{
- z-index:1;
- position:relative;
- padding-top:0px;
- background-color:white;
- border:solid 1px black;
- height:250px;
- width:600px;
- overflow-x:hidden;
- overflow-y:auto;
-}
+/* start of offline spec*/
+ .offline .wrapper .hd
+ {
+ background: url(../images/page.png) no-repeat 0 -15px;
+ }
+ .offline .wrapper .bd
+ {
+ background: url(../images/bg_l_blank.png) repeat-y 0 0;
+ }
+ .offline .wrapper .ft
+ {
+ background: url(../images/page.png) no-repeat 0 -90px;
+ }
+ .offline .sidebar,
+ .offline .feedback,
+ .offline .t_button,
+ .offline #narrowsearch,
+ .offline #narrowmenu
+ {
+ display: none;
+ }
+ .offline .wrap
+ {
+ margin: 0 5px 0 5px;
+ }
+ .offline .wrap .breadcrumb
+ {
+ }
- .floatingResult:hover{
- display:block;
- }
- .floatingResult:hover{
- /*display:none;*/
- }
+ .offline .wrap .content
+ {
+ padding-top: 15px;
+ }
- .wrap .content ol li {
- background:none;
- font:400 10pt/1 Verdana;
- margin-bottom:10px;
- margin-left:12px;
+
+/* end of offline spec*/
+
+/* start of creator spec*/
+ .creator
+ {
+ margin-left:0px;
+ margin-right:0px;
+ padding-left:0px;
+ padding-right:0px;
}
- .wrap .content ol li {
+ .creator .wrap .content ol li {
list-style-type:decimal;
}
- .navTop{
- float:right;
- display:block;
- padding-right:15px;
- /*margin-top:10px;*/
+ .creator .header .icon,
+ .creator .feedback,
+ .creator .t_button,
+ .creator .feedback,
+ .creator #feedbackBox,
+ .creator #feedback,
+ .creator #blurpage,
+ .creator .indexbox .indexIcon span,
+ .creator .wrapper .hd,
+ .creator .indexbox .indexIcon,
+ .creator .header #nav-logo,
+ .creator #offlinemenu,
+ .creator #offlinesearch,
+ .creator .header #nav-topright,
+ .creator .header #shortCut ,
+ .creator .wrapper .hd,
+ .creator .wrapper .ft,
+ .creator .sidebar,
+ .creator .wrap .feedback
+ {
+ display:none;
+ }
+
+ body.creator
+ {
+ background: none;
+
+ font: normal 13px/1.2 Verdana;
+ color: #363534;
+ background-color: #FFFFFF;
+ }
+
+
+
+ .creator .header, .footer, .wrapper
+ {
+ max-width: 1500px;
+ margin: 0px;
+ }
+
+ .creator .wrapper
+ {
+ position:relative;
+ top:50px;
+ }
+ .creator .wrapper .bd
+ {
+
+ background:#FFFFFF;
}
+
+
+ .creator .header, .footer
+ {
+ display: block;
+ clear: both;
+ overflow: hidden;
+ }
+ .creator .wrap .content p
+
+ {
+ line-height: 20px;
+ padding: 5px;
+ }
+
+ .creator .header .qtref span
+ {
+ background:none;
+ }
+
+
- .wrap .content .toc h3{
- border-bottom:0px;
- margin-top:0px;
+ .creator .footer
+ {
+ border-top:1px solid #E5E5E5;
+ min-height: 100px;
+ margin:0px;
+ }
+
+ .creator .wrap
+ {
+
+ padding:0 5px 0 5px;
+ margin: 0px;
+ }
+ .creator .wrap .toolbar
+ {
+
+
+ border-bottom:1px solid #E5E5E5;
+ width:100%,
+ }
+ .creator .wrap .breadcrumb ul li a
+ {
+ /* color: #363534;*/
+ color: #00732F;
+ }
+
+ .creator .wrap .content
+ {
+ padding: 0px;
+ word-wrap:break-word;
+ }
+
+ .creator .wrap .content ol li {
+ background:none;
+ font: inherit;
+ padding-left: 0px;
+ }
+
+ .creator .wrap .content .descr ol li {
+ margin-left: 45px;
+
+ }
+ .creator .content .alignedsummary
+ {
+ margin: 5px;
+ width:100%;
+ }
+ .creator .generic{
+ max-width:75%;
+ }
+ .creator .generic td{
+ padding:0;
}
+ .creator .indexboxbar
+ {
+ border-bottom:1px solid #E5E5E5;
+ margin-bottom: 25px;
+ background: none;
+ }
- .wrap .content .toc h3 a:hover{
- color:#00732F;
- text-decoration:none;
+
+
+ .creator .header
+ {
+ width: 100%;
+ margin: 0;
+ height: auto;
+ background-color: #ffffff;
+ padding: 10px 0 5px 0;
+ overflow: visible;
+ border-bottom: solid #E5E5E5 1px;
+ z-index:1;
+
+
+
+
+
+
+
+
+ position:fixed;
+ }
+
+
+ .creator .header .content
+ {
+ }
+ .creator .header .qtref
+ {
+ color: #00732F;
+ position: static;
+ float: left;
+ margin-left: 5px;
+ font: bold 18px/1 Arial;
+ }
+
+ .creator .header .qtref:visited
+ {
+ color: #00732F;
+ }
+ .creator .header .qtref:hover
+ {
+ color: #00732F;
+ text-decoration:none;
+ }
+ .creator .header .qtref span
+ {
+ background-image: none;
+ text-indent: 0;
+ text-decoration:none;
+ }
+
+
+
+
+
+
+ .creator .wrap .toolbar
+ {
+ display:block;
+ padding-top:0px;
+ }
+
+
+
+ .creator .wrap .breadcrumb ul li {
+ font-weight: normal;
+ }
+
+ .creator .wrap .breadcrumb ul li a {
+ /*color: #44a51c;*/
+ }
+
+ .creator .wrap .breadcrumb ul li.last a {
+ /*color: #363534;*/
+ }
+
+ .creator #narrowmenu ul
+ {
+ border-bottom:solid 1px #E5E5E5;
+ border-left:solid 1px #E5E5E5;
+ border-right:solid 1px #E5E5E5;
}
+
+ .creator #narrowmenu li ul {
+ margin-top:-15px;
+ }
+
+
+ .creator .toc {
+ margin:10px 20px 10px 10px;
+ }
+/* end of creator spec*/
+}
+
/* end of screen media */
/* start of print media */
diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml
index 5890c91..1ef97fa 100644
--- a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml
+++ b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml
@@ -37,29 +37,13 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-
import Qt 4.7
-import "ImageProviderCore"
-//![0]
-ListView {
- width: 100; height: 100
- anchors.fill: parent
-
- model: myModel
+import "ImageProviderCore" // import the plugin that registers the color image provider
- delegate: Component {
- Item {
- width: 100
- height: 50
- Text {
- text: "Loading..."
- anchors.centerIn: parent
- }
- Image {
- source: modelData
- sourceSize: "50x25"
- }
- }
- }
+//![0]
+Column {
+ Image { source: "image://colors/yellow" }
+ Image { source: "image://colors/red" }
}
//![0]
+
diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider.cpp b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp
index 0281b4a..18d027e 100644
--- a/examples/declarative/cppextensions/imageprovider/imageprovider.cpp
+++ b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp
@@ -42,7 +42,6 @@
#include <qdeclarativeextensionplugin.h>
#include <qdeclarativeengine.h>
-#include <qdeclarativecontext.h>
#include <qdeclarative.h>
#include <qdeclarativeitem.h>
#include <qdeclarativeimageprovider.h>
@@ -50,62 +49,57 @@
#include <QImage>
#include <QPainter>
-/*
- This example illustrates using a QDeclarativeImageProvider to serve
- images asynchronously.
-*/
-
//![0]
class ColorImageProvider : public QDeclarativeImageProvider
{
public:
- // This is run in a low priority thread.
- QImage request(const QString &id, QSize *size, const QSize &req_size)
+ ColorImageProvider()
+ : QDeclarativeImageProvider(QDeclarativeImageProvider::Pixmap)
{
- if (size) *size = QSize(100,50);
- QImage image(
- req_size.width() > 0 ? req_size.width() : 100,
- req_size.height() > 0 ? req_size.height() : 50,
- QImage::Format_RGB32);
- image.fill(QColor(id).rgba());
- QPainter p(&image);
- QFont f = p.font();
- f.setPixelSize(30);
- p.setFont(f);
- p.setPen(Qt::black);
- if (req_size.isValid())
- p.scale(req_size.width()/100.0, req_size.height()/50.0);
- p.drawText(QRectF(0,0,100,50),Qt::AlignCenter,id);
- return image;
+ }
+
+ QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize)
+ {
+ int width = 100;
+ int height = 50;
+
+ if (size)
+ *size = QSize(width, height);
+ QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width,
+ requestedSize.height() > 0 ? requestedSize.height() : height);
+ pixmap.fill(QColor(id).rgba());
+//![0]
+
+ // write the color name
+ QPainter painter(&pixmap);
+ QFont f = painter.font();
+ f.setPixelSize(20);
+ painter.setFont(f);
+ painter.setPen(Qt::black);
+ if (requestedSize.isValid())
+ painter.scale(requestedSize.width() / width, requestedSize.height() / height);
+ painter.drawText(QRectF(0, 0, width, height), Qt::AlignCenter, id);
+
+//![1]
+ return pixmap;
}
};
+//![1]
class ImageProviderExtensionPlugin : public QDeclarativeExtensionPlugin
{
Q_OBJECT
public:
- void registerTypes(const char *uri) {
+ void registerTypes(const char *uri)
+ {
Q_UNUSED(uri);
-
}
- void initializeEngine(QDeclarativeEngine *engine, const char *uri) {
+ void initializeEngine(QDeclarativeEngine *engine, const char *uri)
+ {
Q_UNUSED(uri);
-
engine->addImageProvider("colors", new ColorImageProvider);
-
- QStringList dataList;
- dataList.append("image://colors/red");
- dataList.append("image://colors/green");
- dataList.append("image://colors/blue");
- dataList.append("image://colors/brown");
- dataList.append("image://colors/orange");
- dataList.append("image://colors/purple");
- dataList.append("image://colors/yellow");
-
- QDeclarativeContext *ctxt = engine->rootContext();
- ctxt->setContextProperty("myModel", QVariant::fromValue(dataList));
}
};
@@ -113,5 +107,4 @@ public:
#include "imageprovider.moc"
Q_EXPORT_PLUGIN(ImageProviderExtensionPlugin);
-//![0]
diff --git a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml
index 37128b5..6b2676e 100644
--- a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml
+++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml
@@ -57,10 +57,10 @@ Rectangle {
smooth: true
transform: Rotation {
id: hourRotation
- origin.x: 7.5; origin.y: 73; angle: 0
- SpringFollow on angle {
- spring: 2; damping: 0.2; modulus: 360
- to: (clock.hours * 30) + (clock.minutes * 0.5)
+ origin.x: 7.5; origin.y: 73;
+ angle: (clock.hours * 30) + (clock.minutes * 0.5)
+ Behavior on angle {
+ SpringAnimation{ spring: 2; damping: 0.2; modulus: 360 }
}
}
}
@@ -71,10 +71,10 @@ Rectangle {
smooth: true
transform: Rotation {
id: minuteRotation
- origin.x: 6.5; origin.y: 83; angle: 0
- SpringFollow on angle {
- spring: 2; damping: 0.2; modulus: 360
- to: clock.minutes * 6
+ origin.x: 6.5; origin.y: 83;
+ angle: clock.minutes * 6
+ Behavior on angle {
+ SpringAnimation{ spring: 2; damping: 0.2; modulus: 360 }
}
}
}
diff --git a/examples/declarative/modelviews/listview/highlight.qml b/examples/declarative/modelviews/listview/highlight.qml
index 4c14f2a..2d68da6 100644
--- a/examples/declarative/modelviews/listview/highlight.qml
+++ b/examples/declarative/modelviews/listview/highlight.qml
@@ -39,7 +39,7 @@
****************************************************************************/
// This example shows how to create your own highlight delegate for a ListView
-// that uses a SpringFollow animation to provide custom movement when the
+// that uses a SpringAnimation to provide custom movement when the
// highlight bar is moved between items.
import Qt 4.7
@@ -78,7 +78,8 @@ Rectangle {
Rectangle {
width: 200; height: 50
color: "#FFFF88"
- SpringFollow on y { to: listView.currentItem.y; spring: 3; damping: 0.1 }
+ y: listView.currentItem.y;
+ Behavior on y { SpringAnimation { spring: 2; damping: 0.1 } }
}
}
diff --git a/examples/declarative/touchinteraction/mousearea/mousearea-example.qml b/examples/declarative/touchinteraction/mousearea/mousearea-example.qml
index 64f72a9..85ea2dc 100644
--- a/examples/declarative/touchinteraction/mousearea/mousearea-example.qml
+++ b/examples/declarative/touchinteraction/mousearea/mousearea-example.qml
@@ -44,59 +44,69 @@ Rectangle {
id: box
width: 350; height: 250
- function showInfo(text) {
- statusText.text = text
- }
-
Rectangle {
+ id: redSquare
width: 80; height: 80
+ anchors.top: parent.top; anchors.left: parent.left; anchors.margins: 10
color: "red"
Text { text: "Click"; font.pixelSize: 16; anchors.centerIn: parent }
MouseArea {
- anchors.fill: parent
+ anchors.fill: parent
hoverEnabled: true
acceptedButtons: Qt.LeftButton | Qt.RightButton
- onPressed: box.showInfo('Pressed (x=' + mouse.x + ' y=' + mouse.y + ' button='
- + (mouse.button == Qt.RightButton ? 'right' : 'left')
- + ' Shift=' + (mouse.modifiers & Qt.ShiftModifier ? 'true' : 'false') + ')')
- onReleased: box.showInfo('Released (x=' + mouse.x + ' y=' + mouse.y
- + ' isClick=' + mouse.isClick + ' wasHeld=' + mouse.wasHeld + ')')
- onClicked: box.showInfo('Clicked (x=' + mouse.x + ' y=' + mouse.y + ' wasHeld=' + mouse.wasHeld + ')')
- onDoubleClicked: box.showInfo('Double clicked (x=' + mouse.x + ' y=' + mouse.y + ')')
- onPressAndHold: box.showInfo('Press and hold')
- onEntered: box.showInfo('Entered (pressed=' + pressed + ')')
- onExited: box.showInfo('Exited (pressed=' + pressed + ')')
+ onEntered: info.text = 'Entered'
+ onExited: info.text = 'Exited (pressed=' + pressed + ')'
+
+ onPressed: {
+ info.text = 'Pressed (button=' + (mouse.button == Qt.RightButton ? 'right' : 'left')
+ + ' shift=' + (mouse.modifiers & Qt.ShiftModifier ? 'true' : 'false') + ')'
+ var posInBox = redSquare.mapToItem(box, mouse.x, mouse.y)
+ posInfo.text = + mouse.x + ',' + mouse.y + ' in square'
+ + ' (' + posInBox.x + ',' + posInBox.y + ' in window)'
+ }
+
+ onReleased: {
+ info.text = 'Released (isClick=' + mouse.isClick + ' wasHeld=' + mouse.wasHeld + ')'
+ posInfo.text = ''
+ }
+
+ onPressAndHold: info.text = 'Press and hold'
+ onClicked: info.text = 'Clicked (wasHeld=' + mouse.wasHeld + ')'
+ onDoubleClicked: info.text = 'Double clicked'
}
}
Rectangle {
- width: 80; height: 80; anchors.right: parent.right
+ id: blueSquare
+ width: 80; height: 80
+ x: box.width - width - 10; y: 10 // making this item draggable, so don't use anchors
color: "blue"
Text { text: "Drag"; font.pixelSize: 16; color: "white"; anchors.centerIn: parent }
MouseArea {
anchors.fill: parent
- drag.target: parent
- drag.axis: Drag.XAxis
+ drag.target: blueSquare
+ drag.axis: Drag.XandYAxis
drag.minimumX: 0
- drag.maximumX: 150
-
- onPressed: box.showInfo('Pressed')
- onReleased: box.showInfo('Released (isClick=' + mouse.isClick + ' wasHeld=' + mouse.wasHeld + ')')
- onClicked: box.showInfo('Clicked' + ' (wasHeld=' + mouse.wasHeld + ')')
- onDoubleClicked: box.showInfo('Double clicked')
- onPressAndHold: box.showInfo('Press and hold')
+ drag.maximumX: box.width - parent.width
+ drag.minimumY: 0
+ drag.maximumY: box.height - parent.width
}
}
Text {
- id: statusText
- anchors.bottom: parent.bottom; anchors.horizontalCenter: parent.horizontalCenter; anchors.margins: 30
+ id: info
+ anchors.bottom: posInfo.top; anchors.horizontalCenter: parent.horizontalCenter; anchors.margins: 30
onTextChanged: console.log(text)
}
+
+ Text {
+ id: posInfo
+ anchors.bottom: parent.bottom; anchors.horizontalCenter: parent.horizontalCenter; anchors.margins: 30
+ }
}
diff --git a/examples/declarative/toys/clocks/content/Clock.qml b/examples/declarative/toys/clocks/content/Clock.qml
index 136573b..24a07ec 100644
--- a/examples/declarative/toys/clocks/content/Clock.qml
+++ b/examples/declarative/toys/clocks/content/Clock.qml
@@ -45,10 +45,10 @@ Item {
width: 200; height: 230
property alias city: cityLabel.text
- property variant hours
- property variant minutes
- property variant seconds
- property variant shift : 0
+ property int hours
+ property int minutes
+ property int seconds
+ property real shift
property bool night: false
function timeChanged() {
@@ -60,23 +60,24 @@ Item {
}
Timer {
- interval: 100; running: true; repeat: true; triggeredOnStart: true
+ interval: 100; running: true; repeat: true;
onTriggered: clock.timeChanged()
}
Image { id: background; source: "clock.png"; visible: clock.night == false }
Image { source: "clock-night.png"; visible: clock.night == true }
+
Image {
x: 92.5; y: 27
source: "hour.png"
smooth: true
transform: Rotation {
id: hourRotation
- origin.x: 7.5; origin.y: 73; angle: 0
- SpringFollow on angle {
- spring: 2; damping: 0.2; modulus: 360
- to: (clock.hours * 30) + (clock.minutes * 0.5)
+ origin.x: 7.5; origin.y: 73;
+ angle: (clock.hours * 30) + (clock.minutes * 0.5)
+ Behavior on angle {
+ NumberAnimation{}
}
}
}
@@ -87,10 +88,10 @@ Item {
smooth: true
transform: Rotation {
id: minuteRotation
- origin.x: 6.5; origin.y: 83; angle: 0
- SpringFollow on angle {
- spring: 2; damping: 0.2; modulus: 360
- to: clock.minutes * 6
+ origin.x: 6.5; origin.y: 83;
+ angle: clock.minutes * 6
+ Behavior on angle {
+ NumberAnimation{}
}
}
}
@@ -101,10 +102,10 @@ Item {
smooth: true
transform: Rotation {
id: secondRotation
- origin.x: 2.5; origin.y: 80; angle: 0
- SpringFollow on angle {
- spring: 5; damping: 0.25; modulus: 360
- to: clock.seconds * 6
+ origin.x: 2.5; origin.y: 80;
+ angle: clock.seconds * 6
+ Behavior on angle {
+ NumberAnimation{}
}
}
}
diff --git a/examples/declarative/toys/corkboards/Day.qml b/examples/declarative/toys/corkboards/Day.qml
index cc297b1..9d1f3ae 100644
--- a/examples/declarative/toys/corkboards/Day.qml
+++ b/examples/declarative/toys/corkboards/Day.qml
@@ -70,9 +70,9 @@ Component {
x: randomX; y: randomY
- SpringFollow on rotation {
- to: -flickable.horizontalVelocity / 100
- spring: 2.0; damping: 0.15
+ rotation: -flickable.horizontalVelocity / 100;
+ Behavior on rotation {
+ SpringAnimation { spring: 2.0; damping: 0.15 }
}
Item {
diff --git a/examples/declarative/toys/tvtennis/tvtennis.qml b/examples/declarative/toys/tvtennis/tvtennis.qml
index 726c649..2e144ed 100644
--- a/examples/declarative/toys/tvtennis/tvtennis.qml
+++ b/examples/declarative/toys/tvtennis/tvtennis.qml
@@ -50,7 +50,6 @@ Rectangle {
id: ball
// Add a property for the target y coordinate
- property int targetY : page.height - 10
property variant direction : "right"
x: 20; width: 20; height: 20; z: 1
@@ -65,15 +64,18 @@ Rectangle {
PropertyAction { target: ball; property: "direction"; value: "right" }
}
- // Make y follow the target y coordinate, with a velocity of 200
- SpringFollow on y { to: ball.targetY; velocity: 200 }
+ // Make y move with a velocity of 200
+ Behavior on y { SpringAnimation{ velocity: 200; }
+ }
+
+ Component.onCompleted: y = page.height-10; // start the ball motion
// Detect the ball hitting the top or bottom of the view and bounce it
onYChanged: {
if (y <= 0) {
- targetY = page.height - 20;
+ y = page.height - 20;
} else if (y >= page.height - 20) {
- targetY = 0;
+ y = 0;
}
}
}
@@ -84,19 +86,15 @@ Rectangle {
id: leftBat
color: "Lime"
x: 2; width: 20; height: 90
- SpringFollow on y {
- to: ball.y - 45; velocity: 300
- enabled: ball.direction == 'left'
- }
+ y: ball.direction == 'left' ? ball.y - 45 : page.height/2 -45;
+ Behavior on y { SpringAnimation{ spring: 1; damping: .1; } }
}
Rectangle {
id: rightBat
color: "Lime"
x: page.width - 22; width: 20; height: 90
- SpringFollow on y {
- to: ball.y-45; velocity: 300
- enabled: ball.direction == 'right'
- }
+ y: ball.direction == 'right' ? ball.y - 45 : page.height/2 -45;
+ Behavior on y { SpringAnimation{ spring: 1; damping: .1; } }
}
// The rest, to make it look realistic, if neither ever scores...
diff --git a/examples/declarative/tutorials/extending/chapter1-basics/app.qml b/examples/declarative/tutorials/extending/chapter1-basics/app.qml
index 9af155c..ada088d 100644
--- a/examples/declarative/tutorials/extending/chapter1-basics/app.qml
+++ b/examples/declarative/tutorials/extending/chapter1-basics/app.qml
@@ -38,21 +38,23 @@
**
****************************************************************************/
//![0]
-import Music 1.0
+import Charts 1.0
import Qt 4.7
-Rectangle {
+Item {
width: 300; height: 200
- Musician {
- id: aMusician
- name: "Reddy the Rocker"
- instrument: "Guitar"
+ PieChart {
+ id: aPieChart
+ anchors.centerIn: parent
+ width: 100; height: 100
+ name: "A simple pie chart"
+ color: "red"
}
Text {
- anchors.fill: parent
- text: aMusician.name + " plays the " + aMusician.instrument
+ anchors { bottom: parent.bottom; horizontalCenter: parent.horizontalCenter; bottomMargin: 20 }
+ text: aPieChart.name
}
}
//![0]
diff --git a/examples/declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro b/examples/declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro
index bd05ebe..0f04167 100644
--- a/examples/declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro
+++ b/examples/declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro
@@ -1,5 +1,5 @@
QT += declarative
-HEADERS += musician.h
-SOURCES += musician.cpp \
+HEADERS += piechart.h
+SOURCES += piechart.cpp \
main.cpp
diff --git a/examples/declarative/tutorials/extending/chapter1-basics/main.cpp b/examples/declarative/tutorials/extending/chapter1-basics/main.cpp
index 8ef6965..a5dbab3 100644
--- a/examples/declarative/tutorials/extending/chapter1-basics/main.cpp
+++ b/examples/declarative/tutorials/extending/chapter1-basics/main.cpp
@@ -38,7 +38,7 @@
**
****************************************************************************/
//![0]
-#include "musician.h"
+#include "piechart.h"
#include <qdeclarative.h>
#include <QDeclarativeView>
#include <QApplication>
@@ -47,7 +47,7 @@ int main(int argc, char *argv[])
{
QApplication app(argc, argv);
- qmlRegisterType<Musician>("Music", 1, 0, "Musician");
+ qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");
QDeclarativeView view;
view.setSource(QUrl::fromLocalFile("app.qml"));
diff --git a/examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp b/examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp
new file mode 100644
index 0000000..3b9ef71
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp
@@ -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 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$
+**
+****************************************************************************/
+#include "piechart.h"
+#include <QPainter>
+
+//![0]
+PieChart::PieChart(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
+{
+ // need to disable this flag to draw inside a QDeclarativeItem
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
+}
+//![0]
+
+QString PieChart::name() const
+{
+ return m_name;
+}
+
+void PieChart::setName(const QString &name)
+{
+ m_name = name;
+}
+
+QColor PieChart::color() const
+{
+ return m_color;
+}
+
+void PieChart::setColor(const QColor &color)
+{
+ m_color = color;
+}
+
+//![1]
+void PieChart::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
+{
+ QPen pen(m_color, 2);
+ painter->setPen(pen);
+ painter->setRenderHints(QPainter::Antialiasing, true);
+ painter->drawPie(boundingRect(), 90 * 16, 290 * 16);
+}
+//![1]
+
diff --git a/examples/declarative/tutorials/extending/chapter1-basics/musician.h b/examples/declarative/tutorials/extending/chapter1-basics/piechart.h
index f9a0537..aae7b26 100644
--- a/examples/declarative/tutorials/extending/chapter1-basics/musician.h
+++ b/examples/declarative/tutorials/extending/chapter1-basics/piechart.h
@@ -37,30 +37,33 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef MUSICIAN_H
-#define MUSICIAN_H
+#ifndef PIECHART_H
+#define PIECHART_H
//![0]
-#include <QObject>
+#include <QDeclarativeItem>
+#include <QColor>
-class Musician : public QObject
+class PieChart : public QDeclarativeItem
{
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)
- Q_PROPERTY(QString instrument READ instrument WRITE setInstrument)
+ Q_PROPERTY(QColor color READ color WRITE setColor)
public:
- Musician(QObject *parent = 0);
+ PieChart(QDeclarativeItem *parent = 0);
QString name() const;
void setName(const QString &name);
- QString instrument() const;
- void setInstrument(const QString &instrument);
+ QColor color() const;
+ void setColor(const QColor &color);
+
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
private:
QString m_name;
- QString m_instrument;
+ QColor m_color;
};
//![0]
diff --git a/examples/declarative/tutorials/extending/chapter2-methods/app.qml b/examples/declarative/tutorials/extending/chapter2-methods/app.qml
index 02d33c2..0b55f7c 100644
--- a/examples/declarative/tutorials/extending/chapter2-methods/app.qml
+++ b/examples/declarative/tutorials/extending/chapter2-methods/app.qml
@@ -38,23 +38,29 @@
**
****************************************************************************/
//![0]
-import Music 1.0
+import Charts 1.0
import Qt 4.7
-Rectangle {
- width: 200; height: 200
+Item {
+ width: 300; height: 200
- Musician {
- id: aMusician
- name: "Reddy the Rocker"
- instrument: "Guitar"
+ PieChart {
+ id: aPieChart
+ anchors.centerIn: parent
+ width: 100; height: 100
+ color: "red"
- onPerformanceEnded: console.log("The performance has now ended")
+ onChartCleared: console.log("The chart has been cleared")
}
MouseArea {
anchors.fill: parent
- onClicked: aMusician.perform()
+ onClicked: aPieChart.clearChart()
+ }
+
+ Text {
+ anchors { bottom: parent.bottom; horizontalCenter: parent.horizontalCenter; bottomMargin: 20 }
+ text: "Click anywhere to clear the chart"
}
}
//![0]
diff --git a/examples/declarative/tutorials/extending/chapter2-methods/chapter2-methods.pro b/examples/declarative/tutorials/extending/chapter2-methods/chapter2-methods.pro
index bd05ebe..0f04167 100644
--- a/examples/declarative/tutorials/extending/chapter2-methods/chapter2-methods.pro
+++ b/examples/declarative/tutorials/extending/chapter2-methods/chapter2-methods.pro
@@ -1,5 +1,5 @@
QT += declarative
-HEADERS += musician.h
-SOURCES += musician.cpp \
+HEADERS += piechart.h
+SOURCES += piechart.cpp \
main.cpp
diff --git a/examples/declarative/tutorials/extending/chapter2-methods/main.cpp b/examples/declarative/tutorials/extending/chapter2-methods/main.cpp
index 8ef6965..a5dbab3 100644
--- a/examples/declarative/tutorials/extending/chapter2-methods/main.cpp
+++ b/examples/declarative/tutorials/extending/chapter2-methods/main.cpp
@@ -38,7 +38,7 @@
**
****************************************************************************/
//![0]
-#include "musician.h"
+#include "piechart.h"
#include <qdeclarative.h>
#include <QDeclarativeView>
#include <QApplication>
@@ -47,7 +47,7 @@ int main(int argc, char *argv[])
{
QApplication app(argc, argv);
- qmlRegisterType<Musician>("Music", 1, 0, "Musician");
+ qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");
QDeclarativeView view;
view.setSource(QUrl::fromLocalFile("app.qml"));
diff --git a/examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp b/examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp
new file mode 100644
index 0000000..11ff7c8
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp
@@ -0,0 +1,87 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#include "piechart.h"
+#include <QPainter>
+#include <QDebug>
+
+PieChart::PieChart(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
+{
+ // need to disable this flag to draw inside a QDeclarativeItem
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
+}
+
+QString PieChart::name() const
+{
+ return m_name;
+}
+
+void PieChart::setName(const QString &name)
+{
+ m_name = name;
+}
+
+QColor PieChart::color() const
+{
+ return m_color;
+}
+
+void PieChart::setColor(const QColor &color)
+{
+ m_color = color;
+}
+
+void PieChart::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
+{
+ QPen pen(m_color, 2);
+ painter->setPen(pen);
+ painter->setRenderHints(QPainter::Antialiasing, true);
+ painter->drawPie(boundingRect(), 90 * 16, 290 * 16);
+}
+
+//![0]
+void PieChart::clearChart()
+{
+ setColor(QColor(Qt::transparent));
+ update();
+
+ emit chartCleared();
+}
+//![0]
diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/musician.h b/examples/declarative/tutorials/extending/chapter2-methods/piechart.h
index 0b0addb..246fd9f 100644
--- a/examples/declarative/tutorials/extending/chapter3-bindings/musician.h
+++ b/examples/declarative/tutorials/extending/chapter2-methods/piechart.h
@@ -37,42 +37,44 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef MUSICIAN_H
-#define MUSICIAN_H
+#ifndef PIECHART_H
+#define PIECHART_H
-#include <QObject>
+#include <QDeclarativeItem>
+#include <QColor>
//![0]
-class Musician : public QObject
+class PieChart : public QDeclarativeItem
{
//![0]
Q_OBJECT
Q_PROPERTY(QString name READ name WRITE setName)
- Q_PROPERTY(QString instrument READ instrument WRITE setInstrument)
+ Q_PROPERTY(QColor color READ color WRITE setColor)
//![1]
- Q_PROPERTY(QString instrument READ instrument WRITE setInstrument NOTIFY instrumentChanged)
public:
//![1]
- Musician(QObject *parent = 0);
+ PieChart(QDeclarativeItem *parent = 0);
QString name() const;
void setName(const QString &name);
- QString instrument() const;
- void setInstrument(const QString &instrument);
+ QColor color() const;
+ void setColor(const QColor &color);
- Q_INVOKABLE void perform();
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
//![2]
+ Q_INVOKABLE void clearChart();
+
signals:
- void instrumentChanged();
+ void chartCleared();
//![2]
private:
QString m_name;
- QString m_instrument;
+ QColor m_color;
//![3]
};
diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/app.qml b/examples/declarative/tutorials/extending/chapter3-bindings/app.qml
index 8bf6ecf..2ff6ae1 100644
--- a/examples/declarative/tutorials/extending/chapter3-bindings/app.qml
+++ b/examples/declarative/tutorials/extending/chapter3-bindings/app.qml
@@ -38,35 +38,37 @@
**
****************************************************************************/
//![0]
-import Music 1.0
+import Charts 1.0
import Qt 4.7
-Rectangle {
- width: 200; height: 200
+Item {
+ width: 300; height: 200
- Musician {
- id: reddy
- name: "Reddy the Rocker"
- instrument: "Guitar"
- }
+ Row {
+ anchors.centerIn: parent
+ spacing: 20
+
+ PieChart {
+ id: chartA
+ width: 100; height: 100
+ color: "red"
+ }
- Musician {
- id: craig
- name: "Craig the Copycat"
- instrument: reddy.instrument
+ PieChart {
+ id: chartB
+ width: 100; height: 100
+ color: chartA.color
+ }
}
MouseArea {
anchors.fill: parent
- onClicked: {
- reddy.perform()
- craig.perform()
-
- reddy.instrument = "Drums"
+ onClicked: { chartA.color = "blue" }
+ }
- reddy.perform()
- craig.perform()
- }
+ Text {
+ anchors { bottom: parent.bottom; horizontalCenter: parent.horizontalCenter; bottomMargin: 20 }
+ text: "Click anywhere to change the chart color"
}
}
//![0]
diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings.pro b/examples/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings.pro
index bd05ebe..0f04167 100644
--- a/examples/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings.pro
+++ b/examples/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings.pro
@@ -1,5 +1,5 @@
QT += declarative
-HEADERS += musician.h
-SOURCES += musician.cpp \
+HEADERS += piechart.h
+SOURCES += piechart.cpp \
main.cpp
diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp b/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp
index 8ef6965..a5dbab3 100644
--- a/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp
+++ b/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp
@@ -38,7 +38,7 @@
**
****************************************************************************/
//![0]
-#include "musician.h"
+#include "piechart.h"
#include <qdeclarative.h>
#include <QDeclarativeView>
#include <QApplication>
@@ -47,7 +47,7 @@ int main(int argc, char *argv[])
{
QApplication app(argc, argv);
- qmlRegisterType<Musician>("Music", 1, 0, "Musician");
+ qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");
QDeclarativeView view;
view.setSource(QUrl::fromLocalFile("app.qml"));
diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp
new file mode 100644
index 0000000..85a9762
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#include "piechart.h"
+#include <QPainter>
+#include <QDebug>
+
+PieChart::PieChart(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
+{
+ // need to disable this flag to draw inside a QDeclarativeItem
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
+}
+
+QString PieChart::name() const
+{
+ return m_name;
+}
+
+void PieChart::setName(const QString &name)
+{
+ m_name = name;
+}
+
+QColor PieChart::color() const
+{
+ return m_color;
+}
+
+//![0]
+void PieChart::setColor(const QColor &color)
+{
+ if (color != m_color) {
+ m_color = color;
+ update(); // repaint with the new color
+ emit colorChanged();
+ }
+}
+//![0]
+
+void PieChart::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
+{
+ QPen pen(m_color, 2);
+ painter->setPen(pen);
+ painter->setRenderHints(QPainter::Antialiasing, true);
+ painter->drawPie(boundingRect(), 90 * 16, 290 * 16);
+}
+
+void PieChart::clearChart()
+{
+ setColor(QColor(Qt::transparent));
+ update();
+}
diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/piechart.h b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.h
new file mode 100644
index 0000000..164cebb
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.h
@@ -0,0 +1,84 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#ifndef PIECHART_H
+#define PIECHART_H
+
+#include <QDeclarativeItem>
+#include <QColor>
+
+//![0]
+class PieChart : public QDeclarativeItem
+{
+//![0]
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name WRITE setName)
+
+//![1]
+ Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged)
+public:
+//![1]
+
+ PieChart(QDeclarativeItem *parent = 0);
+
+ QString name() const;
+ void setName(const QString &name);
+
+ QColor color() const;
+ void setColor(const QColor &color);
+
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+
+ Q_INVOKABLE void clearChart();
+
+//![2]
+signals:
+ void colorChanged();
+//![2]
+
+private:
+ QString m_name;
+ QColor m_color;
+
+//![3]
+};
+//![3]
+
+#endif
+
diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml
index d76f801..fcd3806 100644
--- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml
+++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml
@@ -38,17 +38,23 @@
**
****************************************************************************/
//![0]
-import Music 1.0
+import Charts 1.0
import Qt 4.7
Item {
+ width: 300; height: 200
- Musician {
- id: reddy
- name: "Reddy the Rocker"
- instrument: Instrument { type: "Guitar" }
+ PieChart {
+ id: chart
+ anchors.centerIn: parent
+ width: 100; height: 100
+
+ pieSlice: PieSlice {
+ anchors.fill: parent
+ color: "red"
+ }
}
- Component.onCompleted: console.log("Reddy plays the " + reddy.instrument.type)
+ Component.onCompleted: console.log("The pie is colored " + chart.pieSlice.color)
}
//![0]
diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pro b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pro
index aea07a0..c3f5402 100644
--- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pro
+++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pro
@@ -1,7 +1,7 @@
QT += declarative
-HEADERS += musician.h \
- instrument.h
-SOURCES += musician.cpp \
- instrument.cpp \
+HEADERS += piechart.h \
+ pieslice.h
+SOURCES += piechart.cpp \
+ pieslice.cpp \
main.cpp
diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp
index d94cb03..fd518a2 100644
--- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp
+++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp
@@ -37,8 +37,8 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include "musician.h"
-#include "instrument.h"
+#include "piechart.h"
+#include "pieslice.h"
#include <qdeclarative.h>
#include <QDeclarativeView>
@@ -50,10 +50,10 @@ int main(int argc, char *argv[])
//![0]
QApplication app(argc, argv);
- qmlRegisterType<Musician>("Music", 1, 0, "Musician");
+ qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");
//![1]
- qmlRegisterType<Instrument>("Music", 1, 0, "Instrument");
+ qmlRegisterType<PieSlice>("Charts", 1, 0, "PieSlice");
//![1]
QDeclarativeView view;
diff --git a/examples/declarative/tutorials/extending/chapter2-methods/musician.cpp b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp
index 0ce0022..7098854 100644
--- a/examples/declarative/tutorials/extending/chapter2-methods/musician.cpp
+++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp
@@ -37,38 +37,36 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include "musician.h"
-#include <QDebug>
+#include "piechart.h"
+#include "pieslice.h"
-Musician::Musician(QObject *parent)
- : QObject(parent)
+PieChart::PieChart(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
{
+ // this doesn't need to disable QGraphicsItem::ItemHasNoContents
+ // anymore since the drawing is now done in PieSlice
}
-QString Musician::name() const
+QString PieChart::name() const
{
return m_name;
}
-void Musician::setName(const QString &name)
+void PieChart::setName(const QString &name)
{
m_name = name;
}
-QString Musician::instrument() const
+PieSlice *PieChart::pieSlice() const
{
- return m_instrument;
-}
-
-void Musician::setInstrument(const QString &instrument)
-{
- m_instrument = instrument;
+ return m_pieSlice;
}
//![0]
-void Musician::perform()
+void PieChart::setPieSlice(PieSlice *pieSlice)
{
- qWarning() << m_name << "is playing the" << m_instrument;
- emit performanceEnded();
+ m_pieSlice = pieSlice;
+ pieSlice->setParentItem(this);
}
//![0]
+
diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/musician.h b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h
index 8f67f61..448ca7b 100644
--- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/musician.h
+++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h
@@ -37,18 +37,18 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef MUSICIAN_H
-#define MUSICIAN_H
+#ifndef PIECHART_H
+#define PIECHART_H
-#include <QObject>
+#include <QDeclarativeItem>
-class Instrument;
+class PieSlice;
//![0]
-class Musician : public QObject
+class PieChart : public QDeclarativeItem
{
Q_OBJECT
- Q_PROPERTY(Instrument* instrument READ instrument WRITE setInstrument)
+ Q_PROPERTY(PieSlice* pieSlice READ pieSlice WRITE setPieSlice)
//![0]
Q_PROPERTY(QString name READ name WRITE setName)
@@ -56,19 +56,19 @@ class Musician : public QObject
public:
//![1]
- Musician(QObject *parent = 0);
+ PieChart(QDeclarativeItem *parent = 0);
QString name() const;
void setName(const QString &name);
//![2]
- Instrument *instrument() const;
- void setInstrument(Instrument *instrument);
+ PieSlice *pieSlice() const;
+ void setPieSlice(PieSlice *pieSlice);
//![2]
private:
QString m_name;
- Instrument *m_instrument;
+ PieSlice *m_pieSlice;
//![3]
};
diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/musician.cpp b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp
index e62efb1..7a420fd 100644
--- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/musician.cpp
+++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp
@@ -37,31 +37,32 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include "musician.h"
-#include "instrument.h"
+#include "pieslice.h"
-Musician::Musician(QObject *parent)
- : QObject(parent)
-{
-}
+#include <QPainter>
-QString Musician::name() const
+PieSlice::PieSlice(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
{
- return m_name;
+ // need to disable this flag to draw inside a QDeclarativeItem
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
}
-void Musician::setName(const QString &name)
+QColor PieSlice::color() const
{
- m_name = name;
+ return m_color;
}
-Instrument *Musician::instrument() const
+void PieSlice::setColor(const QColor &color)
{
- return m_instrument;
+ m_color = color;
}
-void Musician::setInstrument(Instrument *instrument)
+void PieSlice::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
{
- m_instrument = instrument;
+ QPen pen(m_color, 2);
+ painter->setPen(pen);
+ painter->setRenderHints(QPainter::Antialiasing, true);
+ painter->drawPie(boundingRect(), 90 * 16, 290 * 16);
}
diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/instrument.h b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h
index 9971207..085a9b8 100644
--- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/instrument.h
+++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h
@@ -37,25 +37,28 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef INSTRUMENT_H
-#define INSTRUMENT_H
+#ifndef PIESLICE_H
+#define PIESLICE_H
-#include <QObject>
+#include <QDeclarativeItem>
+#include <QColor>
//![0]
-class Instrument : public QObject
+class PieSlice : public QDeclarativeItem
{
Q_OBJECT
- Q_PROPERTY(QString type READ type WRITE setType)
+ Q_PROPERTY(QColor color READ color WRITE setColor)
public:
- Instrument(QObject *parent = 0);
+ PieSlice(QDeclarativeItem *parent = 0);
- QString type() const;
- void setType(const QString &type);
+ QColor color() const;
+ void setColor(const QColor &color);
+
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
private:
- QString m_type;
+ QColor m_color;
};
//![0]
diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml b/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml
new file mode 100644
index 0000000..f759bc9
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+//![0]
+import Charts 1.0
+import Qt 4.7
+
+Item {
+ width: 300; height: 200
+
+ PieChart {
+ anchors.centerIn: parent
+ width: 100; height: 100
+
+ slices: [
+ PieSlice {
+ anchors.fill: parent
+ color: "red"
+ fromAngle: 0; angleSpan: 110
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "black"
+ fromAngle: 110; angleSpan: 50
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "blue"
+ fromAngle: 160; angleSpan: 100
+ }
+ ]
+ }
+}
+//![0]
diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pro b/examples/declarative/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pro
new file mode 100644
index 0000000..c3f5402
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pro
@@ -0,0 +1,7 @@
+QT += declarative
+
+HEADERS += piechart.h \
+ pieslice.h
+SOURCES += piechart.cpp \
+ pieslice.cpp \
+ main.cpp
diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/instrument.cpp b/examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp
index 9ca96f6..f73c49f 100644
--- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/instrument.cpp
+++ b/examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp
@@ -37,20 +37,22 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include "instrument.h"
+#include "piechart.h"
+#include "pieslice.h"
-Instrument::Instrument(QObject *parent)
- : QObject(parent)
-{
-}
+#include <qdeclarative.h>
+#include <QDeclarativeView>
+#include <QApplication>
-QString Instrument::type() const
+int main(int argc, char *argv[])
{
- return m_type;
-}
+ QApplication app(argc, argv);
-void Instrument::setType(const QString &type)
-{
- m_type = type;
-}
+ qmlRegisterType<PieChart>("Charts", 1, 0, "PieChart");
+ qmlRegisterType<PieSlice>("Charts", 1, 0, "PieSlice");
+ QDeclarativeView view;
+ view.setSource(QUrl::fromLocalFile("app.qml"));
+ view.show();
+ return app.exec();
+}
diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/musician.cpp b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp
index 5f9ead4..2515b64 100644
--- a/examples/declarative/tutorials/extending/chapter3-bindings/musician.cpp
+++ b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp
@@ -37,40 +37,36 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include "musician.h"
-#include <QDebug>
+#include "piechart.h"
+#include "pieslice.h"
-Musician::Musician(QObject *parent)
- : QObject(parent)
+PieChart::PieChart(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
{
}
-QString Musician::name() const
+QString PieChart::name() const
{
return m_name;
}
-void Musician::setName(const QString &name)
+void PieChart::setName(const QString &name)
{
m_name = name;
}
-QString Musician::instrument() const
+//![0]
+QDeclarativeListProperty<PieSlice> PieChart::slices()
{
- return m_instrument;
+ return QDeclarativeListProperty<PieSlice>(this, 0, &PieChart::append_slice);
}
-//![0]
-void Musician::setInstrument(const QString &instrument)
+void PieChart::append_slice(QDeclarativeListProperty<PieSlice> *list, PieSlice *slice)
{
- if (instrument != m_instrument) {
- m_instrument = instrument;
- emit instrumentChanged();
+ PieChart *chart = qobject_cast<PieChart *>(list->object);
+ if (chart) {
+ slice->setParentItem(chart);
+ chart->m_slices.append(slice);
}
}
//![0]
-
-void Musician::perform()
-{
- qWarning() << m_name << "is playing the" << m_instrument;
-}
diff --git a/examples/declarative/tutorials/extending/chapter2-methods/musician.h b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h
index 86849ba..4424251 100644
--- a/examples/declarative/tutorials/extending/chapter2-methods/musician.h
+++ b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h
@@ -37,45 +37,39 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef MUSICIAN_H
-#define MUSICIAN_H
+#ifndef PIECHART_H
+#define PIECHART_H
-#include <QObject>
+#include <QDeclarativeItem>
+
+class PieSlice;
//![0]
-class Musician : public QObject
+class PieChart : public QDeclarativeItem
{
-//![0]
Q_OBJECT
+ Q_PROPERTY(QDeclarativeListProperty<PieSlice> slices READ slices)
+//![0]
Q_PROPERTY(QString name READ name WRITE setName)
- Q_PROPERTY(QString instrument READ instrument WRITE setInstrument)
//![1]
public:
//![1]
-
- Musician(QObject *parent = 0);
+ PieChart(QDeclarativeItem *parent = 0);
QString name() const;
void setName(const QString &name);
- QString instrument() const;
- void setInstrument(const QString &instrument);
-
-//![2]
- Q_INVOKABLE void perform();
-
-signals:
- void performanceEnded();
//![2]
+ QDeclarativeListProperty<PieSlice> slices();
private:
- QString m_name;
- QString m_instrument;
+ static void append_slice(QDeclarativeListProperty<PieSlice> *list, PieSlice *slice);
-//![3]
+ QString m_name;
+ QList<PieSlice *> m_slices;
};
-//![3]
+//![2]
#endif
diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp
new file mode 100644
index 0000000..65120f5
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#include "pieslice.h"
+
+#include <QPainter>
+
+PieSlice::PieSlice(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
+{
+ // need to disable this flag to draw inside a QDeclarativeItem
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
+}
+
+QColor PieSlice::color() const
+{
+ return m_color;
+}
+
+void PieSlice::setColor(const QColor &color)
+{
+ m_color = color;
+}
+
+int PieSlice::fromAngle() const
+{
+ return m_fromAngle;
+}
+
+void PieSlice::setFromAngle(int angle)
+{
+ m_fromAngle = angle;
+}
+
+int PieSlice::angleSpan() const
+{
+ return m_angleSpan;
+}
+
+void PieSlice::setAngleSpan(int angle)
+{
+ m_angleSpan = angle;
+}
+
+void PieSlice::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
+{
+ QPen pen(m_color, 2);
+ painter->setPen(pen);
+ painter->setRenderHints(QPainter::Antialiasing, true);
+ painter->drawPie(boundingRect(), m_fromAngle * 16, m_angleSpan * 16);
+}
+
diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h
new file mode 100644
index 0000000..7cd0c74
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h
@@ -0,0 +1,76 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#ifndef PIESLICE_H
+#define PIESLICE_H
+
+#include <QDeclarativeItem>
+#include <QColor>
+
+//![0]
+class PieSlice : public QDeclarativeItem
+{
+ Q_OBJECT
+ Q_PROPERTY(QColor color READ color WRITE setColor)
+ Q_PROPERTY(int fromAngle READ fromAngle WRITE setFromAngle)
+ Q_PROPERTY(int angleSpan READ angleSpan WRITE setAngleSpan)
+//![0]
+
+public:
+ PieSlice(QDeclarativeItem *parent = 0);
+
+ QColor color() const;
+ void setColor(const QColor &color);
+
+ int fromAngle() const;
+ void setFromAngle(int angle);
+
+ int angleSpan() const;
+ void setAngleSpan(int span);
+
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+
+private:
+ QColor m_color;
+ int m_fromAngle;
+ int m_angleSpan;
+};
+
+#endif
+
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/instrument.cpp b/examples/declarative/tutorials/extending/chapter5-plugins/instrument.cpp
deleted file mode 100644
index 9ca96f6..0000000
--- a/examples/declarative/tutorials/extending/chapter5-plugins/instrument.cpp
+++ /dev/null
@@ -1,56 +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 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$
-**
-****************************************************************************/
-#include "instrument.h"
-
-Instrument::Instrument(QObject *parent)
- : QObject(parent)
-{
-}
-
-QString Instrument::type() const
-{
- return m_type;
-}
-
-void Instrument::setType(const QString &type)
-{
- m_type = type;
-}
-
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/instrument.h b/examples/declarative/tutorials/extending/chapter5-plugins/instrument.h
deleted file mode 100644
index ce1e7ce..0000000
--- a/examples/declarative/tutorials/extending/chapter5-plugins/instrument.h
+++ /dev/null
@@ -1,61 +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 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$
-**
-****************************************************************************/
-#ifndef INSTRUMENT_H
-#define INSTRUMENT_H
-
-#include <QObject>
-
-class Instrument : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(QString type READ type WRITE setType)
-
-public:
- Instrument(QObject *parent = 0);
-
- QString type() const;
- void setType(const QString &type);
-
-private:
- QString m_type;
-};
-
-#endif
-
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/musician.cpp b/examples/declarative/tutorials/extending/chapter5-plugins/musician.cpp
deleted file mode 100644
index e62efb1..0000000
--- a/examples/declarative/tutorials/extending/chapter5-plugins/musician.cpp
+++ /dev/null
@@ -1,67 +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 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$
-**
-****************************************************************************/
-#include "musician.h"
-#include "instrument.h"
-
-Musician::Musician(QObject *parent)
- : QObject(parent)
-{
-}
-
-QString Musician::name() const
-{
- return m_name;
-}
-
-void Musician::setName(const QString &name)
-{
- m_name = name;
-}
-
-Instrument *Musician::instrument() const
-{
- return m_instrument;
-}
-
-void Musician::setInstrument(Instrument *instrument)
-{
- m_instrument = instrument;
-}
-
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/qmldir b/examples/declarative/tutorials/extending/chapter5-plugins/qmldir
deleted file mode 100644
index c3afd6b..0000000
--- a/examples/declarative/tutorials/extending/chapter5-plugins/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-plugin chapter5-plugins lib
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/app.qml b/examples/declarative/tutorials/extending/chapter6-plugins/app.qml
index 9c050b8..38ceefa 100644
--- a/examples/declarative/tutorials/extending/chapter5-plugins/app.qml
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/app.qml
@@ -37,17 +37,32 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-
import Qt 4.7
Item {
+ width: 300; height: 200
- Musician {
- id: reddy
- name: "Reddy the Rocker"
- instrument: Instrument { type: "Guitar" }
- }
+ PieChart {
+ anchors.centerIn: parent
+ width: 100; height: 100
- Component.onCompleted: console.log("Reddy plays the " + reddy.instrument.type)
+ slices: [
+ PieSlice {
+ anchors.fill: parent
+ color: "red"
+ fromAngle: 0; angleSpan: 110
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "black"
+ fromAngle: 110; angleSpan: 50
+ },
+ PieSlice {
+ anchors.fill: parent
+ color: "blue"
+ fromAngle: 160; angleSpan: 100
+ }
+ ]
+ }
}
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/chapter5-plugins.pro b/examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro
index 483da8f..1ffbf29 100644
--- a/examples/declarative/tutorials/extending/chapter5-plugins/chapter5-plugins.pro
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro
@@ -6,13 +6,13 @@ DESTDIR = lib
OBJECTS_DIR = tmp
MOC_DIR = tmp
-HEADERS += musician.h \
- instrument.h \
- musicplugin.h
+HEADERS += piechart.h \
+ pieslice.h \
+ chartsplugin.h
-SOURCES += musician.cpp \
- instrument.cpp \
- musicplugin.cpp
+SOURCES += piechart.cpp \
+ pieslice.cpp \
+ chartsplugin.cpp
symbian {
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/musicplugin.cpp b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp
index 76acf01..5aa2a4b 100644
--- a/examples/declarative/tutorials/extending/chapter5-plugins/musicplugin.cpp
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp
@@ -37,18 +37,18 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include "musicplugin.h"
+#include "chartsplugin.h"
//![0]
-#include "musician.h"
-#include "instrument.h"
+#include "piechart.h"
+#include "pieslice.h"
#include <QtDeclarative/qdeclarative.h>
-void MusicPlugin::registerTypes(const char *uri)
+void ChartsPlugin::registerTypes(const char *uri)
{
- qmlRegisterType<Musician>(uri, 1, 0, "Musician");
- qmlRegisterType<Instrument>(uri, 1, 0, "Instrument");
+ qmlRegisterType<PieChart>(uri, 1, 0, "PieChart");
+ qmlRegisterType<PieSlice>(uri, 1, 0, "PieSlice");
}
-Q_EXPORT_PLUGIN2(musicplugin, MusicPlugin);
+Q_EXPORT_PLUGIN2(chartsplugin, ChartsPlugin);
//![0]
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/musicplugin.h b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h
index d6a5392..797d1e7 100644
--- a/examples/declarative/tutorials/extending/chapter5-plugins/musicplugin.h
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h
@@ -37,13 +37,13 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef MUSICPLUGIN_H
-#define MUSICPLUGIN_H
+#ifndef CHARTSPLUGIN_H
+#define CHARTSPLUGIN_H
//![0]
#include <QtDeclarative/QDeclarativeExtensionPlugin>
-class MusicPlugin : public QDeclarativeExtensionPlugin
+class ChartsPlugin : public QDeclarativeExtensionPlugin
{
Q_OBJECT
public:
diff --git a/examples/declarative/tutorials/extending/chapter1-basics/musician.cpp b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp
index 6c42f31..4e6ee5c 100644
--- a/examples/declarative/tutorials/extending/chapter1-basics/musician.cpp
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp
@@ -37,30 +37,35 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include "musician.h"
+#include "piechart.h"
+#include "pieslice.h"
-Musician::Musician(QObject *parent)
- : QObject(parent)
+PieChart::PieChart(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
{
}
-QString Musician::name() const
+QString PieChart::name() const
{
return m_name;
}
-void Musician::setName(const QString &name)
+void PieChart::setName(const QString &name)
{
m_name = name;
}
-QString Musician::instrument() const
+QDeclarativeListProperty<PieSlice> PieChart::slices()
{
- return m_instrument;
+ return QDeclarativeListProperty<PieSlice>(this, 0, &PieChart::append_slice);
}
-void Musician::setInstrument(const QString &instrument)
+void PieChart::append_slice(QDeclarativeListProperty<PieSlice> *list, PieSlice *slice)
{
- m_instrument = instrument;
+ PieChart *chart = qobject_cast<PieChart *>(list->object);
+ if (chart) {
+ slice->setParentItem(chart);
+ chart->m_slices.append(slice);
+ }
}
diff --git a/examples/declarative/tutorials/extending/chapter5-plugins/musician.h b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.h
index b920631..d6e4439 100644
--- a/examples/declarative/tutorials/extending/chapter5-plugins/musician.h
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.h
@@ -37,31 +37,32 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef MUSICIAN_H
-#define MUSICIAN_H
+#ifndef PIECHART_H
+#define PIECHART_H
-#include <QObject>
+#include <QDeclarativeItem>
-class Instrument;
+class PieSlice;
-class Musician : public QObject
+class PieChart : public QDeclarativeItem
{
Q_OBJECT
+ Q_PROPERTY(QDeclarativeListProperty<PieSlice> slices READ slices)
Q_PROPERTY(QString name READ name WRITE setName)
- Q_PROPERTY(Instrument* instrument READ instrument WRITE setInstrument)
public:
- Musician(QObject *parent = 0);
+ PieChart(QDeclarativeItem *parent = 0);
QString name() const;
void setName(const QString &name);
- Instrument *instrument() const;
- void setInstrument(Instrument *instrument);
+ QDeclarativeListProperty<PieSlice> slices();
private:
+ static void append_slice(QDeclarativeListProperty<PieSlice> *list, PieSlice *slice);
+
QString m_name;
- Instrument *m_instrument;
+ QList<PieSlice *> m_slices;
};
#endif
diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp
new file mode 100644
index 0000000..65120f5
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#include "pieslice.h"
+
+#include <QPainter>
+
+PieSlice::PieSlice(QDeclarativeItem *parent)
+ : QDeclarativeItem(parent)
+{
+ // need to disable this flag to draw inside a QDeclarativeItem
+ setFlag(QGraphicsItem::ItemHasNoContents, false);
+}
+
+QColor PieSlice::color() const
+{
+ return m_color;
+}
+
+void PieSlice::setColor(const QColor &color)
+{
+ m_color = color;
+}
+
+int PieSlice::fromAngle() const
+{
+ return m_fromAngle;
+}
+
+void PieSlice::setFromAngle(int angle)
+{
+ m_fromAngle = angle;
+}
+
+int PieSlice::angleSpan() const
+{
+ return m_angleSpan;
+}
+
+void PieSlice::setAngleSpan(int angle)
+{
+ m_angleSpan = angle;
+}
+
+void PieSlice::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *)
+{
+ QPen pen(m_color, 2);
+ painter->setPen(pen);
+ painter->setRenderHints(QPainter::Antialiasing, true);
+ painter->drawPie(boundingRect(), m_fromAngle * 16, m_angleSpan * 16);
+}
+
diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h
new file mode 100644
index 0000000..a3afd25
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** 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$
+**
+****************************************************************************/
+#ifndef PIESLICE_H
+#define PIESLICE_H
+
+#include <QDeclarativeItem>
+#include <QColor>
+
+class PieSlice : public QDeclarativeItem
+{
+ Q_OBJECT
+ Q_PROPERTY(QColor color READ color WRITE setColor)
+ Q_PROPERTY(int fromAngle READ fromAngle WRITE setFromAngle)
+ Q_PROPERTY(int angleSpan READ angleSpan WRITE setAngleSpan)
+
+public:
+ PieSlice(QDeclarativeItem *parent = 0);
+
+ QColor color() const;
+ void setColor(const QColor &color);
+
+ int fromAngle() const;
+ void setFromAngle(int angle);
+
+ int angleSpan() const;
+ void setAngleSpan(int span);
+
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
+
+private:
+ QColor m_color;
+ int m_fromAngle;
+ int m_angleSpan;
+};
+
+#endif
+
diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/qmldir b/examples/declarative/tutorials/extending/chapter6-plugins/qmldir
new file mode 100644
index 0000000..a83bf85
--- /dev/null
+++ b/examples/declarative/tutorials/extending/chapter6-plugins/qmldir
@@ -0,0 +1 @@
+plugin chapter6-plugins lib
diff --git a/examples/declarative/tutorials/extending/extending.pro b/examples/declarative/tutorials/extending/extending.pro
index 0c86fed..967473f 100644
--- a/examples/declarative/tutorials/extending/extending.pro
+++ b/examples/declarative/tutorials/extending/extending.pro
@@ -5,5 +5,6 @@ SUBDIRS += \
chapter2-methods \
chapter3-bindings \
chapter4-customPropertyTypes \
- chapter5-plugins
+ chapter5-listproperties \
+ chapter6-plugins
diff --git a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml
index 1f51e13..92c607f 100644
--- a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml
+++ b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml
@@ -49,11 +49,14 @@ Item {
//![1]
property bool spawned: false
- property int targetX: 0
- property int targetY: 0
- SpringFollow on x { to: targetX; spring: 2; damping: 0.2; enabled: spawned }
- SpringFollow on y { to: targetY; spring: 2; damping: 0.2 }
+ Behavior on x {
+ enabled: spawned;
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
+ Behavior on y {
+ SpringAnimation{ spring: 2; damping: 0.2 }
+ }
//![1]
//![2]
diff --git a/examples/declarative/tutorials/samegame/samegame4/content/samegame.js b/examples/declarative/tutorials/samegame/samegame4/content/samegame.js
index 930a3d8..b1f427c 100755
--- a/examples/declarative/tutorials/samegame/samegame4/content/samegame.js
+++ b/examples/declarative/tutorials/samegame/samegame4/content/samegame.js
@@ -57,8 +57,7 @@ function createBlock(column, row) {
}
dynamicObject.type = Math.floor(Math.random() * 3);
dynamicObject.x = column * gameCanvas.blockSize;
- dynamicObject.targetX = column * gameCanvas.blockSize;
- dynamicObject.targetY = row * gameCanvas.blockSize;
+ dynamicObject.y = row * gameCanvas.blockSize;
dynamicObject.width = gameCanvas.blockSize;
dynamicObject.height = gameCanvas.blockSize;
dynamicObject.spawned = true;
@@ -128,7 +127,7 @@ function shuffleDown() {
} else {
if (fallDist > 0) {
var obj = board[index(column, row)];
- obj.targetY += fallDist * gameCanvas.blockSize;
+ obj.y += fallDist * gameCanvas.blockSize;
board[index(column, row + fallDist)] = obj;
board[index(column, row)] = null;
}
@@ -146,7 +145,7 @@ function shuffleDown() {
obj = board[index(column, row)];
if (obj == null)
continue;
- obj.targetX -= fallDist * gameCanvas.blockSize;
+ obj.x -= fallDist * gameCanvas.blockSize;
board[index(column - fallDist, row)] = obj;
board[index(column, row)] = null;
}
diff --git a/examples/declarative/ui-components/dialcontrol/content/Dial.qml b/examples/declarative/ui-components/dialcontrol/content/Dial.qml
index 2b421bf..b5074a64 100644
--- a/examples/declarative/ui-components/dialcontrol/content/Dial.qml
+++ b/examples/declarative/ui-components/dialcontrol/content/Dial.qml
@@ -50,11 +50,11 @@ Item {
//! [needle_shadow]
Image {
- x: 93
+ x: 96
y: 35
source: "needle_shadow.png"
transform: Rotation {
- origin.x: 11; origin.y: 67
+ origin.x: 9; origin.y: 67
angle: needleRotation.angle
}
}
@@ -62,17 +62,18 @@ Item {
//! [needle]
Image {
id: needle
- x: 95; y: 33
+ x: 98; y: 33
smooth: true
source: "needle.png"
transform: Rotation {
id: needleRotation
- origin.x: 7; origin.y: 65
- angle: -130
- SpringFollow on angle {
- spring: 1.4
- damping: .15
- to: Math.min(Math.max(-130, root.value*2.6 - 130), 133)
+ origin.x: 5; origin.y: 65
+ angle: Math.min(Math.max(-130, root.value*2.6 - 130), 133)
+ Behavior on angle {
+ SpringAnimation {
+ spring: 1.4
+ damping: .15
+ }
}
}
}
diff --git a/examples/declarative/ui-components/tabwidget/TabWidget.qml b/examples/declarative/ui-components/tabwidget/TabWidget.qml
index 9642e04..ce57213 100644
--- a/examples/declarative/ui-components/tabwidget/TabWidget.qml
+++ b/examples/declarative/ui-components/tabwidget/TabWidget.qml
@@ -43,9 +43,14 @@ import Qt 4.7
Item {
id: tabWidget
- property int current: 0
+ // Setting the default property to stack.children means any child items
+ // of the TabWidget are actually added to the 'stack' item's children.
+ // See the "Extending Types from QML" documentation for details on default
+ // properties.
default property alias content: stack.children
+ property int current: 0
+
onCurrentChanged: setOpacities()
Component.onCompleted: setOpacities()
diff --git a/examples/network/bearermonitor/sessionwidget.h b/examples/network/bearermonitor/sessionwidget.h
index 5b5827b..c92db44 100644
--- a/examples/network/bearermonitor/sessionwidget.h
+++ b/examples/network/bearermonitor/sessionwidget.h
@@ -41,12 +41,12 @@
#ifndef SESSIONWIDGET_H
#define SESSIONWIDGET_H
+#include <qnetworksession.h>
#if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
#include "ui_sessionwidget_maemo.h"
#else
#include "ui_sessionwidget.h"
#endif
-#include <qnetworksession.h>
QT_USE_NAMESPACE
diff --git a/examples/network/bearermonitor/sessionwidget_maemo.ui b/examples/network/bearermonitor/sessionwidget_maemo.ui
index ca68246..8867509 100644
--- a/examples/network/bearermonitor/sessionwidget_maemo.ui
+++ b/examples/network/bearermonitor/sessionwidget_maemo.ui
@@ -214,6 +214,54 @@
</item>
</layout>
</item>
+ <item>
+ <layout class="QHBoxLayout" name="errorStringLayout_2">
+ <item>
+ <widget class="QLabel" name="rxData">
+ <property name="text">
+ <string>0</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="txData">
+ <property name="text">
+ <string>0</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="errorStringLayout_3">
+ <item>
+ <widget class="QLabel" name="errorStringLabel_2">
+ <property name="text">
+ <string>Active Time:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="activeTime">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>0 seconds</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
</layout>
</item>
<item>
diff --git a/mkspecs/win32-msvc2005/qmake.conf b/mkspecs/win32-msvc2005/qmake.conf
index a5999cc..0406fd0 100644
--- a/mkspecs/win32-msvc2005/qmake.conf
+++ b/mkspecs/win32-msvc2005/qmake.conf
@@ -16,7 +16,7 @@ QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
+QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
QMAKE_CFLAGS_WARN_ON = -W3
QMAKE_CFLAGS_WARN_OFF = -W0
QMAKE_CFLAGS_RELEASE = -O2 -MD
diff --git a/mkspecs/win32-msvc2008/qmake.conf b/mkspecs/win32-msvc2008/qmake.conf
index 1aab8e1..9805e90 100644
--- a/mkspecs/win32-msvc2008/qmake.conf
+++ b/mkspecs/win32-msvc2008/qmake.conf
@@ -16,7 +16,7 @@ QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
+QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
QMAKE_CFLAGS_WARN_ON = -W3
QMAKE_CFLAGS_WARN_OFF = -W0
QMAKE_CFLAGS_RELEASE = -O2 -MD
diff --git a/mkspecs/win32-msvc2010/qmake.conf b/mkspecs/win32-msvc2010/qmake.conf
index 34a7782..28d4d3c 100644
--- a/mkspecs/win32-msvc2010/qmake.conf
+++ b/mkspecs/win32-msvc2010/qmake.conf
@@ -16,7 +16,7 @@ QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
-QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
+QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
QMAKE_CFLAGS_WARN_ON = -W3
QMAKE_CFLAGS_WARN_OFF = -W0
QMAKE_CFLAGS_RELEASE = -O2 -MD
diff --git a/src/3rdparty/sqlite/sqlite3.c b/src/3rdparty/sqlite/sqlite3.c
index 46d3dfc..27a8d18 100644
--- a/src/3rdparty/sqlite/sqlite3.c
+++ b/src/3rdparty/sqlite/sqlite3.c
@@ -48449,11 +48449,15 @@ SQLITE_PRIVATE void sqlite3VdbeIOTraceSql(Vdbe *p){
#endif /* !SQLITE_OMIT_TRACE && SQLITE_ENABLE_IOTRACE */
/*
-** Allocate space from a fixed size buffer. Make *pp point to the
-** allocated space. (Note: pp is a char* rather than a void** to
-** work around the pointer aliasing rules of C.) *pp should initially
-** be zero. If *pp is not zero, that means that the space has already
-** been allocated and this routine is a noop.
+** Allocate space from a fixed size buffer and return a pointer to
+** that space. If insufficient space is available, return NULL.
+**
+** The pBuf parameter is the initial value of a pointer which will
+** receive the new memory. pBuf is normally NULL. If pBuf is not
+** NULL, it means that memory space has already been allocated and that
+** this routine should not allocate any new memory. When pBuf is not
+** NULL simply return pBuf. Only allocate new memory space when pBuf
+** is NULL.
**
** nByte is the number of bytes of space needed.
**
@@ -48464,23 +48468,23 @@ SQLITE_PRIVATE void sqlite3VdbeIOTraceSql(Vdbe *p){
** to allocate. If there is insufficient space in *ppFrom to satisfy the
** request, then increment *pnByte by the amount of the request.
*/
-static void allocSpace(
- char *pp, /* IN/OUT: Set *pp to point to allocated buffer */
+static void *allocSpace(
+ void *pBuf, /* Where return pointer will be stored */
int nByte, /* Number of bytes to allocate */
u8 **ppFrom, /* IN/OUT: Allocate from *ppFrom */
u8 *pEnd, /* Pointer to 1 byte past the end of *ppFrom buffer */
int *pnByte /* If allocation cannot be made, increment *pnByte */
){
assert( EIGHT_BYTE_ALIGNMENT(*ppFrom) );
- if( (*(void**)pp)==0 ){
- nByte = ROUND8(nByte);
- if( &(*ppFrom)[nByte] <= pEnd ){
- *(void**)pp = (void *)*ppFrom;
- *ppFrom += nByte;
- }else{
- *pnByte += nByte;
- }
+ if( pBuf ) return pBuf;
+ nByte = ROUND8(nByte);
+ if( &(*ppFrom)[nByte] <= pEnd ){
+ pBuf = (void*)*ppFrom;
+ *ppFrom += nByte;
+ }else{
+ *pnByte += nByte;
}
+ return pBuf;
}
/*
@@ -48553,13 +48557,12 @@ SQLITE_PRIVATE void sqlite3VdbeMakeReady(
do {
nByte = 0;
- allocSpace((char*)&p->aMem, nMem*sizeof(Mem), &zCsr, zEnd, &nByte);
- allocSpace((char*)&p->aVar, nVar*sizeof(Mem), &zCsr, zEnd, &nByte);
- allocSpace((char*)&p->apArg, nArg*sizeof(Mem*), &zCsr, zEnd, &nByte);
- allocSpace((char*)&p->azVar, nVar*sizeof(char*), &zCsr, zEnd, &nByte);
- allocSpace((char*)&p->apCsr,
- nCursor*sizeof(VdbeCursor*), &zCsr, zEnd, &nByte
- );
+ p->aMem = allocSpace(p->aMem, nMem*sizeof(Mem), &zCsr, zEnd, &nByte);
+ p->aVar = allocSpace(p->aVar, nVar*sizeof(Mem), &zCsr, zEnd, &nByte);
+ p->apArg = allocSpace(p->apArg, nArg*sizeof(Mem*), &zCsr, zEnd, &nByte);
+ p->azVar = allocSpace(p->azVar, nVar*sizeof(char*), &zCsr, zEnd, &nByte);
+ p->apCsr = allocSpace(p->apCsr, nCursor*sizeof(VdbeCursor*),
+ &zCsr, zEnd, &nByte);
if( nByte ){
p->pFree = sqlite3DbMallocZero(db, nByte);
}
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index 0b824b7..1d1c8ed 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-d59845f6fec84f15da116f50a1a0e52ce26116e9
+ad96ca2f9b57271da4ea7432022ac686ee0981c2
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index c970745..2e5ebd0 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
- d59845f6fec84f15da116f50a1a0e52ce26116e9
+ ad96ca2f9b57271da4ea7432022ac686ee0981c2
diff --git a/src/3rdparty/webkit/WebCore/ChangeLog b/src/3rdparty/webkit/WebCore/ChangeLog
index a4ae758..a993a97 100644
--- a/src/3rdparty/webkit/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/WebCore/ChangeLog
@@ -1,3 +1,505 @@
+2010-05-14 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by David Hyatt.
+
+ Move the m_width(Length) and m_columns(RenderTable::ColumnStruct)
+ vector out-of-bounds check out of the ASSERT into the main code.
+ https://bugs.webkit.org/show_bug.cgi?id=38261
+
+ Test: fast/table/fixed-table-layout-large-colspan-crash.html
+
+ * rendering/FixedTableLayout.cpp:
+ (WebCore::FixedTableLayout::calcWidthArray):
+
+2010-05-21 Beth Dakin <bdakin@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Fix for <rdar://problem/8009118> Crash in WebCore::toAlphabetic()
+ while running MangleMe
+ -and corresponding-
+ https://bugs.webkit.org/show_bug.cgi?id=39508
+
+ The math was slightly off here, and we wound up trying to access an
+ array at index -1 in some cases. We need to decrement numberShadow
+ rather than subtracting one from the result of the modulo
+ operation.
+
+ * rendering/RenderListMarker.cpp:
+ (WebCore::toAlphabeticOrNumeric):
+
+2010-05-20 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Dave Hyatt.
+
+ <rdar://problem/8007953> Textarea using custom font appears blank
+
+ Test: fast/css/font-face-in-shadow-DOM.html
+
+ When a remote font is loaded, CSSFontSelector forces a style recalc, which replaces all
+ RenderSyles that have FontFallbackLists referencing the placeholder font with fresh
+ RenderStyles. However, it does not descend into shadow DOM trees, so those may end up with
+ styles that still reference the placeholder font.
+
+ The fix is to add RenderObject::requiresForcedStyleRecalcPropagation() and have it return
+ true from renderers that maintain shadow DOM trees or otherwise keep their own RenderStyles.
+
+ * dom/Element.cpp:
+ (WebCore::Element::recalcStyle): Check if forced style recalc needs to propagated.
+ * rendering/RenderButton.h:
+ (WebCore::RenderButton::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderDataGrid.h:
+ (WebCore::RenderDataGrid::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderFileUploadControl.h:
+ (WebCore::RenderFileUploadControl::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderListItem.h:
+ (WebCore::RenderListItem::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderMedia.h:
+ (WebCore::RenderMedia::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderMenuList.h:
+ (WebCore::RenderMenuList::RenderMenuList::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderObject.h:
+ (WebCore::RenderObject::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderProgress.h:
+ (WebCore::RenderProgress::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderSlider.h:
+ (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
+ * rendering/RenderTextControl.h:
+ (WebCore::RenderTextControl::requiresForcedStyleRecalcPropagation):
+
+2010-04-02 Justin Schuh <jschuh@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ XHR allows arbitrary XSRF across domains
+ https://bugs.webkit.org/show_bug.cgi?id=36843
+
+ Added a one-line change to prevent bypassing the XDC check on
+ synchronous preflighted requests. Added layout tests to cover
+ variations of this problem.
+
+ Tests: http/tests/xmlhttprequest/access-control-preflight-async-header-denied.html
+ http/tests/xmlhttprequest/access-control-preflight-async-method-denied.html
+ http/tests/xmlhttprequest/access-control-preflight-sync-header-denied.html
+ http/tests/xmlhttprequest/access-control-preflight-sync-method-denied.html
+
+ * loader/DocumentThreadableLoader.cpp:
+ (WebCore::DocumentThreadableLoader::preflightFailure):
+
+2010-04-28 Julien Chaffraix <jchaffraix@webkit.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ [XHR] Cross-Origin synchronous request with credential raises NETWORK_ERR
+ https://bugs.webkit.org/show_bug.cgi?id=37781
+ <rdar://problem/7905150>
+
+ Tests: http/tests/xmlhttprequest/access-control-preflight-credential-async.html
+ http/tests/xmlhttprequest/access-control-preflight-credential-sync.html
+
+ Rolling the patch in as I could not reproduce Qt results locally.
+
+ * loader/DocumentThreadableLoader.cpp:
+ (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Now we remove the
+ credential from the request here to avoid forgetting to do so in the different code path.
+ (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Just add the
+ "Origin" header.
+ (WebCore::DocumentThreadableLoader::loadRequest): Check here the the credential have
+ been removed so that we don't leak them. Also tweaked a comment to make it clear that
+ the URL check has issue when credential is involved.
+
+2010-04-21 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Adam Roben.
+
+ Windows build fix.
+
+ * platform/network/cf/ResourceHandleCFNet.cpp: Declare CFURLConnectionCreateWithProperties
+ for now, as it's mistakenly missing from WebKitSupportLibrary headers.
+
+2010-05-19 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by David Hyatt.
+
+ Check that the node is a text node before doing a static cast
+ to a Text class pointer.
+ https://bugs.webkit.org/show_bug.cgi?id=38626
+
+ Test: fast/text/text-transform-nontext-node-crash.xhtml
+
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::originalText):
+ * rendering/RenderTextFragment.cpp:
+ (WebCore::RenderTextFragment::originalText):
+ (WebCore::RenderTextFragment::previousCharacter):
+
+2010-05-12 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ HTML Entity Escape the contents of a textarea node when accessed
+ via the innerHTML and outerHTML node properties.
+ https://bugs.webkit.org/show_bug.cgi?id=38922
+
+ Test: fast/innerHTML/innerHTML-special-elements.html
+
+ * editing/markup.cpp:
+ (WebCore::appendStartMarkup):
+
+2010-05-12 James Robinson <jamesr@chromium.org>
+
+ Patch by Dan Bernstein.
+
+ Reviewed by David Hyatt.
+
+ Fix marking the layout root's parent as needing layout
+ https://bugs.webkit.org/show_bug.cgi?id=37760
+
+ If an element gets marked as needing layout due to the recalcStyle()
+ call in FrameView::layout(), the m_layoutSchedulingEnabled flag will
+ be set to false. It's possible at this point that a parent of the
+ existing FrameView::m_layoutRoot will be marked as needing layout.
+
+ This patch updates FrameView::scheduleRelayoutOfSubtree to account
+ for this case.
+
+ Manual test only due to subtle timing issues.
+
+ * manual-tests/layoutroot_detach.xml: Added.
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scheduleRelayoutOfSubtree):
+
+2010-05-10 Sam Weinig <sam@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ Fix for https://bugs.webkit.org/show_bug.cgi?id=38583
+ <rdar://problem/7948784> Crash in Element::normalizeAttributes.
+
+ Test: fast/dom/Element/normalize-crash.html
+
+ * dom/Element.cpp:
+ (WebCore::Element::normalizeAttributes): Copy attributes to a vector
+ before iterating.
+ * dom/NamedAttrMap.cpp:
+ (WebCore::NamedNodeMap::copyAttributesToVector): Added.
+ * dom/NamedAttrMap.h:
+
+2010-05-10 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Based on a patch by Eric Seidel.
+
+ https://bugs.webkit.org/show_bug.cgi?id=28697
+ <rdar://problem/7946578> WebKit crash on WebCore::Node::nodeIndex()
+
+ It's not OK to call ContainerNode::willRemoveChild() in a loop, because Range code assumes
+ that it can adjust start and end position to any node except for the one being removed -
+ so these notifications cannot be batched.
+
+ Test: fast/dom/Range/remove-all-children-crash.html
+
+ * dom/ContainerNode.cpp:
+ (WebCore::willRemoveChild): Removed unused ExceptionCode.
+ (WebCore::willRemoveChildren): New function, used in removeChildren() case.
+ (WebCore::ContainerNode::removeChild): ExceptionCode return was always 0, don't bother with it.
+ (WebCore::ContainerNode::removeChildren): Call willRemoveChildrenFromNode.
+ (WebCore::dispatchChildRemovalEvents): Moved some logic out into willRemoveChildrenFromNode
+ and willRemoveChild.
+
+ * dom/Document.cpp:
+ (WebCore::Document::nodeChildrenWillBeRemoved): New function, used in removeChildren() case.
+
+ * dom/Document.h:
+ (WebCore::Document::nodeChildrenWillBeRemoved): New function, used in removeChildren() case.
+
+ * dom/Range.h:
+ * dom/Range.cpp:
+ (WebCore::boundaryNodeChildrenWillBeRemoved): New function, used in removeChildren() case.
+ (WebCore::Range::nodeChildrenWillBeRemoved): Ditto.
+
+2010-05-03 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Adam Barth.
+
+ https://bugs.webkit.org/show_bug.cgi?id=38497
+ <rdar://problem/7759438> Make sure that http URLs always have a host in SecurityOrigin
+
+ This is a hardening fix, and behavior really depends on what an underlying networking layer
+ does. So, no test.
+
+ * page/SecurityOrigin.cpp:
+ (WebCore::schemeRequiresAuthority): List schemes that need an authority for successful loading.
+ (WebCore::SecurityOrigin::SecurityOrigin): Never let e.g. http origins with empty authorities
+ have the same security origin.
+
+2010-05-03 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Add support for controlling clipboard access from javascript.
+ Clipboard access from javascript is disabled by default.
+ https://bugs.webkit.org/show_bug.cgi?id=27751
+
+ Test: editing/execCommand/clipboard-access.html
+
+ * WebCore.base.exp:
+ * editing/EditorCommand.cpp:
+ (WebCore::supportedCopyCut):
+ (WebCore::supportedPaste):
+ (WebCore::createCommandMap):
+ * page/Settings.cpp:
+ (WebCore::Settings::Settings):
+ (WebCore::Settings::setJavaScriptCanAccessClipboard):
+ * page/Settings.h:
+ (WebCore::Settings::javaScriptCanAccessClipboard):
+
+2010-04-30 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by David Kilzer.
+
+ Convert m_documentUnderMouse, m_dragInitiator to RefPtr.
+ Eliminated unused m_dragInitiator accessor to prevent dereferencing.
+ https://bugs.webkit.org/show_bug.cgi?id=37618
+
+ Test: editing/pasteboard/drag-drop-iframe-refresh-crash.html
+
+ * page/DragController.cpp:
+ (WebCore::DragController::tryDocumentDrag):
+ (WebCore::DragController::concludeEditDrag):
+ * page/DragController.h:
+ (WebCore::DragController::draggingImageURL):
+ (WebCore::DragController::documentUnderMouse):
+
+2010-04-14 Justin Schuh <jschuh@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Javascript URL can be set as iframe.src via multiple DOM aliases
+ https://bugs.webkit.org/show_bug.cgi?id=37031
+
+ Moved frame/iframe checks from Attr to Node on inherited members.
+ Node child manipulation methods now return NOT_SUPPORTED_ERR if used
+ on a frame/iframe src attribute.
+ NamedNodeMap set methods now perform frame/iframe src checks.
+ Moved allowSettingSrcToJavascriptURL static helper function from
+ JSElementCustom.cpp to exported function in JSDOMBinding.h.
+
+ * bindings/js/JSAttrCustom.cpp:
+ (WebCore::JSAttr::setValue):
+ * bindings/js/JSDOMBinding.cpp:
+ (WebCore::allowSettingSrcToJavascriptURL):
+ * bindings/js/JSDOMBinding.h:
+ * bindings/js/JSElementCustom.cpp:
+ * bindings/js/JSNamedNodeMapCustom.cpp:
+ (WebCore::JSNamedNodeMap::setNamedItem):
+ (WebCore::JSNamedNodeMap::setNamedItemNS):
+ * bindings/js/JSNodeCustom.cpp:
+ (WebCore::isAttrFrameSrc):
+ (WebCore::JSNode::setNodeValue):
+ (WebCore::JSNode::setTextContent):
+ (WebCore::JSNode::insertBefore):
+ (WebCore::JSNode::replaceChild):
+ (WebCore::JSNode::removeChild):
+ (WebCore::JSNode::appendChild):
+ * bindings/v8/custom/V8AttrCustom.cpp:
+ * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
+ (WebCore::V8NamedNodeMap::setNamedItemNSCallback):
+ (WebCore::V8NamedNodeMap::setNamedItemCallback):
+ (WebCore::toV8):
+ * bindings/v8/custom/V8NodeCustom.cpp:
+ (WebCore::isFrameSrc):
+ (WebCore::V8Node::textContentAccessorSetter):
+ (WebCore::V8Node::nodeValueAccessorSetter):
+ (WebCore::V8Node::insertBeforeCallback):
+ (WebCore::V8Node::replaceChildCallback):
+ (WebCore::V8Node::removeChildCallback):
+ (WebCore::V8Node::appendChildCallback):
+ * dom/Attr.idl:
+ * dom/NamedNodeMap.idl:
+ * dom/Node.idl:
+
+2010-03-26 Justin Schuh <jschuh@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Security: iFrame.src accepts JavaScript URL via nodeValue or textContent
+ https://bugs.webkit.org/show_bug.cgi?id=36502
+
+ Overrode inherited nodeValue and textContent in Attr.idl so they proxy
+ to value, which performs a security check.
+
+ Test: http/tests/security/xss-DENIED-iframe-src-alias.html
+
+ * bindings/js/JSAttrCustom.cpp:
+ (WebCore::JSAttr::nodeValue):
+ (WebCore::JSAttr::setNodeValue):
+ (WebCore::JSAttr::textContent):
+ (WebCore::JSAttr::setTextContent):
+ * bindings/v8/custom/V8AttrCustom.cpp:
+ (WebCore::V8Attr::nodeValueAccessorSetter):
+ (WebCore::V8Attr::nodeValueAccessorGetter):
+ (WebCore::V8Attr::textContentAccessorSetter):
+ (WebCore::V8Attr::textContentAccessorGetter):
+ * dom/Attr.idl:
+
+2010-05-05 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darin Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=38260
+ <rdar://problem/7917548> Fix whitespace removing in deprecatedParseURL().
+
+ Broken all the way since r4 (yes, that's a revision number).
+
+ Test: http/tests/security/xss-DENIED-javascript-with-spaces.html
+
+ * css/CSSHelper.cpp: (WebCore::deprecatedParseURL): Fixed loop conditions for remaining length.
+
+2010-04-23 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ <rdar://problem/7898436> :after content is duplicated
+
+ Test: fast/css-generated-content/after-duplicated-after-split.html
+
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::splitInlines): Pass the correct owner of the child list.
+
+2010-03-30 Chris Evans <cevans@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Taint the canvas if an SVG-derived pattern is rendered into it.
+
+ https://bugs.webkit.org/show_bug.cgi?id=36838
+
+ Test: fast/canvas/svg-taint.html
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::createPattern):
+ Take into account the image's hasSingleSecurityOrigin() property.
+
+2010-04-07 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Darinn Adler.
+
+ https://bugs.webkit.org/show_bug.cgi?id=37230
+ <rdar://problem/7813115> REGRESSION (4.0.5): Safari asks for credentials all the time when
+ authenticating to Windows IIS Server
+
+ * platform/network/ProtectionSpace.h: (WebCore::ProtectionSpaceAuthenticationScheme): Added
+ a constant for ProtectionSpaceAuthenticationSchemeUnknown.
+
+ * platform/network/cf/AuthenticationCF.cpp: (WebCore::core):
+ * platform/network/cf/SocketStreamHandleCFNet.cpp: (WebCore::authenticationSchemeFromAuthenticationMethod):
+ Return ProtectionSpaceAuthenticationSchemeUnknown for unknown scheme.
+
+ * platform/network/mac/AuthenticationMac.mm:
+ (WebCore::mac): Support NTLM on systems older than 10.6. We actually get this string from
+ NSURLConnection, even though there was no public constant.
+ (WebCore::core): Return ProtectionSpaceAuthenticationSchemeUnknown for unknown scheme.
+
+2010-04-19 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Make the fix for <rdar://problem/7873647> from r57759 more robust.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateHoverActiveState): Use RefPtrs for the Nodes.
+
+2010-04-16 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Simon Fraser.
+
+ <rdar://problem/7873647> Crash when updating hover state
+
+ Test: fast/dynamic/hover-style-recalc-crash.html
+
+ Updating the hover state of an element caused the document to need style
+ recalc, and then updating the hover state of a link caused style recalc,
+ which changed the render tree while updateHoverActiveState() was iterating
+ over it, leading to a crash.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateHoverActiveState): Collect the nodes to be
+ updated into vectors, then update their active and hover states.
+
+2010-03-31 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Darin Adler.
+
+ <http://webkit.org/b/36878> REGRESSION: Trailing colon on hostnames (with no port specified) causes "Not allowed to use restricted network port"
+
+ * platform/KURL.cpp:
+ (WebCore::KURL::port): Explicitly handle the case of a colon being present in the URL after the host name but with
+ no port number before the path. This is handled in the same manner as the colon and port being omitted completely.
+
+2010-03-24 Mark Rowe <mrowe@apple.com>
+
+ Revert the portion of r56489 that dealt with port zero as it introduced some test failures.
+
+ * platform/KURL.cpp:
+ (WebCore::KURL::port): Use the "ok" argument to charactersToUIntStrict to determine whether
+ it was able to successfully parse the string as an unsigned integer, rather than relying on
+ the fact it returned zero when it failed.
+
+2010-03-24 Mark Rowe <mrowe@apple.com>
+
+ Reviewed by Darin Adler.
+
+ WebKit should treat port numbers outside the valid range as being blacklisted
+ <http://webkit.org/b/36571> / <rdar://problem/7790908>
+
+ * platform/KURL.cpp:
+ (WebCore::KURL::port): Map invalid port numbers to invalidPortNumber.
+ (WebCore::portAllowed): Add invalidPortNumber to the blacklist.
+ * platform/KURLGoogle.cpp: invalid port numbers to invalidPortNumber.
+ (WebCore::KURL::port): Add invalidPortNumber to the blacklist.
+ Also bring this in to sync with KURL. Having this identical code in two places is stupid.
+
+2010-05-05 Alexey Proskuryakov <ap@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ https://bugs.webkit.org/show_bug.cgi?id=26824
+ <rdar://problem/7018610> EventHandler can operate on a wrong frame if focus changes during
+ keyboard event dispatch.
+
+ EventHandler object is tied to a frame, so it's wrong for it to continue processing a keyboard
+ event if focused frame changes between keydown and keypress.
+
+ * manual-tests/focus-change-between-key-events.html: Added.
+
+ * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Bail out early if focused frame
+ changes while dispatching keydown. Also made similar changes for Windows to maintain matching
+ behavior, even though EventHandler was re-entered anyway due to WM_KEYDOWN and WM_CHAR being
+ separate events.
+
+2010-07-02 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Canvas arcTo() should draw straight line to p1 if p0, p1 and p2 are collinear
+
+ The implementation of PathQt's addArcTo() was not float-safe and also had
+ a case where it drew an 'infinite' line, which is not part of the spec.
+
+ http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arcto
+
+ We now use qFuzzyCompare() in both cases. The method isPointOnPathBorder()
+ also had the same problem, and was refactored a bit in the process of fixing
+ the bug.
+
+ Initial patch by Andreas Kling.
+
+ https://bugs.webkit.org/show_bug.cgi?id=41412
+
+ * platform/graphics/qt/PathQt.cpp:
+
2010-03-26 Shu Chang <chang.shu@nokia.com>
Reviewed by Eric Seidel.
diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSAttrCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSAttrCustom.cpp
index 3c01535..4cd40ac 100644
--- a/src/3rdparty/webkit/WebCore/bindings/js/JSAttrCustom.cpp
+++ b/src/3rdparty/webkit/WebCore/bindings/js/JSAttrCustom.cpp
@@ -33,6 +33,7 @@
#include "Document.h"
#include "HTMLFrameElementBase.h"
#include "HTMLNames.h"
+#include "JSDOMBinding.h"
using namespace JSC;
@@ -46,13 +47,8 @@ void JSAttr::setValue(ExecState* exec, JSValue value)
String attrValue = valueToStringWithNullCheck(exec, value);
Element* ownerElement = imp->ownerElement();
- if (ownerElement && (ownerElement->hasTagName(iframeTag) || ownerElement->hasTagName(frameTag))) {
- if (equalIgnoringCase(imp->name(), "src") && protocolIsJavaScript(deprecatedParseURL(attrValue))) {
- Document* contentDocument = static_cast<HTMLFrameElementBase*>(ownerElement)->contentDocument();
- if (contentDocument && !checkNodeSecurity(exec, contentDocument))
- return;
- }
- }
+ if (ownerElement && !allowSettingSrcToJavascriptURL(exec, ownerElement, imp->name(), attrValue))
+ return;
ExceptionCode ec = 0;
imp->setValue(attrValue, ec);
diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp
index f294dad..393c1ee 100644
--- a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp
+++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.cpp
@@ -24,6 +24,7 @@
#include "debugger/DebuggerCallFrame.h"
#include "ActiveDOMObject.h"
+#include "CSSHelper.h"
#include "DOMCoreException.h"
#include "DOMObjectHashTableMap.h"
#include "Document.h"
@@ -33,6 +34,7 @@
#include "Frame.h"
#include "HTMLAudioElement.h"
#include "HTMLCanvasElement.h"
+#include "HTMLFrameElementBase.h"
#include "HTMLImageElement.h"
#include "HTMLNames.h"
#include "HTMLScriptElement.h"
@@ -630,6 +632,16 @@ bool shouldAllowNavigation(ExecState* exec, Frame* frame)
return lexicalFrame && lexicalFrame->loader()->shouldAllowNavigation(frame);
}
+bool allowSettingSrcToJavascriptURL(ExecState* exec, Element* element, const String& name, const String& value)
+{
+ if ((element->hasTagName(iframeTag) || element->hasTagName(frameTag)) && equalIgnoringCase(name, "src") && protocolIsJavaScript(deprecatedParseURL(value))) {
+ Document* contentDocument = static_cast<HTMLFrameElementBase*>(element)->contentDocument();
+ if (contentDocument && !checkNodeSecurity(exec, contentDocument))
+ return false;
+ }
+ return true;
+}
+
void printErrorMessageForFrame(Frame* frame, const String& message)
{
if (!frame)
diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h
index 219472b..40f7e40 100644
--- a/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h
+++ b/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h
@@ -301,6 +301,8 @@ namespace WebCore {
bool allowsAccessFromFrame(JSC::ExecState*, Frame*);
bool allowsAccessFromFrame(JSC::ExecState*, Frame*, String& message);
bool shouldAllowNavigation(JSC::ExecState*, Frame*);
+ bool allowSettingSrcToJavascriptURL(JSC::ExecState*, Element*, const String&, const String&);
+
void printErrorMessageForFrame(Frame*, const String& message);
JSC::JSValue objectToStringFunctionGetter(JSC::ExecState*, JSC::JSValue, const JSC::Identifier& propertyName);
diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSElementCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSElementCustom.cpp
index c725290..94012fd 100644
--- a/src/3rdparty/webkit/WebCore/bindings/js/JSElementCustom.cpp
+++ b/src/3rdparty/webkit/WebCore/bindings/js/JSElementCustom.cpp
@@ -36,6 +36,7 @@
#include "HTMLFrameElementBase.h"
#include "HTMLNames.h"
#include "JSAttr.h"
+#include "JSDOMBinding.h"
#include "JSHTMLElementWrapperFactory.h"
#include "JSNodeList.h"
#include "NodeList.h"
@@ -63,16 +64,6 @@ void JSElement::markChildren(MarkStack& markStack)
markDOMObjectWrapper(markStack, globalData, static_cast<StyledElement*>(element)->inlineStyleDecl());
}
-static inline bool allowSettingSrcToJavascriptURL(ExecState* exec, Element* element, const String& name, const String& value)
-{
- if ((element->hasTagName(iframeTag) || element->hasTagName(frameTag)) && equalIgnoringCase(name, "src") && protocolIsJavaScript(deprecatedParseURL(value))) {
- Document* contentDocument = static_cast<HTMLFrameElementBase*>(element)->contentDocument();
- if (contentDocument && !checkNodeSecurity(exec, contentDocument))
- return false;
- }
- return true;
-}
-
JSValue JSElement::setAttribute(ExecState* exec, const ArgList& args)
{
ExceptionCode ec = 0;
diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodeMapCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodeMapCustom.cpp
index 13f3628..965498a 100644
--- a/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodeMapCustom.cpp
+++ b/src/3rdparty/webkit/WebCore/bindings/js/JSNamedNodeMapCustom.cpp
@@ -35,6 +35,38 @@ using namespace JSC;
namespace WebCore {
+JSValue JSNamedNodeMap::setNamedItem(ExecState* exec, const ArgList& args)
+{
+ NamedNodeMap* imp = static_cast<NamedNodeMap*>(impl());
+ ExceptionCode ec = 0;
+ Node* newNode = toNode(args.at(0));
+
+ if (newNode && newNode->nodeType() == Node::ATTRIBUTE_NODE && imp->element()) {
+ if (!allowSettingSrcToJavascriptURL(exec, imp->element(), newNode->nodeName(), newNode->nodeValue()))
+ return jsNull();
+ }
+
+ JSValue result = toJS(exec, globalObject(), WTF::getPtr(imp->setNamedItem(newNode, ec)));
+ setDOMException(exec, ec);
+ return result;
+}
+
+JSValue JSNamedNodeMap::setNamedItemNS(ExecState* exec, const ArgList& args)
+{
+ NamedNodeMap* imp = static_cast<NamedNodeMap*>(impl());
+ ExceptionCode ec = 0;
+ Node* newNode = toNode(args.at(0));
+
+ if (newNode && newNode->nodeType() == Node::ATTRIBUTE_NODE && imp->element()) {
+ if (!allowSettingSrcToJavascriptURL(exec, imp->element(), newNode->nodeName(), newNode->nodeValue()))
+ return jsNull();
+ }
+
+ JSValue result = toJS(exec, globalObject(), WTF::getPtr(imp->setNamedItemNS(newNode, ec)));
+ setDOMException(exec, ec);
+ return result;
+}
+
bool JSNamedNodeMap::canGetItemsForName(ExecState*, NamedNodeMap* impl, const Identifier& propertyName)
{
return impl->getNamedItem(propertyName);
diff --git a/src/3rdparty/webkit/WebCore/bindings/js/JSNodeCustom.cpp b/src/3rdparty/webkit/WebCore/bindings/js/JSNodeCustom.cpp
index 134c581..bf6c633 100644
--- a/src/3rdparty/webkit/WebCore/bindings/js/JSNodeCustom.cpp
+++ b/src/3rdparty/webkit/WebCore/bindings/js/JSNodeCustom.cpp
@@ -38,6 +38,7 @@
#include "JSAttr.h"
#include "JSCDATASection.h"
#include "JSComment.h"
+#include "JSDOMBinding.h"
#include "JSDocument.h"
#include "JSDocumentFragment.h"
#include "JSDocumentType.h"
@@ -66,12 +67,53 @@ using namespace JSC;
namespace WebCore {
-typedef int ExpectionCode;
+static inline bool isAttrFrameSrc(Element *element, const String& name)
+{
+ return element && (element->hasTagName(HTMLNames::iframeTag) || element->hasTagName(HTMLNames::frameTag)) && equalIgnoringCase(name, "src");
+}
+
+void JSNode::setNodeValue(JSC::ExecState* exec, JSC::JSValue value)
+{
+ Node* imp = static_cast<Node*>(impl());
+ String nodeValue = valueToStringWithNullCheck(exec, value);
+
+ if (imp->nodeType() == Node::ATTRIBUTE_NODE) {
+ Element* ownerElement = static_cast<Attr*>(impl())->ownerElement();
+ if (ownerElement && !allowSettingSrcToJavascriptURL(exec, ownerElement, imp->nodeName(), nodeValue))
+ return;
+ }
+
+ ExceptionCode ec = 0;
+ imp->setNodeValue(nodeValue, ec);
+ setDOMException(exec, ec);
+}
+
+void JSNode::setTextContent(JSC::ExecState* exec, JSC::JSValue value)
+{
+ Node* imp = static_cast<Node*>(impl());
+ String nodeValue = valueToStringWithNullCheck(exec, value);
+
+ if (imp->nodeType() == Node::ATTRIBUTE_NODE) {
+ Element* ownerElement = static_cast<Attr*>(impl())->ownerElement();
+ if (ownerElement && !allowSettingSrcToJavascriptURL(exec, ownerElement, imp->nodeName(), nodeValue))
+ return;
+ }
+
+ ExceptionCode ec = 0;
+ imp->setTextContent(nodeValue, ec);
+ setDOMException(exec, ec);
+}
JSValue JSNode::insertBefore(ExecState* exec, const ArgList& args)
{
+ Node* imp = static_cast<Node*>(impl());
+ if (imp->nodeType() == Node::ATTRIBUTE_NODE && isAttrFrameSrc(static_cast<Attr*>(impl())->ownerElement(), imp->nodeName())) {
+ setDOMException(exec, NOT_SUPPORTED_ERR);
+ return jsNull();
+ }
+
ExceptionCode ec = 0;
- bool ok = impl()->insertBefore(toNode(args.at(0)), toNode(args.at(1)), ec, true);
+ bool ok = imp->insertBefore(toNode(args.at(0)), toNode(args.at(1)), ec, true);
setDOMException(exec, ec);
if (ok)
return args.at(0);
@@ -80,8 +122,14 @@ JSValue JSNode::insertBefore(ExecState* exec, const ArgList& args)
JSValue JSNode::replaceChild(ExecState* exec, const ArgList& args)
{
+ Node* imp = static_cast<Node*>(impl());
+ if (imp->nodeType() == Node::ATTRIBUTE_NODE && isAttrFrameSrc(static_cast<Attr*>(impl())->ownerElement(), imp->nodeName())) {
+ setDOMException(exec, NOT_SUPPORTED_ERR);
+ return jsNull();
+ }
+
ExceptionCode ec = 0;
- bool ok = impl()->replaceChild(toNode(args.at(0)), toNode(args.at(1)), ec, true);
+ bool ok = imp->replaceChild(toNode(args.at(0)), toNode(args.at(1)), ec, true);
setDOMException(exec, ec);
if (ok)
return args.at(1);
@@ -90,8 +138,14 @@ JSValue JSNode::replaceChild(ExecState* exec, const ArgList& args)
JSValue JSNode::removeChild(ExecState* exec, const ArgList& args)
{
+ Node* imp = static_cast<Node*>(impl());
+ if (imp->nodeType() == Node::ATTRIBUTE_NODE && isAttrFrameSrc(static_cast<Attr*>(impl())->ownerElement(), imp->nodeName())) {
+ setDOMException(exec, NOT_SUPPORTED_ERR);
+ return jsNull();
+ }
+
ExceptionCode ec = 0;
- bool ok = impl()->removeChild(toNode(args.at(0)), ec);
+ bool ok = imp->removeChild(toNode(args.at(0)), ec);
setDOMException(exec, ec);
if (ok)
return args.at(0);
@@ -100,8 +154,14 @@ JSValue JSNode::removeChild(ExecState* exec, const ArgList& args)
JSValue JSNode::appendChild(ExecState* exec, const ArgList& args)
{
+ Node* imp = static_cast<Node*>(impl());
+ if (imp->nodeType() == Node::ATTRIBUTE_NODE && isAttrFrameSrc(static_cast<Attr*>(impl())->ownerElement(), imp->nodeName())) {
+ setDOMException(exec, NOT_SUPPORTED_ERR);
+ return jsNull();
+ }
+
ExceptionCode ec = 0;
- bool ok = impl()->appendChild(toNode(args.at(0)), ec, true);
+ bool ok = imp->appendChild(toNode(args.at(0)), ec, true);
setDOMException(exec, ec);
if (ok)
return args.at(0);
diff --git a/src/3rdparty/webkit/WebCore/css/CSSHelper.cpp b/src/3rdparty/webkit/WebCore/css/CSSHelper.cpp
index 8e6f3a0..c3418b4 100644
--- a/src/3rdparty/webkit/WebCore/css/CSSHelper.cpp
+++ b/src/3rdparty/webkit/WebCore/css/CSSHelper.cpp
@@ -36,7 +36,7 @@ String deprecatedParseURL(const String& url)
int o = 0;
int l = i->length();
- while (o < l && (*i)[o] <= ' ') {
+ while (0 < l && (*i)[o] <= ' ') {
++o;
--l;
}
@@ -53,7 +53,7 @@ String deprecatedParseURL(const String& url)
l -= 5;
}
- while (o < l && (*i)[o] <= ' ') {
+ while (0 < l && (*i)[o] <= ' ') {
++o;
--l;
}
@@ -65,7 +65,7 @@ String deprecatedParseURL(const String& url)
l -= 2;
}
- while (o < l && (*i)[o] <= ' ') {
+ while (0 < l && (*i)[o] <= ' ') {
++o;
--l;
}
diff --git a/src/3rdparty/webkit/WebCore/dom/Attr.idl b/src/3rdparty/webkit/WebCore/dom/Attr.idl
index af84478..3c73bc0 100644
--- a/src/3rdparty/webkit/WebCore/dom/Attr.idl
+++ b/src/3rdparty/webkit/WebCore/dom/Attr.idl
@@ -28,7 +28,9 @@ module core {
// DOM Level 1
readonly attribute [ConvertNullStringTo=Null] DOMString name;
+
readonly attribute boolean specified;
+
attribute [ConvertNullStringTo=Null, ConvertNullToNullString, CustomSetter] DOMString value
setter raises(DOMException);
diff --git a/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp b/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp
index fb2852f..c17489a 100644
--- a/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp
@@ -292,19 +292,32 @@ void ContainerNode::willRemove()
Node::willRemove();
}
-static ExceptionCode willRemoveChild(Node *child)
+static void willRemoveChild(Node* child)
{
- ExceptionCode ec = 0;
+ // update auxiliary doc info (e.g. iterators) to note that node is being removed
+ child->document()->nodeWillBeRemoved(child);
+ child->document()->incDOMTreeVersion();
// fire removed from document mutation events.
dispatchChildRemovalEvents(child);
- if (ec)
- return ec;
if (child->attached())
child->willRemove();
-
- return 0;
+}
+
+static void willRemoveChildren(ContainerNode* container)
+{
+ container->document()->nodeChildrenWillBeRemoved(container);
+ container->document()->incDOMTreeVersion();
+
+ // FIXME: Adding new children from event handlers can cause an infinite loop here.
+ for (RefPtr<Node> child = container->firstChild(); child; child = child->nextSibling()) {
+ // fire removed from document mutation events.
+ dispatchChildRemovalEvents(child.get());
+
+ if (child->attached())
+ child->willRemove();
+ }
}
bool ContainerNode::removeChild(Node* oldChild, ExceptionCode& ec)
@@ -328,10 +341,7 @@ bool ContainerNode::removeChild(Node* oldChild, ExceptionCode& ec)
}
RefPtr<Node> child = oldChild;
-
- ec = willRemoveChild(child.get());
- if (ec)
- return false;
+ willRemoveChild(child.get());
// Mutation events might have moved this child into a different parent.
if (child->parentNode() != this) {
@@ -399,14 +409,12 @@ bool ContainerNode::removeChildren()
return false;
// The container node can be removed from event handlers.
- RefPtr<Node> protect(this);
-
+ RefPtr<ContainerNode> protect(this);
+
// Do any prep work needed before actually starting to detach
// and remove... e.g. stop loading frames, fire unload events.
- // FIXME: Adding new children from event handlers can cause an infinite loop here.
- for (RefPtr<Node> n = m_firstChild; n; n = n->nextSibling())
- willRemoveChild(n.get());
-
+ willRemoveChildren(protect.get());
+
// exclude this node when looking for removed focusedNode since only children will be removed
document()->removeFocusedNodeOfSubtree(this, true);
@@ -936,6 +944,8 @@ static void dispatchChildInsertionEvents(Node* child)
static void dispatchChildRemovalEvents(Node* child)
{
+ ASSERT(!eventDispatchForbidden());
+
#if ENABLE(INSPECTOR)
if (Page* page = child->document()->page()) {
if (InspectorController* inspectorController = page->inspectorController())
@@ -946,11 +956,6 @@ static void dispatchChildRemovalEvents(Node* child)
RefPtr<Node> c = child;
RefPtr<Document> document = child->document();
- // update auxiliary doc info (e.g. iterators) to note that node is being removed
- document->nodeWillBeRemoved(child);
-
- document->incDOMTreeVersion();
-
// dispatch pre-removal mutation events
if (c->parentNode() && document->hasListenerType(Document::DOMNODEREMOVED_LISTENER))
c->dispatchEvent(MutationEvent::create(eventNames().DOMNodeRemovedEvent, true, c->parentNode()));
diff --git a/src/3rdparty/webkit/WebCore/dom/Document.cpp b/src/3rdparty/webkit/WebCore/dom/Document.cpp
index 545819d..9803cf5 100644
--- a/src/3rdparty/webkit/WebCore/dom/Document.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/Document.cpp
@@ -2957,6 +2957,28 @@ void Document::nodeChildrenChanged(ContainerNode* container)
}
}
+void Document::nodeChildrenWillBeRemoved(ContainerNode* container)
+{
+ if (!disableRangeMutation(page())) {
+ HashSet<Range*>::const_iterator end = m_ranges.end();
+ for (HashSet<Range*>::const_iterator it = m_ranges.begin(); it != end; ++it)
+ (*it)->nodeChildrenWillBeRemoved(container);
+ }
+
+ HashSet<NodeIterator*>::const_iterator nodeIteratorsEnd = m_nodeIterators.end();
+ for (HashSet<NodeIterator*>::const_iterator it = m_nodeIterators.begin(); it != nodeIteratorsEnd; ++it) {
+ for (Node* n = container->firstChild(); n; n = n->nextSibling())
+ (*it)->nodeWillBeRemoved(n);
+ }
+
+ if (Frame* frame = this->frame()) {
+ for (Node* n = container->firstChild(); n; n = n->nextSibling()) {
+ frame->selection()->nodeWillBeRemoved(n);
+ frame->dragCaretController()->nodeWillBeRemoved(n);
+ }
+ }
+}
+
void Document::nodeWillBeRemoved(Node* n)
{
HashSet<NodeIterator*>::const_iterator nodeIteratorsEnd = m_nodeIterators.end();
diff --git a/src/3rdparty/webkit/WebCore/dom/Document.h b/src/3rdparty/webkit/WebCore/dom/Document.h
index 44cdf0d..68927f4 100644
--- a/src/3rdparty/webkit/WebCore/dom/Document.h
+++ b/src/3rdparty/webkit/WebCore/dom/Document.h
@@ -616,6 +616,9 @@ public:
void detachRange(Range*);
void nodeChildrenChanged(ContainerNode*);
+ // nodeChildrenWillBeRemoved is used when removing all node children at once.
+ void nodeChildrenWillBeRemoved(ContainerNode*);
+ // nodeWillBeRemoved is only safe when removing one node at a time.
void nodeWillBeRemoved(Node*);
void textInserted(Node*, unsigned offset, unsigned length);
diff --git a/src/3rdparty/webkit/WebCore/dom/Element.cpp b/src/3rdparty/webkit/WebCore/dom/Element.cpp
index 6bd512d..a02bb4c 100644
--- a/src/3rdparty/webkit/WebCore/dom/Element.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/Element.cpp
@@ -937,7 +937,7 @@ void Element::recalcStyle(StyleChange change)
newStyle->setChildrenAffectedByDirectAdjacentRules();
}
- if (ch != NoChange || pseudoStyleCacheIsInvalid(currentStyle.get(), newStyle.get())) {
+ if (ch != NoChange || pseudoStyleCacheIsInvalid(currentStyle.get(), newStyle.get()) || change == Force && renderer() && renderer()->requiresForcedStyleRecalcPropagation()) {
setRenderStyle(newStyle);
} else if (needsStyleRecalc() && (styleChangeType() != SyntheticStyleChange) && (document()->usesSiblingRules() || document()->usesDescendantRules())) {
// Although no change occurred, we use the new style so that the cousin style sharing code won't get
@@ -1429,9 +1429,15 @@ void Element::normalizeAttributes()
NamedNodeMap* attrs = attributes(true);
if (!attrs)
return;
- unsigned numAttrs = attrs->length();
- for (unsigned i = 0; i < numAttrs; i++) {
- if (Attr* attr = attrs->attributeItem(i)->attr())
+
+ if (attrs->isEmpty())
+ return;
+
+ Vector<RefPtr<Attribute> > attributeVector;
+ attrs->copyAttributesToVector(attributeVector);
+ size_t numAttrs = attributeVector.size();
+ for (size_t i = 0; i < numAttrs; ++i) {
+ if (Attr* attr = attributeVector[i]->attr())
attr->normalize();
}
}
diff --git a/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp b/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp
index d8a6ba8..ee979cf 100644
--- a/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.cpp
@@ -172,6 +172,11 @@ PassRefPtr<Node> NamedNodeMap::item(unsigned index) const
return m_attributes[index]->createAttrIfNeeded(m_element);
}
+void NamedNodeMap::copyAttributesToVector(Vector<RefPtr<Attribute> >& copy)
+{
+ copy = m_attributes;
+}
+
Attribute* NamedNodeMap::getAttributeItemSlowCase(const String& name, bool shouldIgnoreAttributeCase) const
{
unsigned len = length();
diff --git a/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.h b/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.h
index d5136b5..e292576 100644
--- a/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.h
+++ b/src/3rdparty/webkit/WebCore/dom/NamedAttrMap.h
@@ -72,6 +72,8 @@ public:
Attribute* attributeItem(unsigned index) const { return m_attributes[index].get(); }
Attribute* getAttributeItem(const QualifiedName&) const;
+ void copyAttributesToVector(Vector<RefPtr<Attribute> >&);
+
void shrinkToLength() { m_attributes.shrinkCapacity(length()); }
void reserveInitialCapacity(unsigned capacity) { m_attributes.reserveInitialCapacity(capacity); }
diff --git a/src/3rdparty/webkit/WebCore/dom/NamedNodeMap.idl b/src/3rdparty/webkit/WebCore/dom/NamedNodeMap.idl
index 4d36577..7bfbf23 100644
--- a/src/3rdparty/webkit/WebCore/dom/NamedNodeMap.idl
+++ b/src/3rdparty/webkit/WebCore/dom/NamedNodeMap.idl
@@ -28,7 +28,7 @@ module core {
Node getNamedItem(in DOMString name);
- Node setNamedItem(in Node node)
+ [Custom] Node setNamedItem(in Node node)
raises(DOMException);
Node removeNamedItem(in DOMString name)
@@ -46,7 +46,7 @@ module core {
// FIXME: the implementation does take an exceptioncode parameter.
/*raises(DOMException)*/;
- Node setNamedItemNS(in Node node)
+ [Custom] Node setNamedItemNS(in Node node)
raises(DOMException);
[OldStyleObjC] Node removeNamedItemNS(in [ConvertNullToNullString] DOMString namespaceURI,
diff --git a/src/3rdparty/webkit/WebCore/dom/Node.idl b/src/3rdparty/webkit/WebCore/dom/Node.idl
index 0489316..22d9a85 100644
--- a/src/3rdparty/webkit/WebCore/dom/Node.idl
+++ b/src/3rdparty/webkit/WebCore/dom/Node.idl
@@ -51,7 +51,7 @@ module core {
readonly attribute [ConvertNullStringTo=Null] DOMString nodeName;
// FIXME: the spec says this can also raise on retrieval.
- attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString nodeValue
+ attribute [CustomSetter, ConvertNullStringTo=Null, ConvertNullToNullString] DOMString nodeValue
setter raises(DOMException);
readonly attribute unsigned short nodeType;
@@ -96,7 +96,7 @@ module core {
readonly attribute [ConvertNullStringTo=Null] DOMString baseURI;
// FIXME: the spec says this can also raise on retrieval.
- attribute [ConvertNullStringTo=Null, ConvertNullToNullString] DOMString textContent
+ attribute [CustomSetter, ConvertNullStringTo=Null, ConvertNullToNullString] DOMString textContent
setter raises(DOMException);
boolean isSameNode(in Node other);
diff --git a/src/3rdparty/webkit/WebCore/dom/Range.cpp b/src/3rdparty/webkit/WebCore/dom/Range.cpp
index 52d1785..689b590 100644
--- a/src/3rdparty/webkit/WebCore/dom/Range.cpp
+++ b/src/3rdparty/webkit/WebCore/dom/Range.cpp
@@ -1716,6 +1716,31 @@ void Range::nodeChildrenChanged(ContainerNode* container)
boundaryNodeChildrenChanged(m_end, container);
}
+static inline void boundaryNodeChildrenWillBeRemoved(RangeBoundaryPoint& boundary, ContainerNode* container)
+{
+ for (Node* nodeToBeRemoved = container->firstChild(); nodeToBeRemoved; nodeToBeRemoved = nodeToBeRemoved->nextSibling()) {
+ if (boundary.childBefore() == nodeToBeRemoved) {
+ boundary.setToStartOfNode(container);
+ return;
+ }
+
+ for (Node* n = boundary.container(); n; n = n->parentNode()) {
+ if (n == nodeToBeRemoved) {
+ boundary.setToStartOfNode(container);
+ return;
+ }
+ }
+ }
+}
+
+void Range::nodeChildrenWillBeRemoved(ContainerNode* container)
+{
+ ASSERT(container);
+ ASSERT(container->document() == m_ownerDocument);
+ boundaryNodeChildrenWillBeRemoved(m_start, container);
+ boundaryNodeChildrenWillBeRemoved(m_end, container);
+}
+
static inline void boundaryNodeWillBeRemoved(RangeBoundaryPoint& boundary, Node* nodeToBeRemoved)
{
if (boundary.childBefore() == nodeToBeRemoved) {
diff --git a/src/3rdparty/webkit/WebCore/dom/Range.h b/src/3rdparty/webkit/WebCore/dom/Range.h
index fd0f66a..bfddd32 100644
--- a/src/3rdparty/webkit/WebCore/dom/Range.h
+++ b/src/3rdparty/webkit/WebCore/dom/Range.h
@@ -111,6 +111,7 @@ public:
void textQuads(Vector<FloatQuad>&, bool useSelectionHeight = false);
void nodeChildrenChanged(ContainerNode*);
+ void nodeChildrenWillBeRemoved(ContainerNode*);
void nodeWillBeRemoved(Node*);
void textInserted(Node*, unsigned offset, unsigned length);
diff --git a/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp b/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp
index 34fa46d..4cb34ac 100644
--- a/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp
+++ b/src/3rdparty/webkit/WebCore/editing/EditorCommand.cpp
@@ -1069,6 +1069,21 @@ static bool supportedFromMenuOrKeyBinding(Frame*, EditorCommandSource source)
return source == CommandFromMenuOrKeyBinding;
}
+static bool supportedCopyCut(Frame* frame, EditorCommandSource source)
+{
+ switch (source) {
+ case CommandFromMenuOrKeyBinding:
+ return true;
+ case CommandFromDOM:
+ case CommandFromDOMWithUserInterface: {
+ Settings* settings = frame ? frame->settings() : 0;
+ return settings && settings->javaScriptCanAccessClipboard();
+ }
+ }
+ ASSERT_NOT_REACHED();
+ return false;
+}
+
static bool supportedPaste(Frame* frame, EditorCommandSource source)
{
switch (source) {
@@ -1077,7 +1092,7 @@ static bool supportedPaste(Frame* frame, EditorCommandSource source)
case CommandFromDOM:
case CommandFromDOMWithUserInterface: {
Settings* settings = frame ? frame->settings() : 0;
- return settings && settings->isDOMPasteAllowed();
+ return settings && (settings->javaScriptCanAccessClipboard() ? settings->isDOMPasteAllowed() : 0);
}
}
ASSERT_NOT_REACHED();
@@ -1304,9 +1319,9 @@ static const CommandMap& createCommandMap()
{ "BackColor", { executeBackColor, supported, enabledInRichlyEditableText, stateNone, valueBackColor, notTextInsertion, doNotAllowExecutionWhenDisabled } },
{ "BackwardDelete", { executeDeleteBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } }, // FIXME: remove BackwardDelete when Safari for Windows stops using it.
{ "Bold", { executeToggleBold, supported, enabledInRichlyEditableText, stateBold, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Copy", { executeCopy, supported, enabledCopy, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
+ { "Copy", { executeCopy, supportedCopyCut, enabledCopy, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
{ "CreateLink", { executeCreateLink, supported, enabledInRichlyEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
- { "Cut", { executeCut, supported, enabledCut, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
+ { "Cut", { executeCut, supportedCopyCut, enabledCut, stateNone, valueNull, notTextInsertion, allowExecutionWhenDisabled } },
{ "Delete", { executeDelete, supported, enabledDelete, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
{ "DeleteBackward", { executeDeleteBackward, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
{ "DeleteBackwardByDecomposingPreviousCharacter", { executeDeleteBackwardByDecomposingPreviousCharacter, supportedFromMenuOrKeyBinding, enabledInEditableText, stateNone, valueNull, notTextInsertion, doNotAllowExecutionWhenDisabled } },
diff --git a/src/3rdparty/webkit/WebCore/editing/markup.cpp b/src/3rdparty/webkit/WebCore/editing/markup.cpp
index 787dad9..7e90107 100644
--- a/src/3rdparty/webkit/WebCore/editing/markup.cpp
+++ b/src/3rdparty/webkit/WebCore/editing/markup.cpp
@@ -404,10 +404,12 @@ static void appendStartMarkup(Vector<UChar>& result, const Node* node, const Ran
if (Node* parent = node->parentNode()) {
if (parent->hasTagName(scriptTag)
|| parent->hasTagName(styleTag)
- || parent->hasTagName(textareaTag)
|| parent->hasTagName(xmpTag)) {
appendUCharRange(result, ucharRange(node, range));
break;
+ } else if (parent->hasTagName(textareaTag)) {
+ appendEscapedContent(result, ucharRange(node, range), documentIsHTML);
+ break;
}
}
if (!annotate) {
diff --git a/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp b/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp
index 7aed66c..1232cfc 100644
--- a/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.cpp
@@ -264,14 +264,7 @@ JSValue JSC_HOST_CALL jsNamedNodeMapPrototypeFunctionSetNamedItem(ExecState* exe
if (!thisValue.inherits(&JSNamedNodeMap::s_info))
return throwError(exec, TypeError);
JSNamedNodeMap* castedThisObj = static_cast<JSNamedNodeMap*>(asObject(thisValue));
- NamedNodeMap* imp = static_cast<NamedNodeMap*>(castedThisObj->impl());
- ExceptionCode ec = 0;
- Node* node = toNode(args.at(0));
-
-
- JSC::JSValue result = toJS(exec, castedThisObj->globalObject(), WTF::getPtr(imp->setNamedItem(node, ec)));
- setDOMException(exec, ec);
- return result;
+ return castedThisObj->setNamedItem(exec, args);
}
JSValue JSC_HOST_CALL jsNamedNodeMapPrototypeFunctionRemoveNamedItem(ExecState* exec, JSObject*, JSValue thisValue, const ArgList& args)
@@ -325,14 +318,7 @@ JSValue JSC_HOST_CALL jsNamedNodeMapPrototypeFunctionSetNamedItemNS(ExecState* e
if (!thisValue.inherits(&JSNamedNodeMap::s_info))
return throwError(exec, TypeError);
JSNamedNodeMap* castedThisObj = static_cast<JSNamedNodeMap*>(asObject(thisValue));
- NamedNodeMap* imp = static_cast<NamedNodeMap*>(castedThisObj->impl());
- ExceptionCode ec = 0;
- Node* node = toNode(args.at(0));
-
-
- JSC::JSValue result = toJS(exec, castedThisObj->globalObject(), WTF::getPtr(imp->setNamedItemNS(node, ec)));
- setDOMException(exec, ec);
- return result;
+ return castedThisObj->setNamedItemNS(exec, args);
}
JSValue JSC_HOST_CALL jsNamedNodeMapPrototypeFunctionRemoveNamedItemNS(ExecState* exec, JSObject*, JSValue thisValue, const ArgList& args)
diff --git a/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.h b/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.h
index 0fa1fdf..b79e97c 100644
--- a/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.h
+++ b/src/3rdparty/webkit/WebCore/generated/JSNamedNodeMap.h
@@ -50,6 +50,10 @@ public:
virtual void getOwnPropertyNames(JSC::ExecState*, JSC::PropertyNameArray&, JSC::EnumerationMode mode = JSC::ExcludeDontEnumProperties);
static JSC::JSValue getConstructor(JSC::ExecState*, JSC::JSGlobalObject*);
+
+ // Custom functions
+ JSC::JSValue setNamedItem(JSC::ExecState*, const JSC::ArgList&);
+ JSC::JSValue setNamedItemNS(JSC::ExecState*, const JSC::ArgList&);
NamedNodeMap* impl() const { return m_impl.get(); }
private:
diff --git a/src/3rdparty/webkit/WebCore/generated/JSNode.cpp b/src/3rdparty/webkit/WebCore/generated/JSNode.cpp
index 47dafd4..1e16be6 100644
--- a/src/3rdparty/webkit/WebCore/generated/JSNode.cpp
+++ b/src/3rdparty/webkit/WebCore/generated/JSNode.cpp
@@ -394,11 +394,7 @@ void JSNode::put(ExecState* exec, const Identifier& propertyName, JSValue value,
void setJSNodeNodeValue(ExecState* exec, JSObject* thisObject, JSValue value)
{
- JSNode* castedThisObj = static_cast<JSNode*>(thisObject);
- Node* imp = static_cast<Node*>(castedThisObj->impl());
- ExceptionCode ec = 0;
- imp->setNodeValue(valueToStringWithNullCheck(exec, value), ec);
- setDOMException(exec, ec);
+ static_cast<JSNode*>(thisObject)->setNodeValue(exec, value);
}
void setJSNodePrefix(ExecState* exec, JSObject* thisObject, JSValue value)
@@ -412,11 +408,7 @@ void setJSNodePrefix(ExecState* exec, JSObject* thisObject, JSValue value)
void setJSNodeTextContent(ExecState* exec, JSObject* thisObject, JSValue value)
{
- JSNode* castedThisObj = static_cast<JSNode*>(thisObject);
- Node* imp = static_cast<Node*>(castedThisObj->impl());
- ExceptionCode ec = 0;
- imp->setTextContent(valueToStringWithNullCheck(exec, value), ec);
- setDOMException(exec, ec);
+ static_cast<JSNode*>(thisObject)->setTextContent(exec, value);
}
JSValue JSNode::getConstructor(ExecState* exec, JSGlobalObject* globalObject)
diff --git a/src/3rdparty/webkit/WebCore/generated/JSNode.h b/src/3rdparty/webkit/WebCore/generated/JSNode.h
index be6dd23..e2c82c4 100644
--- a/src/3rdparty/webkit/WebCore/generated/JSNode.h
+++ b/src/3rdparty/webkit/WebCore/generated/JSNode.h
@@ -54,6 +54,10 @@ public:
static JSC::JSValue getConstructor(JSC::ExecState*, JSC::JSGlobalObject*);
+ // Custom attributes
+ void setNodeValue(JSC::ExecState*, JSC::JSValue);
+ void setTextContent(JSC::ExecState*, JSC::JSValue);
+
// Custom functions
JSC::JSValue insertBefore(JSC::ExecState*, const JSC::ArgList&);
JSC::JSValue replaceChild(JSC::ExecState*, const JSC::ArgList&);
diff --git a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index 9cec7a9..73a572e 100644
--- a/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/src/3rdparty/webkit/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -1215,7 +1215,7 @@ PassRefPtr<CanvasPattern> CanvasRenderingContext2D::createPattern(HTMLImageEleme
if (!cachedImage || !image->cachedImage()->image())
return CanvasPattern::create(Image::nullImage(), repeatX, repeatY, true);
- bool originClean = !canvas()->document()->securityOrigin()->taintsCanvas(KURL(KURL(), cachedImage->url()));
+ bool originClean = !canvas()->document()->securityOrigin()->taintsCanvas(KURL(KURL(), cachedImage->url())) && cachedImage->image()->hasSingleSecurityOrigin();
return CanvasPattern::create(cachedImage->image(), repeatX, repeatY, originClean);
}
diff --git a/src/3rdparty/webkit/WebCore/loader/DocumentThreadableLoader.cpp b/src/3rdparty/webkit/WebCore/loader/DocumentThreadableLoader.cpp
index de0a0b0..55f51ac 100644
--- a/src/3rdparty/webkit/WebCore/loader/DocumentThreadableLoader.cpp
+++ b/src/3rdparty/webkit/WebCore/loader/DocumentThreadableLoader.cpp
@@ -81,16 +81,19 @@ DocumentThreadableLoader::DocumentThreadableLoader(Document* document, Threadabl
ASSERT(m_options.crossOriginRequestPolicy == UseAccessControl);
- if (!m_options.forcePreflight && isSimpleCrossOriginAccessRequest(request.httpMethod(), request.httpHeaderFields()))
- makeSimpleCrossOriginAccessRequest(request);
+ OwnPtr<ResourceRequest> crossOriginRequest(new ResourceRequest(request));
+ crossOriginRequest->removeCredentials();
+ crossOriginRequest->setAllowCookies(m_options.allowCredentials);
+
+ if (!m_options.forcePreflight && isSimpleCrossOriginAccessRequest(crossOriginRequest->httpMethod(), crossOriginRequest->httpHeaderFields()))
+ makeSimpleCrossOriginAccessRequest(*crossOriginRequest);
else {
- m_actualRequest.set(new ResourceRequest(request));
- m_actualRequest->setAllowCookies(m_options.allowCredentials);
+ m_actualRequest.set(crossOriginRequest.release());
- if (CrossOriginPreflightResultCache::shared().canSkipPreflight(document->securityOrigin()->toString(), request.url(), m_options.allowCredentials, request.httpMethod(), request.httpHeaderFields()))
+ if (CrossOriginPreflightResultCache::shared().canSkipPreflight(document->securityOrigin()->toString(), m_actualRequest->url(), m_options.allowCredentials, m_actualRequest->httpMethod(), m_actualRequest->httpHeaderFields()))
preflightSuccess();
else
- makeCrossOriginAccessRequestWithPreflight(request);
+ makeCrossOriginAccessRequestWithPreflight(*m_actualRequest);
}
}
@@ -106,8 +109,6 @@ void DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest(const Resource
// Make a copy of the passed request so that we can modify some details.
ResourceRequest crossOriginRequest(request);
- crossOriginRequest.removeCredentials();
- crossOriginRequest.setAllowCookies(m_options.allowCredentials);
crossOriginRequest.setHTTPOrigin(m_document->securityOrigin()->toString());
loadRequest(crossOriginRequest, DoSecurityCheck);
@@ -287,11 +288,17 @@ void DocumentThreadableLoader::preflightSuccess()
void DocumentThreadableLoader::preflightFailure()
{
+ m_actualRequest = 0; // Prevent didFinishLoading() from bypassing access check.
m_client->didFail(ResourceError());
}
void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, SecurityCheckPolicy securityCheck)
{
+ // Any credential should have been removed from the cross-site requests.
+ const KURL& requestURL = request.url();
+ ASSERT(m_sameOriginRequest || requestURL.user().isEmpty());
+ ASSERT(m_sameOriginRequest || requestURL.pass().isEmpty());
+
if (m_async) {
// Don't sniff content or send load callbacks for the preflight request.
bool sendLoadCallbacks = m_options.sendLoadCallbacks && !m_actualRequest;
@@ -315,15 +322,15 @@ void DocumentThreadableLoader::loadRequest(const ResourceRequest& request, Secur
// No exception for file:/// resources, see <rdar://problem/4962298>.
// Also, if we have an HTTP response, then it wasn't a network error in fact.
- if (!error.isNull() && !request.url().isLocalFile() && response.httpStatusCode() <= 0) {
+ if (!error.isNull() && !requestURL.isLocalFile() && response.httpStatusCode() <= 0) {
m_client->didFail(error);
return;
}
// FIXME: FrameLoader::loadSynchronously() does not tell us whether a redirect happened or not, so we guess by comparing the
// request and response URLs. This isn't a perfect test though, since a server can serve a redirect to the same URL that was
- // requested.
- if (request.url() != response.url() && !isAllowedRedirect(response.url())) {
+ // requested. Also comparing the request and response URLs as strings will fail if the requestURL still has its credentials.
+ if (requestURL != response.url() && !isAllowedRedirect(response.url())) {
m_client->didFailRedirectCheck();
return;
}
diff --git a/src/3rdparty/webkit/WebCore/page/DragController.cpp b/src/3rdparty/webkit/WebCore/page/DragController.cpp
index f238b27..0da6873 100644
--- a/src/3rdparty/webkit/WebCore/page/DragController.cpp
+++ b/src/3rdparty/webkit/WebCore/page/DragController.cpp
@@ -313,7 +313,7 @@ bool DragController::tryDocumentDrag(DragData* dragData, DragDestinationAction a
}
IntPoint point = frameView->windowToContents(dragData->clientPosition());
- Element* element = elementUnderMouse(m_documentUnderMouse, point);
+ Element* element = elementUnderMouse(m_documentUnderMouse.get(), point);
if (!asFileInput(element)) {
VisibleSelection dragCaret = m_documentUnderMouse->frame()->visiblePositionForPoint(point);
m_page->dragCaretController()->setSelection(dragCaret);
@@ -363,7 +363,7 @@ bool DragController::concludeEditDrag(DragData* dragData)
return false;
IntPoint point = m_documentUnderMouse->view()->windowToContents(dragData->clientPosition());
- Element* element = elementUnderMouse(m_documentUnderMouse, point);
+ Element* element = elementUnderMouse(m_documentUnderMouse.get(), point);
Frame* innerFrame = element->ownerDocument()->frame();
ASSERT(innerFrame);
@@ -439,7 +439,7 @@ bool DragController::concludeEditDrag(DragData* dragData)
applyCommand(MoveSelectionCommand::create(fragment, dragCaret.base(), smartInsert, smartDelete));
} else {
if (setSelectionToDragCaret(innerFrame, dragCaret, range, point))
- applyCommand(ReplaceSelectionCommand::create(m_documentUnderMouse, fragment, true, dragData->canSmartReplace(), chosePlainText));
+ applyCommand(ReplaceSelectionCommand::create(m_documentUnderMouse.get(), fragment, true, dragData->canSmartReplace(), chosePlainText));
}
} else {
String text = dragData->asPlainText();
@@ -450,7 +450,7 @@ bool DragController::concludeEditDrag(DragData* dragData)
m_client->willPerformDragDestinationAction(DragDestinationActionEdit, dragData);
if (setSelectionToDragCaret(innerFrame, dragCaret, range, point))
- applyCommand(ReplaceSelectionCommand::create(m_documentUnderMouse, createFragmentFromText(range.get(), text), true, false, true));
+ applyCommand(ReplaceSelectionCommand::create(m_documentUnderMouse.get(), createFragmentFromText(range.get(), text), true, false, true));
}
loader->setAllowStaleResources(false);
diff --git a/src/3rdparty/webkit/WebCore/page/DragController.h b/src/3rdparty/webkit/WebCore/page/DragController.h
index 3b2b083..712f9ab 100644
--- a/src/3rdparty/webkit/WebCore/page/DragController.h
+++ b/src/3rdparty/webkit/WebCore/page/DragController.h
@@ -67,13 +67,11 @@ namespace WebCore {
DragOperation sourceDragOperation() const { return m_sourceDragOperation; }
void setDraggingImageURL(const KURL& url) { m_draggingImageURL = url; }
const KURL& draggingImageURL() const { return m_draggingImageURL; }
- void setDragInitiator(Document* initiator) { m_dragInitiator = initiator; m_didInitiateDrag = true; }
- Document* dragInitiator() const { return m_dragInitiator; }
void setDragOffset(const IntPoint& offset) { m_dragOffset = offset; }
const IntPoint& dragOffset() const { return m_dragOffset; }
DragSourceAction dragSourceAction() const { return m_dragSourceAction; }
- Document* documentUnderMouse() const { return m_documentUnderMouse; }
+ Document* documentUnderMouse() const { return m_documentUnderMouse.get(); }
DragDestinationAction dragDestinationAction() const { return m_dragDestinationAction; }
DragSourceAction delegateDragSourceAction(const IntPoint& pagePoint);
@@ -114,8 +112,8 @@ namespace WebCore {
Page* m_page;
DragClient* m_client;
- Document* m_documentUnderMouse; // The document the mouse was last dragged over.
- Document* m_dragInitiator; // The Document (if any) that initiated the drag.
+ RefPtr<Document> m_documentUnderMouse; // The document the mouse was last dragged over.
+ RefPtr<Document> m_dragInitiator; // The Document (if any) that initiated the drag.
DragDestinationAction m_dragDestinationAction;
DragSourceAction m_dragSourceAction;
diff --git a/src/3rdparty/webkit/WebCore/page/EventHandler.cpp b/src/3rdparty/webkit/WebCore/page/EventHandler.cpp
index 1654257..f1ee742 100644
--- a/src/3rdparty/webkit/WebCore/page/EventHandler.cpp
+++ b/src/3rdparty/webkit/WebCore/page/EventHandler.cpp
@@ -2163,7 +2163,9 @@ bool EventHandler::keyEvent(const PlatformKeyboardEvent& initialKeyEvent)
if (initialKeyEvent.type() == PlatformKeyboardEvent::RawKeyDown) {
node->dispatchEvent(keydown, ec);
- return keydown->defaultHandled() || keydown->defaultPrevented();
+ // If frame changed as a result of keydown dispatch, then return true to avoid sending a subsequent keypress message to the new frame.
+ bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page()->focusController()->focusedOrMainFrame();
+ return keydown->defaultHandled() || keydown->defaultPrevented() || changedFocusedFrame;
}
// Run input method in advance of DOM event handling. This may result in the IM
@@ -2183,7 +2185,9 @@ bool EventHandler::keyEvent(const PlatformKeyboardEvent& initialKeyEvent)
}
node->dispatchEvent(keydown, ec);
- bool keydownResult = keydown->defaultHandled() || keydown->defaultPrevented();
+ // If frame changed as a result of keydown dispatch, then return early to avoid sending a subsequent keypress message to the new frame.
+ bool changedFocusedFrame = m_frame->page() && m_frame != m_frame->page()->focusController()->focusedOrMainFrame();
+ bool keydownResult = keydown->defaultHandled() || keydown->defaultPrevented() || changedFocusedFrame;
if (handledByInputMethod || (keydownResult && !backwardCompatibilityMode))
return keydownResult;
diff --git a/src/3rdparty/webkit/WebCore/page/FrameView.cpp b/src/3rdparty/webkit/WebCore/page/FrameView.cpp
index 639414b..01f0375 100644
--- a/src/3rdparty/webkit/WebCore/page/FrameView.cpp
+++ b/src/3rdparty/webkit/WebCore/page/FrameView.cpp
@@ -1315,14 +1315,13 @@ void FrameView::scheduleRelayoutOfSubtree(RenderObject* relayoutRoot)
{
ASSERT(m_frame->view() == this);
- if (!m_layoutSchedulingEnabled || (m_frame->contentRenderer()
- && m_frame->contentRenderer()->needsLayout())) {
+ if (m_frame->contentRenderer() && m_frame->contentRenderer()->needsLayout()) {
if (relayoutRoot)
relayoutRoot->markContainingBlocksForLayout(false);
return;
}
- if (layoutPending()) {
+ if (layoutPending() || !m_layoutSchedulingEnabled) {
if (m_layoutRoot != relayoutRoot) {
if (isObjectAncestorContainerOf(m_layoutRoot, relayoutRoot)) {
// Keep the current root
@@ -1339,7 +1338,7 @@ void FrameView::scheduleRelayoutOfSubtree(RenderObject* relayoutRoot)
relayoutRoot->markContainingBlocksForLayout(false);
}
}
- } else {
+ } else if (m_layoutSchedulingEnabled) {
int delay = m_frame->document()->minimumLayoutDelay();
m_layoutRoot = relayoutRoot;
m_delayedLayout = delay != 0;
diff --git a/src/3rdparty/webkit/WebCore/page/SecurityOrigin.cpp b/src/3rdparty/webkit/WebCore/page/SecurityOrigin.cpp
index c0b3e22..516c533 100644
--- a/src/3rdparty/webkit/WebCore/page/SecurityOrigin.cpp
+++ b/src/3rdparty/webkit/WebCore/page/SecurityOrigin.cpp
@@ -90,6 +90,20 @@ static URLSchemesMap& schemesWithUniqueOrigins()
return schemesWithUniqueOrigins;
}
+static bool schemeRequiresAuthority(const String& scheme)
+{
+ DEFINE_STATIC_LOCAL(URLSchemesMap, schemes, ());
+
+ if (schemes.isEmpty()) {
+ schemes.add("http");
+ schemes.add("https");
+ schemes.add("ftp");
+ }
+
+ return schemes.contains(scheme);
+}
+
+
SecurityOrigin::SecurityOrigin(const KURL& url, SandboxFlags sandboxFlags)
: m_sandboxFlags(sandboxFlags)
, m_protocol(url.protocol().isNull() ? "" : url.protocol().lower())
@@ -103,6 +117,10 @@ SecurityOrigin::SecurityOrigin(const KURL& url, SandboxFlags sandboxFlags)
if (m_protocol == "about" || m_protocol == "javascript")
m_protocol = "";
+ // For edge case URLs that were probably misparsed, make sure that the origin is unique.
+ if (schemeRequiresAuthority(m_protocol) && m_host.isEmpty())
+ m_isUnique = true;
+
// document.domain starts as m_host, but can be set by the DOM.
m_domain = m_host;
diff --git a/src/3rdparty/webkit/WebCore/page/Settings.cpp b/src/3rdparty/webkit/WebCore/page/Settings.cpp
index 475d373..c0659d2 100644
--- a/src/3rdparty/webkit/WebCore/page/Settings.cpp
+++ b/src/3rdparty/webkit/WebCore/page/Settings.cpp
@@ -79,6 +79,7 @@ Settings::Settings(Page* page)
, m_allowUniversalAccessFromFileURLs(true)
, m_allowFileAccessFromFileURLs(true)
, m_javaScriptCanOpenWindowsAutomatically(false)
+ , m_javaScriptCanAccessClipboard(false)
, m_shouldPrintBackgrounds(false)
, m_textAreasAreResizable(false)
#if ENABLE(DASHBOARD_SUPPORT)
@@ -291,6 +292,11 @@ void Settings::setJavaScriptCanOpenWindowsAutomatically(bool javaScriptCanOpenWi
m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically;
}
+void Settings::setJavaScriptCanAccessClipboard(bool javaScriptCanAccessClipboard)
+{
+ m_javaScriptCanAccessClipboard = javaScriptCanAccessClipboard;
+}
+
void Settings::setDefaultTextEncodingName(const String& defaultTextEncodingName)
{
m_defaultTextEncodingName = defaultTextEncodingName;
diff --git a/src/3rdparty/webkit/WebCore/page/Settings.h b/src/3rdparty/webkit/WebCore/page/Settings.h
index b677712..a6653ce 100644
--- a/src/3rdparty/webkit/WebCore/page/Settings.h
+++ b/src/3rdparty/webkit/WebCore/page/Settings.h
@@ -122,6 +122,9 @@ namespace WebCore {
void setJavaScriptCanOpenWindowsAutomatically(bool);
bool javaScriptCanOpenWindowsAutomatically() const { return m_javaScriptCanOpenWindowsAutomatically; }
+ void setJavaScriptCanAccessClipboard(bool);
+ bool javaScriptCanAccessClipboard() const { return m_javaScriptCanAccessClipboard; }
+
void setSpatialNavigationEnabled(bool);
bool isSpatialNavigationEnabled() const { return m_isSpatialNavigationEnabled; }
@@ -330,6 +333,7 @@ namespace WebCore {
bool m_allowUniversalAccessFromFileURLs: 1;
bool m_allowFileAccessFromFileURLs: 1;
bool m_javaScriptCanOpenWindowsAutomatically : 1;
+ bool m_javaScriptCanAccessClipboard : 1;
bool m_shouldPrintBackgrounds : 1;
bool m_textAreasAreResizable : 1;
#if ENABLE(DASHBOARD_SUPPORT)
diff --git a/src/3rdparty/webkit/WebCore/platform/KURL.cpp b/src/3rdparty/webkit/WebCore/platform/KURL.cpp
index 40adfbc..3c8d50f 100644
--- a/src/3rdparty/webkit/WebCore/platform/KURL.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/KURL.cpp
@@ -215,6 +215,9 @@ static const unsigned char characterClassTable[256] = {
/* 252 */ BadChar, /* 253 */ BadChar, /* 254 */ BadChar, /* 255 */ BadChar
};
+static const unsigned maximumValidPortNumber = 0xFFFE;
+static const unsigned invalidPortNumber = 0xFFFF;
+
static int copyPathRemovingDots(char* dst, const char* src, int srcStart, int srcEnd);
static void encodeRelativeString(const String& rel, const TextEncoding&, CharBuffer& ouput);
static String substituteBackslashes(const String&);
@@ -573,12 +576,17 @@ String KURL::host() const
unsigned short KURL::port() const
{
- if (m_hostEnd == m_portEnd)
+ // We return a port of 0 if there is no port specified. This can happen in two situations:
+ // 1) The URL contains no colon after the host name and before the path component of the URL.
+ // 2) The URL contains a colon but there's no port number before the path component of the URL begins.
+ if (m_hostEnd == m_portEnd || m_hostEnd == m_portEnd - 1)
return 0;
- int number = m_string.substring(m_hostEnd + 1, m_portEnd - m_hostEnd - 1).toInt();
- if (number < 0 || number > 0xFFFF)
- return 0;
+ const UChar* stringData = m_string.characters();
+ bool ok = false;
+ unsigned number = charactersToUIntStrict(stringData + m_hostEnd + 1, m_portEnd - m_hostEnd - 1, &ok);
+ if (!ok || number > maximumValidPortNumber)
+ return invalidPortNumber;
return number;
}
@@ -1757,7 +1765,7 @@ bool portAllowed(const KURL& url)
6667, // Standard IRC [Apple addition]
6668, // Alternate IRC [Apple addition]
6669, // Alternate IRC [Apple addition]
-
+ invalidPortNumber, // Used to block all invalid port numbers
};
const unsigned short* const blockedPortListEnd = blockedPortList + sizeof(blockedPortList) / sizeof(blockedPortList[0]);
diff --git a/src/3rdparty/webkit/WebCore/platform/KURLGoogle.cpp b/src/3rdparty/webkit/WebCore/platform/KURLGoogle.cpp
index 8be7009..10b9bb8 100644
--- a/src/3rdparty/webkit/WebCore/platform/KURLGoogle.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/KURLGoogle.cpp
@@ -57,6 +57,8 @@ using std::binary_search;
namespace WebCore {
+static const unsigned invalidPortNumber = 0xFFFF;
+
// Wraps WebCore's text encoding in a character set converter for the
// canonicalizer.
class KURLCharsetConverter : public url_canon::CharsetConverter {
@@ -499,7 +501,7 @@ String KURL::host() const
unsigned short KURL::port() const
{
if (!m_url.m_isValid || m_url.m_parsed.port.len <= 0)
- return 0;
+ return invalidPortNumber;
int port = url_parse::ParsePort(m_url.utf8String().data(), m_url.m_parsed.port);
if (port == url_parse::PORT_UNSPECIFIED)
return 0;
@@ -853,6 +855,12 @@ bool portAllowed(const KURL& url)
3659, // apple-sasl / PasswordServer [Apple addition]
4045, // lockd
6000, // X11
+ 6665, // Alternate IRC [Apple addition]
+ 6666, // Alternate IRC [Apple addition]
+ 6667, // Standard IRC [Apple addition]
+ 6668, // Alternate IRC [Apple addition]
+ 6669, // Alternate IRC [Apple addition]
+ invalidPortNumber, // Used to block all invalid port numbers
};
const unsigned short* const blockedPortListEnd = blockedPortList + sizeof(blockedPortList) / sizeof(blockedPortList[0]);
diff --git a/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp b/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp
index a7351a0..c96fe25 100644
--- a/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp
+++ b/src/3rdparty/webkit/WebCore/platform/graphics/qt/PathQt.cpp
@@ -69,23 +69,31 @@ Path& Path::operator=(const Path& other)
return *this;
}
+static inline bool areCollinear(const QPointF& a, const QPointF& b, const QPointF& c)
+{
+ // Solved from comparing the slopes of a to b and b to c: (ay-by)/(ax-bx) == (cy-by)/(cx-bx)
+ return qFuzzyCompare((c.y() - b.y()) * (a.x() - b.x()), (a.y() - b.y()) * (c.x() - b.x()));
+}
+
+static inline bool withinRange(qreal p, qreal a, qreal b)
+{
+ return (p >= a && p <= b) || (p >= b && p <= a);
+}
+
// Check whether a point is on the border
-bool isPointOnPathBorder(const QPolygonF& border, const QPointF& p)
+static bool isPointOnPathBorder(const QPolygonF& border, const QPointF& p)
{
QPointF p1 = border.at(0);
QPointF p2;
for (int i = 1; i < border.size(); ++i) {
p2 = border.at(i);
- // (x1<=x<=x2||x1=>x>=x2) && (y1<=y<=y2||y1=>y>=y2) && (y2-y1)(x-x1) == (y-y1)(x2-x1)
- // In which, (y2-y1)(x-x1) == (y-y1)(x2-x1) is from (y2-y1)/(x2-x1) == (y-y1)/(x-x1)
- // it want to check the slope between p1 and p2 is same with slope between p and p1,
- // if so then the three points lie on the same line.
- // In which, (x1<=x<=x2||x1=>x>=x2) && (y1<=y<=y2||y1=>y>=y2) want to make sure p is
- // between p1 and p2, not outside.
- if (((p.x() <= p1.x() && p.x() >= p2.x()) || (p.x() >= p1.x() && p.x() <= p2.x()))
- && ((p.y() <= p1.y() && p.y() >= p2.y()) || (p.y() >= p1.y() && p.y() <= p2.y()))
- && (p2.y() - p1.y()) * (p.x() - p1.x()) == (p.y() - p1.y()) * (p2.x() - p1.x())) {
+ if (areCollinear(p, p1, p2)
+ // Once we know that the points are collinear we
+ // only need to check one of the coordinates
+ && (qAbs(p2.x() - p1.x()) > qAbs(p2.y() - p1.y()) ?
+ withinRange(p.x(), p1.x(), p2.x()) :
+ withinRange(p.y(), p1.y(), p2.y()))) {
return true;
}
p1 = p2;
@@ -199,19 +207,14 @@ void Path::addArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius)
float p1p2_length = sqrtf(p1p2.x() * p1p2.x() + p1p2.y() * p1p2.y());
double cos_phi = (p1p0.x() * p1p2.x() + p1p0.y() * p1p2.y()) / (p1p0_length * p1p2_length);
- // all points on a line logic
- if (cos_phi == -1) {
+
+ // The points p0, p1, and p2 are on the same straight line (HTML5, 4.8.11.1.8)
+ // We could have used areCollinear() here, but since we're reusing
+ // the variables computed above later on we keep this logic.
+ if (qFuzzyCompare(qAbs(cos_phi), 1.0)) {
m_path.lineTo(p1);
return;
}
- if (cos_phi == 1) {
- // add infinite far away point
- unsigned int max_length = 65535;
- double factor_max = max_length / p1p0_length;
- FloatPoint ep((p0.x() + factor_max * p1p0.x()), (p0.y() + factor_max * p1p0.y()));
- m_path.lineTo(ep);
- return;
- }
float tangent = radius / tan(acos(cos_phi) / 2);
float factor_p1p0 = tangent / p1p0_length;
diff --git a/src/3rdparty/webkit/WebCore/platform/network/ProtectionSpace.h b/src/3rdparty/webkit/WebCore/platform/network/ProtectionSpace.h
index 126b499..42cbc8a 100644
--- a/src/3rdparty/webkit/WebCore/platform/network/ProtectionSpace.h
+++ b/src/3rdparty/webkit/WebCore/platform/network/ProtectionSpace.h
@@ -47,6 +47,7 @@ enum ProtectionSpaceAuthenticationScheme {
ProtectionSpaceAuthenticationSchemeHTMLForm = 4,
ProtectionSpaceAuthenticationSchemeNTLM = 5,
ProtectionSpaceAuthenticationSchemeNegotiate = 6,
+ ProtectionSpaceAuthenticationSchemeUnknown = 100,
};
class ProtectionSpace {
diff --git a/src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.cpp b/src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.cpp
index 09af518..4d6b88c 100644
--- a/src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/FixedTableLayout.cpp
@@ -166,8 +166,7 @@ int FixedTableLayout::calcWidthArray(int)
int usedSpan = 0;
int i = 0;
- while (usedSpan < span) {
- ASSERT(cCol + i < nEffCols);
+ while (usedSpan < span && cCol + i < nEffCols) {
int eSpan = m_table->spanOfEffCol(cCol + i);
// Only set if no col element has already set it.
if (m_width[cCol + i].isAuto() && w.type() != Auto) {
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderButton.h b/src/3rdparty/webkit/WebCore/rendering/RenderButton.h
index 7fd6ab0..1fc5eb6 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderButton.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderButton.h
@@ -57,12 +57,14 @@ public:
virtual bool canHaveChildren() const;
-protected:
+private:
virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle);
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
virtual bool hasLineIfEmpty() const { return true; }
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
void timerFired(Timer<RenderButton>*);
RenderTextFragment* m_buttonText;
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h b/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h
index 467edcc..ce221ea 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderDataGrid.h
@@ -53,6 +53,8 @@ public:
private:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
RenderStyle* columnStyle(DataGridColumn*);
RenderStyle* headerStyle(DataGridColumn*);
void recalcStyleForColumns();
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h
index 99dd35c..a5f3367 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderFileUploadControl.h
@@ -56,6 +56,8 @@ private:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
// FileChooserClient methods.
void valueChanged();
void repaint() { RenderBlock::repaint(); }
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp
index 1d76742..5b1deff 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderInline.cpp
@@ -274,7 +274,7 @@ void RenderInline::splitInlines(RenderBlock* fromBlock, RenderBlock* toBlock,
// has to move into the inline continuation. Call updateBeforeAfterContent to ensure that the inline's :after
// content gets properly destroyed.
if (document()->usesBeforeAfterRules())
- inlineCurr->children()->updateBeforeAfterContent(this, AFTER);
+ inlineCurr->children()->updateBeforeAfterContent(inlineCurr, AFTER);
// Now we need to take all of the children starting from the first child
// *after* currChild and append them all to the clone.
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp
index a012868..2aec361 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderLayer.cpp
@@ -3178,22 +3178,33 @@ void RenderLayer::updateHoverActiveState(const HitTestRequest& request, HitTestR
// Locate the common ancestor render object for the two renderers.
RenderObject* ancestor = commonAncestor(oldHoverObj, newHoverObj);
+ Vector<RefPtr<Node>, 32> nodesToRemoveFromChain;
+ Vector<RefPtr<Node>, 32> nodesToAddToChain;
+
if (oldHoverObj != newHoverObj) {
// The old hover path only needs to be cleared up to (and not including) the common ancestor;
for (RenderObject* curr = oldHoverObj; curr && curr != ancestor; curr = curr->hoverAncestor()) {
- if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain())) {
- curr->node()->setActive(false);
- curr->node()->setHovered(false);
- }
+ if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain()))
+ nodesToRemoveFromChain.append(curr->node());
}
}
// Now set the hover state for our new object up to the root.
for (RenderObject* curr = newHoverObj; curr; curr = curr->hoverAncestor()) {
- if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain())) {
- curr->node()->setActive(request.active());
- curr->node()->setHovered(true);
- }
+ if (curr->node() && !curr->isText() && (!mustBeInActiveChain || curr->node()->inActiveChain()))
+ nodesToAddToChain.append(curr->node());
+ }
+
+ size_t removeCount = nodesToRemoveFromChain.size();
+ for (size_t i = 0; i < removeCount; ++i) {
+ nodesToRemoveFromChain[i]->setActive(false);
+ nodesToRemoveFromChain[i]->setHovered(false);
+ }
+
+ size_t addCount = nodesToAddToChain.size();
+ for (size_t i = 0; i < addCount; ++i) {
+ nodesToAddToChain[i]->setActive(request.active());
+ nodesToAddToChain[i]->setHovered(true);
}
}
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderListItem.h b/src/3rdparty/webkit/WebCore/rendering/RenderListItem.h
index c4c41dc..d140979 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderListItem.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderListItem.h
@@ -63,6 +63,8 @@ private:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
void updateMarkerLocation();
inline int calcValue() const;
void updateValueNow() const;
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderListMarker.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderListMarker.cpp
index d0353ee..6c8f769 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderListMarker.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderListMarker.cpp
@@ -101,8 +101,10 @@ static inline String toAlphabeticOrNumeric(int number, const UChar* sequence, in
int length = 1;
if (type == AlphabeticSequence) {
- while ((numberShadow /= sequenceSize) > 0)
- letters[lettersSize - ++length] = sequence[numberShadow % sequenceSize - 1];
+ while ((numberShadow /= sequenceSize) > 0) {
+ --numberShadow;
+ letters[lettersSize - ++length] = sequence[numberShadow % sequenceSize];
+ }
} else {
while ((numberShadow /= sequenceSize) > 0)
letters[lettersSize - ++length] = sequence[numberShadow % sequenceSize];
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h b/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h
index 0d24c4c..32d6d65 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderMedia.h
@@ -118,6 +118,8 @@ private:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
RefPtr<HTMLElement> m_controlsShadowRoot;
RefPtr<MediaControlElement> m_panel;
RefPtr<MediaControlMuteButtonElement> m_muteButton;
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.h b/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.h
index aeb6205..5ee8588 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderMenuList.h
@@ -78,6 +78,8 @@ private:
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
// PopupMenuClient methods
virtual String itemText(unsigned listIndex) const;
virtual String itemToolTip(unsigned listIndex) const;
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderObject.h b/src/3rdparty/webkit/WebCore/rendering/RenderObject.h
index d928521..593fa52 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderObject.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderObject.h
@@ -322,6 +322,8 @@ public:
bool cellWidthChanged() const { return m_cellWidthChanged; }
void setCellWidthChanged(bool b = true) { m_cellWidthChanged = b; }
+ virtual bool requiresForcedStyleRecalcPropagation() const { return false; }
+
#if ENABLE(MATHML)
virtual bool isRenderMathMLBlock() const { return false; }
#endif // ENABLE(MATHML)
@@ -412,7 +414,6 @@ public:
void drawArcForBoxSide(GraphicsContext*, int x, int y, float thickness, IntSize radius, int angleStart,
int angleSpan, BoxSide, Color, const Color& textcolor, EBorderStyle, bool firstCorner);
-public:
// The pseudo element style can be cached or uncached. Use the cached method if the pseudo element doesn't respect
// any pseudo classes (and therefore has no concept of changing state).
RenderStyle* getCachedPseudoStyle(PseudoId, RenderStyle* parentStyle = 0) const;
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderProgress.h b/src/3rdparty/webkit/WebCore/rendering/RenderProgress.h
index 0a90fde..7aa1efe 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderProgress.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderProgress.h
@@ -40,6 +40,8 @@ private:
virtual void calcPrefWidths();
virtual void layout();
virtual void updateFromElement();
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
int m_position;
};
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h b/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h
index 92ad73b..fc8ce24 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderSlider.h
@@ -58,6 +58,8 @@ namespace WebCore {
virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle);
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
PassRefPtr<RenderStyle> createThumbStyle(const RenderStyle* parentStyle);
int trackSize();
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp
index 307db64..c08adc2 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderText.cpp
@@ -203,7 +203,7 @@ void RenderText::deleteTextBoxes()
PassRefPtr<StringImpl> RenderText::originalText() const
{
Node* e = node();
- return e ? static_cast<Text*>(e)->dataImpl() : 0;
+ return (e && e->isTextNode()) ? static_cast<Text*>(e)->dataImpl() : 0;
}
void RenderText::absoluteRects(Vector<IntRect>& rects, int tx, int ty)
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.h b/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.h
index 2fc8edc..984f41d 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.h
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderTextControl.h
@@ -107,6 +107,8 @@ private:
virtual bool canBeProgramaticallyScrolled(bool) const { return true; }
+ virtual bool requiresForcedStyleRecalcPropagation() const { return true; }
+
String finishText(Vector<UChar>&) const;
bool m_wasChangedSinceLastChangeEvent;
diff --git a/src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.cpp b/src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.cpp
index f3398a3..1e15d66 100644
--- a/src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.cpp
+++ b/src/3rdparty/webkit/WebCore/rendering/RenderTextFragment.cpp
@@ -47,7 +47,7 @@ RenderTextFragment::RenderTextFragment(Node* node, StringImpl* str)
PassRefPtr<StringImpl> RenderTextFragment::originalText() const
{
Node* e = node();
- RefPtr<StringImpl> result = (e ? static_cast<Text*>(e)->dataImpl() : contentString());
+ RefPtr<StringImpl> result = ((e && e->isTextNode()) ? static_cast<Text*>(e)->dataImpl() : contentString());
if (result && (start() > 0 || start() < result->length()))
result = result->substring(start(), end());
return result.release();
@@ -80,7 +80,7 @@ UChar RenderTextFragment::previousCharacter()
{
if (start()) {
Node* e = node();
- StringImpl* original = (e ? static_cast<Text*>(e)->dataImpl() : contentString());
+ StringImpl* original = ((e && e->isTextNode()) ? static_cast<Text*>(e)->dataImpl() : contentString());
if (original)
return (*original)[start() - 1];
}
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp
index 47b4f3b..d907d86 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.cpp
@@ -187,6 +187,7 @@ void QWebSettingsPrivate::apply()
value = attributes.value(QWebSettings::JavascriptCanAccessClipboard,
global->attributes.value(QWebSettings::JavascriptCanAccessClipboard));
settings->setDOMPasteAllowed(value);
+ settings->setJavaScriptCanAccessClipboard(value);
value = attributes.value(QWebSettings::DeveloperExtrasEnabled,
global->attributes.value(QWebSettings::DeveloperExtrasEnabled));
@@ -235,8 +236,8 @@ void QWebSettingsPrivate::apply()
global->attributes.value(QWebSettings::LocalContentCanAccessFileUrls));
settings->setAllowFileAccessFromFileURLs(value);
- value = attributes.value(QWebSettings::XSSAuditorEnabled,
- global->attributes.value(QWebSettings::XSSAuditorEnabled));
+ value = attributes.value(QWebSettings::XSSAuditingEnabled,
+ global->attributes.value(QWebSettings::XSSAuditingEnabled));
settings->setXSSAuditorEnabled(value);
#if ENABLE(TILED_BACKING_STORE)
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.h b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.h
index 207a9b6..156f633 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.h
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebsettings.h
@@ -68,7 +68,7 @@ public:
#endif
LocalContentCanAccessRemoteUrls,
DnsPrefetchEnabled,
- XSSAuditorEnabled,
+ XSSAuditingEnabled,
AcceleratedCompositingEnabled,
SpatialNavigationEnabled,
LocalContentCanAccessFileUrls,
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index 9dd129e..63d5568 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,65 @@
+2010-07-09 Simon Hausmann <simon.hausmann@nokia.com>
+
+ Unreviewed trivial Symbian build fix.
+
+ [Qt] Fix the Symbian build when compiling without S60
+
+ Use Q_OS_SYMBIAN instead of Q_WS_S60 for the user agent
+ determination.
+
+ * Api/qwebpage.cpp:
+ (QWebPage::userAgentForUrl):
+
+2010-07-09 Kristian Amlie <kristian.amlie@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Fixed Qt symbian/linux-armcc mkspec when configured with -qtlibinfix.
+
+ * declarative/declarative.pro: Use QT_LIBINFIX.
+
+2010-06-01 Raine Makelainen <raine.makelainen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt]: REGRESSION(r58703): QWebSettings::JavascriptCanAccessClipboard has wrong case in "Javascript" part.
+ https://bugs.webkit.org/show_bug.cgi?id=39878
+
+ QWebSettings::JavaScriptCanAccessClipboard reverted back to
+ QWebSettings::JavascriptCanAccessClipboard. QWebSettings::DOMPasteAllowed enum removed.
+
+ Value of QWebSettings::JavascriptCanAccessClipboard to setDOMPasteAllowed and
+ setJavaScriptCanAccessClipboard of WebCore::Settings.
+
+ * Api/qwebsettings.cpp:
+ (QWebSettingsPrivate::apply):
+ * Api/qwebsettings.h:
+
+2010-05-03 Abhishek Arya <inferno@chromium.org>
+
+ Reviewed by Adam Barth.
+
+ Add support for controlling clipboard access from javascript.
+ Clipboard access from javascript is disabled by default.
+ https://bugs.webkit.org/show_bug.cgi?id=27751
+
+ * Api/qwebsettings.cpp:
+ (QWebSettingsPrivate::apply):
+ * Api/qwebsettings.h:
+
+2010-03-24 Kent Hansen <kent.hansen@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Rename QWebSettings::XSSAuditorEnabled to XSSAuditingEnabled
+ https://bugs.webkit.org/show_bug.cgi?id=36522
+
+ For consistency with other QWebSettings attributes.
+
+ * Api/qwebsettings.cpp:
+ (QWebSettingsPrivate::apply):
+ * Api/qwebsettings.h:
+
2010-05-19 Antti Koivisto <koivisto@iki.fi>
Rubber-stamped by Kenneth Rohde Christiansen.
diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index ed2ae6e..5cd7f0e 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -470,6 +470,7 @@
\value TextIncludeTrailingSpaces Same as IncludeTrailingSpaces
\value TextJustificationForced Ensures that text lines are justified.
+ \omitvalue TextBypassShaping
\omitvalue BreakAnywhere
\omitvalue DontClip
\omitvalue DontPrint
@@ -1730,7 +1731,7 @@
\value Key_MediaLast
\value Key_unknown
- \value Key_Call A key to answer or initiate a call (see \l Key_ToggleCallHangup for a key to toggle current call state)
+ \value Key_Call A key to answer or initiate a call (see Qt::Key_ToggleCallHangup for a key to toggle current call state)
\value Key_Camera A key to activate the camera shutter
\value Key_CameraFocus A key to focus the camera
\value Key_Context1
@@ -1738,7 +1739,7 @@
\value Key_Context3
\value Key_Context4
\value Key_Flip
- \value Key_Hangup A key to end an ongoing call (see \l Key_ToggleCallHangup for a key to toggle current call state)
+ \value Key_Hangup A key to end an ongoing call (see Qt::Key_ToggleCallHangup for a key to toggle current call state)
\value Key_No
\value Key_Select
\value Key_Yes
diff --git a/src/corelib/io/qiodevice_p.h b/src/corelib/io/qiodevice_p.h
index 4a25562..1dd51ea 100644
--- a/src/corelib/io/qiodevice_p.h
+++ b/src/corelib/io/qiodevice_p.h
@@ -155,10 +155,10 @@ public:
if ((first - buf) < size) {
// underflow, the existing valid data needs to move to the end of the (potentially bigger) buffer
makeSpace(len + size, freeSpaceAtStart);
- memcpy(first - size, block, size);
}
first -= size;
len += size;
+ memcpy(first, block, size);
}
private:
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp
index 9bc4063..739ac4d 100644
--- a/src/corelib/io/qprocess.cpp
+++ b/src/corelib/io/qprocess.cpp
@@ -1399,10 +1399,10 @@ QString QProcess::nativeArguments() const
\since 4.7
\overload
- Sets additional native command line arguments for the program.
+ Sets additional native command line \a arguments for the program.
On operating systems where the system API for passing command line
- arguments to a subprocess natively uses a single string, one can
+ \a arguments to a subprocess natively uses a single string, one can
conceive command lines which cannot be passed via QProcess's portable
list-based API. In such cases this function must be used to set a
string which is \e appended to the string composed from the usual
diff --git a/src/corelib/kernel/qabstractitemmodel.cpp b/src/corelib/kernel/qabstractitemmodel.cpp
index 464a91c..e3fce18 100644
--- a/src/corelib/kernel/qabstractitemmodel.cpp
+++ b/src/corelib/kernel/qabstractitemmodel.cpp
@@ -2547,7 +2547,7 @@ bool QAbstractItemModelPrivate::allowMove(const QModelIndex &srcParent, int star
For example, as shown in the diagram, we move three rows from
row 2 to 4 in the source, so \a sourceFirst is 2 and \a sourceLast is 4.
- We move those items to above row 2 in the destination, so \a destinationRow is 2.
+ We move those items to above row 2 in the destination, so \a destinationChild is 2.
\snippet doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp 6
@@ -2558,7 +2558,7 @@ bool QAbstractItemModelPrivate::allowMove(const QModelIndex &srcParent, int star
\o To append rows to another parent, move them to after the last row.
For example, as shown in the diagram, we move three rows to a
- collection of 6 existing rows (ending in row 5), so \a destinationStart is 6:
+ collection of 6 existing rows (ending in row 5), so \a destinationChild is 6:
\snippet doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp 7
diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp
index e86efb2..2a52044 100644
--- a/src/corelib/kernel/qeventdispatcher_symbian.cpp
+++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp
@@ -47,8 +47,6 @@
#include <unistd.h>
#include <errno.h>
-#include <net/if.h>
-
QT_BEGIN_NAMESPACE
#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
@@ -100,16 +98,19 @@ static inline int qt_socket_select(int nfds, fd_set *readfds, fd_set *writefds,
class QSelectMutexGrabber
{
public:
- QSelectMutexGrabber(int fd, QMutex *mutex)
+ QSelectMutexGrabber(int writeFd, int readFd, QMutex *mutex)
: m_mutex(mutex)
{
if (m_mutex->tryLock())
return;
char dummy = 0;
- qt_pipe_write(fd, &dummy, 1);
+ qt_pipe_write(writeFd, &dummy, 1);
m_mutex->lock();
+
+ char buffer;
+ while (::read(readFd, &buffer, 1) > 0) {}
}
~QSelectMutexGrabber()
@@ -403,10 +404,6 @@ void QSelectThread::run()
ret = qt_socket_select(maxfd, &readfds, &writefds, &exceptionfds, 0);
savedSelectErrno = errno;
- char buffer;
-
- while (::read(m_pipeEnds[0], &buffer, 1) > 0) {}
-
if(ret == 0) {
// do nothing
} else if (ret < 0) {
@@ -481,7 +478,8 @@ void QSelectThread::run()
updateActivatedNotifiers(QSocketNotifier::Write, &writefds);
}
- m_waitCond.wait(&m_mutex);
+ if (FD_ISSET(m_pipeEnds[0], &readfds))
+ m_waitCond.wait(&m_mutex);
}
m_mutex.unlock();
@@ -495,7 +493,9 @@ void QSelectThread::requestSocketEvents ( QSocketNotifier *notifier, TRequestSta
start();
}
- QSelectMutexGrabber lock(m_pipeEnds[1], &m_mutex);
+ Q_ASSERT(QThread::currentThread() == this->thread());
+
+ QSelectMutexGrabber lock(m_pipeEnds[1], m_pipeEnds[0], &m_mutex);
Q_ASSERT(!m_AOStatuses.contains(notifier));
@@ -506,7 +506,9 @@ void QSelectThread::requestSocketEvents ( QSocketNotifier *notifier, TRequestSta
void QSelectThread::cancelSocketEvents ( QSocketNotifier *notifier )
{
- QSelectMutexGrabber lock(m_pipeEnds[1], &m_mutex);
+ Q_ASSERT(QThread::currentThread() == this->thread());
+
+ QSelectMutexGrabber lock(m_pipeEnds[1], m_pipeEnds[0], &m_mutex);
m_AOStatuses.remove(notifier);
@@ -515,7 +517,9 @@ void QSelectThread::cancelSocketEvents ( QSocketNotifier *notifier )
void QSelectThread::restart()
{
- QSelectMutexGrabber lock(m_pipeEnds[1], &m_mutex);
+ Q_ASSERT(QThread::currentThread() == this->thread());
+
+ QSelectMutexGrabber lock(m_pipeEnds[1], m_pipeEnds[0], &m_mutex);
m_waitCond.wakeAll();
}
@@ -571,17 +575,13 @@ void QSelectThread::updateActivatedNotifiers(QSocketNotifier::Type type, fd_set
* check if socket is in exception set
* then signal RequestComplete for it
*/
- qWarning("exception on %d [will do setdefaultif(0) - hack]", i.key()->socket());
+ qWarning("exception on %d [will close the socket handle - hack]", i.key()->socket());
// quick fix; there is a bug
// when doing read on socket
// errors not preoperly mapped
// after offline-ing the device
// on some devices we do get exception
- // close all exiting sockets
- // and reset default IAP
- if(::setdefaultif(0) != KErrNone) // well we can't do much about it
- qWarning("setdefaultif(0) failed");
-
+ ::close(i.key()->socket());
toRemove.append(i.key());
TRequestStatus *status = i.value();
QEventDispatcherSymbian::RequestComplete(d->threadData->symbian_thread_handle, status, KErrNone);
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index 6b34b5f..d193b2e 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -247,6 +247,14 @@ void *QThreadPrivate::start(void *arg)
data->symbian_thread_handle = RThread();
TThreadId threadId = data->symbian_thread_handle.Id();
data->symbian_thread_handle.Open(threadId);
+ // On symbian, threads other than the main thread are non critical by default
+ // This means a worker thread can crash without crashing the application - to
+ // use this feature, we would need to use RThread::Logon in the main thread
+ // to catch abnormal thread exit and emit the finished signal.
+ // For the sake of cross platform consistency, we set the thread as process critical
+ // - advanced users who want the symbian behaviour can change the critical
+ // attribute of the thread again once the app gains control in run()
+ User::SetCritical(User::EProcessCritical);
#endif
pthread_once(&current_thread_data_once, create_current_thread_data_key);
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp
index a51ee81..6b1de5e 100644
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
@@ -2096,6 +2096,7 @@ QDataStream &operator>>(QDataStream &ds, QLocale &l)
\value Serbia
\value SaintBarthelemy
\value SaintMartin
+ \value LatinAmericaAndTheCaribbean
\omitvalue LastCountry
\sa country()
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index 58d2dcb..0ed9d5d 100644
--- a/src/corelib/tools/qsimd_p.h
+++ b/src/corelib/tools/qsimd_p.h
@@ -58,8 +58,7 @@ QT_BEGIN_HEADER
#endif
// SSE intrinsics
-#if defined(QT_HAVE_SSE2) && !defined(QT_BOOTSTRAPPED) && (defined(__SSE2__) \
- || (defined(Q_CC_MSVC) && (defined(_M_X64) || _M_IX86_FP == 2)))
+#if defined(QT_HAVE_SSE2) && (defined(__SSE2__) || defined(Q_CC_MSVC))
#if defined(QT_LINUXBASE)
/// this is an evil hack - the posix_memalign declaration in LSB
/// is wrong - see http://bugs.linuxbase.org/show_bug.cgi?id=2431
@@ -73,8 +72,10 @@ QT_BEGIN_HEADER
# include <emmintrin.h>
#endif
+#if !defined(QT_BOOTSTRAPPED) && (!defined(Q_CC_MSVC) || (defined(_M_X64) || _M_IX86_FP == 2))
#define QT_ALWAYS_HAVE_SSE2
#endif
+#endif // defined(QT_HAVE_SSE2) && (defined(__SSE2__) || defined(Q_CC_MSVC))
// NEON intrinsics
#if defined(QT_HAVE_NEON)
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 57f79a0..b2cf49b 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -6954,7 +6954,7 @@ bool QString::isRightToLeft() const
/*! \fn bool QString::isRightToLeft() const
- \internal
+ Returns true if the string is read right to left.
*/
diff --git a/src/declarative/QmlChanges.txt b/src/declarative/QmlChanges.txt
index 336fbbf..872f6cb 100644
--- a/src/declarative/QmlChanges.txt
+++ b/src/declarative/QmlChanges.txt
@@ -1,5 +1,10 @@
=============================================================================
-The changes below are pre Qt 4.7.0 RC
+The changes below are pre Qt 4.7.0 tech preview
+
+TextInput
+ - copy(), cut() and paste() functions added
+
+The changes below are pre Qt 4.7.0 beta 2
QDeclarativeView
- initialSize() function added
@@ -16,8 +21,11 @@ Component:
- errorsString() renamed to errorString()
ListView:
- ListView.prevSection property changed to ListView.previousSection
-
-TextInput xToPosition -> positionAt (to match TextEdit.positionAt)
+TextInput:
+ - xToPosition -> positionAt (to match TextEdit.positionAt)
+Image:
+ - pixmap property removed, use QDeclarativeImageProvider to serve pixmaps
+ instead
QList<QObject*> models no longer provide properties in model object. The
properties are now updated when the object changes. An object's property
@@ -35,6 +43,10 @@ The QDeclarativeExpression constructor has changed from
to
QDeclarativeExpression(context, scope, expression, parent = 0)
+QDeclarativeImageProvider::request() has been renamed to
+QDeclarativeImageProvider::image() and the class can now provide
+both qimages and qpixmaps, and qimages can be served synchronously
+
QML Viewer
------------
The standalone qml executable has been renamed back to Qml Viewer. Runtime warnings
diff --git a/src/declarative/debugger/qdeclarativedebug.cpp b/src/declarative/debugger/qdeclarativedebug.cpp
index e4a991b..b950aef 100644
--- a/src/declarative/debugger/qdeclarativedebug.cpp
+++ b/src/declarative/debugger/qdeclarativedebug.cpp
@@ -562,31 +562,52 @@ QDeclarativeDebugExpressionQuery *QDeclarativeEngineDebug::queryExpressionResult
return query;
}
-QDeclarativeDebugExpressionQuery *QDeclarativeEngineDebug::setBindingForObject(int objectDebugId,
- const QString &propertyName,
- const QVariant &bindingExpression,
- bool isLiteralValue,
- QObject *parent)
+bool QDeclarativeEngineDebug::setBindingForObject(int objectDebugId, const QString &propertyName,
+ const QVariant &bindingExpression,
+ bool isLiteralValue)
{
Q_D(QDeclarativeEngineDebug);
- QDeclarativeDebugExpressionQuery *query = new QDeclarativeDebugExpressionQuery(parent);
if (d->client->isConnected() && objectDebugId != -1) {
- query->m_client = this;
- query->m_expr = bindingExpression;
- int queryId = d->getId();
- query->m_queryId = queryId;
- d->expressionQuery.insert(queryId, query);
+ QByteArray message;
+ QDataStream ds(&message, QIODevice::WriteOnly);
+ ds << QByteArray("SET_BINDING") << objectDebugId << propertyName << bindingExpression << isLiteralValue;
+ d->client->sendMessage(message);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+bool QDeclarativeEngineDebug::resetBindingForObject(int objectDebugId, const QString &propertyName)
+{
+ Q_D(QDeclarativeEngineDebug);
+ if (d->client->isConnected() && objectDebugId != -1) {
QByteArray message;
QDataStream ds(&message, QIODevice::WriteOnly);
- ds << QByteArray("SET_BINDING") << queryId << objectDebugId << propertyName << bindingExpression << isLiteralValue;
+ ds << QByteArray("RESET_BINDING") << objectDebugId << propertyName;
d->client->sendMessage(message);
+ return true;
} else {
- query->m_state = QDeclarativeDebugQuery::Error;
+ return false;
}
+}
- return query;
+bool QDeclarativeEngineDebug::setMethodBody(int objectDebugId, const QString &methodName,
+ const QString &methodBody)
+{
+ Q_D(QDeclarativeEngineDebug);
+
+ if (d->client->isConnected() && objectDebugId != -1) {
+ QByteArray message;
+ QDataStream ds(&message, QIODevice::WriteOnly);
+ ds << QByteArray("SET_METHOD_BODY") << objectDebugId << methodName << methodBody;
+ d->client->sendMessage(message);
+ return true;
+ } else {
+ return false;
+ }
}
QDeclarativeDebugWatch::QDeclarativeDebugWatch(QObject *parent)
diff --git a/src/declarative/debugger/qdeclarativedebug_p.h b/src/declarative/debugger/qdeclarativedebug_p.h
index 007cbd7..2e79c5d 100644
--- a/src/declarative/debugger/qdeclarativedebug_p.h
+++ b/src/declarative/debugger/qdeclarativedebug_p.h
@@ -94,11 +94,11 @@ public:
QDeclarativeDebugExpressionQuery *queryExpressionResult(int objectDebugId,
const QString &expr,
QObject *parent = 0);
- QDeclarativeDebugExpressionQuery *setBindingForObject(int objectDebugId,
- const QString &propertyName,
- const QVariant &bindingExpression,
- bool isLiteralValue,
- QObject *parent = 0);
+ bool setBindingForObject(int objectDebugId, const QString &propertyName,
+ const QVariant &bindingExpression, bool isLiteralValue);
+ bool resetBindingForObject(int objectDebugId, const QString &propertyName);
+ bool setMethodBody(int objectDebugId, const QString &methodName, const QString &methodBody);
+
private:
Q_DECLARE_PRIVATE(QDeclarativeEngineDebug)
};
@@ -202,11 +202,6 @@ public:
private:
friend class QDeclarativeEngineDebugPrivate;
- QDeclarativeDebugExpressionQuery *setBindingForObject(int objectDebugId,
- const QString &propertyName,
- const QVariant &bindingExpression,
- bool isLiteralValue,
- QObject *parent);
QUrl m_url;
int m_lineNumber;
int m_columnNumber;
@@ -224,11 +219,6 @@ public:
QString name() const;
private:
- QDeclarativeDebugExpressionQuery *setBindingForObject(int objectDebugId,
- const QString &propertyName,
- const QVariant &bindingExpression,
- bool isLiteralValue,
- QObject *parent);
friend class QDeclarativeEngineDebugPrivate;
int m_debugId;
QString m_name;
diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
index d4ca9eb..44c206b 100644
--- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
@@ -94,8 +94,6 @@ QDeclarativeBorderImage::~QDeclarativeBorderImage()
Q_D(QDeclarativeBorderImage);
if (d->sciReply)
d->sciReply->deleteLater();
- if (d->sciPendingPixmapCache)
- QDeclarativePixmapCache::cancel(d->sciurl, this);
}
/*!
\qmlproperty enumeration BorderImage::status
@@ -164,15 +162,6 @@ void QDeclarativeBorderImage::setSource(const QUrl &url)
d->sciReply = 0;
}
- if (d->pendingPixmapCache) {
- QDeclarativePixmapCache::cancel(d->url, this);
- d->pendingPixmapCache = false;
- }
- if (d->sciPendingPixmapCache) {
- QDeclarativePixmapCache::cancel(d->sciurl, this);
- d->sciPendingPixmapCache = false;
- }
-
d->url = url;
d->sciurl = QUrl();
emit sourceChanged(d->url);
@@ -190,7 +179,7 @@ void QDeclarativeBorderImage::load()
}
if (d->url.isEmpty()) {
- d->pix = QPixmap();
+ d->pix.clear();
d->status = Null;
setImplicitWidth(0);
setImplicitHeight(0);
@@ -224,26 +213,24 @@ void QDeclarativeBorderImage::load()
thisSciRequestFinished, Qt::DirectConnection);
}
} else {
- QSize impsize;
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(d->url, &d->pix, &errorString, &impsize, d->async);
- if (status != QDeclarativePixmapReply::Ready && status != QDeclarativePixmapReply::Error) {
- QDeclarativePixmapReply *reply = QDeclarativePixmapCache::request(qmlEngine(this), d->url);
- d->pendingPixmapCache = true;
- connect(reply, SIGNAL(finished()), this, SLOT(requestFinished()));
- connect(reply, SIGNAL(downloadProgress(qint64,qint64)),
- this, SLOT(requestProgress(qint64,qint64)));
+
+ d->pix.load(qmlEngine(this), d->url, d->async);
+
+ if (d->pix.isLoading()) {
+ d->pix.connectFinished(this, SLOT(requestFinished()));
+ d->pix.connectDownloadProgress(this, SLOT(requestProgress(qint64,qint64)));
} else {
- //### should be unified with requestFinished
+ QSize impsize = d->pix.implicitSize();
setImplicitWidth(impsize.width());
setImplicitHeight(impsize.height());
- if (d->pix.isNull()) {
+ if (d->pix.isReady()) {
+ d->status = Ready;
+ } else {
d->status = Error;
- qmlInfo(this) << errorString;
+ qmlInfo(this) << d->pix.error();
}
- if (d->status == Loading)
- d->status = Ready;
+
d->progress = 1.0;
emit statusChanged(d->status);
emit progressChanged(d->progress);
@@ -343,47 +330,40 @@ void QDeclarativeBorderImage::setGridScaledImage(const QDeclarativeGridScaledIma
d->verticalTileMode = sci.verticalTileRule();
d->sciurl = d->url.resolved(QUrl(sci.pixmapUrl()));
- QSize impsize;
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(d->sciurl, &d->pix, &errorString, &impsize, d->async);
- if (status != QDeclarativePixmapReply::Ready && status != QDeclarativePixmapReply::Error) {
- QDeclarativePixmapReply *reply = QDeclarativePixmapCache::request(qmlEngine(this), d->sciurl);
- d->sciPendingPixmapCache = true;
-
- static int replyDownloadProgress = -1;
- static int replyFinished = -1;
+
+ d->pix.load(qmlEngine(this), d->sciurl, d->async);
+
+ if (d->pix.isLoading()) {
static int thisRequestProgress = -1;
static int thisRequestFinished = -1;
- if (replyDownloadProgress == -1) {
- replyDownloadProgress =
- QDeclarativePixmapReply::staticMetaObject.indexOfSignal("downloadProgress(qint64,qint64)");
- replyFinished =
- QDeclarativePixmapReply::staticMetaObject.indexOfSignal("finished()");
+ if (thisRequestProgress == -1) {
thisRequestProgress =
QDeclarativeBorderImage::staticMetaObject.indexOfSlot("requestProgress(qint64,qint64)");
thisRequestFinished =
QDeclarativeBorderImage::staticMetaObject.indexOfSlot("requestFinished()");
}
- QMetaObject::connect(reply, replyFinished, this,
- thisRequestFinished, Qt::DirectConnection);
- QMetaObject::connect(reply, replyDownloadProgress, this,
- thisRequestProgress, Qt::DirectConnection);
+ d->pix.connectFinished(this, thisRequestFinished);
+ d->pix.connectDownloadProgress(this, thisRequestProgress);
+
} else {
- //### should be unified with requestFinished
+
+ QSize impsize = d->pix.implicitSize();
setImplicitWidth(impsize.width());
setImplicitHeight(impsize.height());
- if (d->pix.isNull()) {
+ if (d->pix.isReady()) {
+ d->status = Ready;
+ } else {
d->status = Error;
- qmlInfo(this) << errorString;
+ qmlInfo(this) << d->pix.error();
}
- if (d->status == Loading)
- d->status = Ready;
+
d->progress = 1.0;
emit statusChanged(d->status);
emit progressChanged(1.0);
update();
+
}
}
}
@@ -392,27 +372,17 @@ void QDeclarativeBorderImage::requestFinished()
{
Q_D(QDeclarativeBorderImage);
- QSize impsize;
- if (d->url.path().endsWith(QLatin1String(".sci"))) {
- d->sciPendingPixmapCache = false;
- QString errorString;
- if (QDeclarativePixmapCache::get(d->sciurl, &d->pix, &errorString, &impsize, d->async) != QDeclarativePixmapReply::Ready) {
- d->status = Error;
- qmlInfo(this) << errorString;
- }
+ QSize impsize = d->pix.implicitSize();
+ if (d->pix.isError()) {
+ d->status = Error;
+ qmlInfo(this) << d->pix.error();
} else {
- d->pendingPixmapCache = false;
- QString errorString;
- if (QDeclarativePixmapCache::get(d->url, &d->pix, &errorString, &impsize, d->async) != QDeclarativePixmapReply::Ready) {
- d->status = Error;
- qmlInfo(this) << errorString;
- }
+ d->status = Ready;
}
+
setImplicitWidth(impsize.width());
setImplicitHeight(impsize.height());
- if (d->status == Loading)
- d->status = Ready;
d->progress = 1.0;
emit statusChanged(d->status);
emit progressChanged(1.0);
diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage_p_p.h b/src/declarative/graphicsitems/qdeclarativeborderimage_p_p.h
index 01e4a00..65583d6 100644
--- a/src/declarative/graphicsitems/qdeclarativeborderimage_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeborderimage_p_p.h
@@ -66,7 +66,6 @@ class QDeclarativeBorderImagePrivate : public QDeclarativeImageBasePrivate
public:
QDeclarativeBorderImagePrivate()
: border(0), sciReply(0),
- sciPendingPixmapCache(false),
horizontalTileMode(QDeclarativeBorderImage::Stretch),
verticalTileMode(QDeclarativeBorderImage::Stretch),
redirectCount(0)
@@ -97,7 +96,6 @@ public:
QDeclarativeScaleGrid *border;
QUrl sciurl;
QNetworkReply *sciReply;
- bool sciPendingPixmapCache;
QDeclarativeBorderImage::TileMode horizontalTileMode;
QDeclarativeBorderImage::TileMode verticalTileMode;
int redirectCount;
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index a40546f..9af5f56 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -641,18 +641,6 @@ void QDeclarativeFlickable::setFlickableDirection(FlickableDirection direction)
}
}
-QDeclarativeFlickable::FlickableDirection QDeclarativeFlickable::flickDirection() const
-{
- qmlInfo(this) << "'flickDirection' is deprecated. Please use 'flickableDirection' instead.";
- return flickableDirection();
-}
-
-void QDeclarativeFlickable::setFlickDirection(FlickableDirection direction)
-{
- qmlInfo(this) << "'flickDirection' is deprecated. Please use 'flickableDirection' instead.";
- setFlickableDirection(direction);
-}
-
void QDeclarativeFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event)
{
if (interactive && timeline.isActive() && (qAbs(hData.velocity) > 10 || qAbs(vData.velocity) > 10))
@@ -1354,7 +1342,7 @@ bool QDeclarativeFlickable::isFlickingVertically() const
This property holds the time to delay (ms) delivering a press to
children of the Flickable. This can be useful where reacting
- to a press before a flicking action has undesireable effects.
+ to a press before a flicking action has undesirable effects.
If the flickable is dragged/flicked before the delay times out
the press event will not be delivered. If the button is released
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable_p.h b/src/declarative/graphicsitems/qdeclarativeflickable_p.h
index 47746c6..44f2bcf 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeflickable_p.h
@@ -74,7 +74,6 @@ class Q_AUTOTEST_EXPORT QDeclarativeFlickable : public QDeclarativeItem
Q_PROPERTY(bool flicking READ isFlicking NOTIFY flickingChanged)
Q_PROPERTY(bool flickingHorizontally READ isFlickingHorizontally NOTIFY flickingHorizontallyChanged)
Q_PROPERTY(bool flickingVertically READ isFlickingVertically NOTIFY flickingVerticallyChanged)
- Q_PROPERTY(FlickableDirection flickDirection READ flickDirection WRITE setFlickDirection NOTIFY flickableDirectionChanged) // deprecated
Q_PROPERTY(FlickableDirection flickableDirection READ flickableDirection WRITE setFlickableDirection NOTIFY flickableDirectionChanged)
Q_PROPERTY(bool interactive READ isInteractive WRITE setInteractive NOTIFY interactiveChanged)
@@ -147,8 +146,6 @@ public:
QDeclarativeItem *contentItem();
enum FlickableDirection { AutoFlickDirection=0x00, HorizontalFlick=0x01, VerticalFlick=0x02, HorizontalAndVerticalFlick=0x03 };
- FlickableDirection flickDirection() const; // deprecated
- void setFlickDirection(FlickableDirection); // deprecated
FlickableDirection flickableDirection() const;
void setFlickableDirection(FlickableDirection);
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index cb99129..14a4f08 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -1216,6 +1216,11 @@ void QDeclarativeGridView::setModel(const QVariant &model)
} else {
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
+ if (d->highlight && d->currentItem) {
+ d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
+ d->updateTrackedItem();
+ }
+ d->moveReason = QDeclarativeGridViewPrivate::Other;
}
}
connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int)));
@@ -1274,6 +1279,11 @@ void QDeclarativeGridView::setDelegate(QDeclarativeComponent *delegate)
refill();
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
+ if (d->highlight && d->currentItem) {
+ d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
+ d->updateTrackedItem();
+ }
+ d->moveReason = QDeclarativeGridViewPrivate::Other;
}
emit delegateChanged();
}
@@ -1300,7 +1310,6 @@ void QDeclarativeGridView::setCurrentIndex(int index)
return;
if (isComponentComplete() && d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) {
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
- cancelFlick();
d->updateCurrent(index);
} else if (index != d->currentIndex) {
d->currentIndex = index;
@@ -1381,7 +1390,7 @@ void QDeclarativeGridView::setHighlight(QDeclarativeComponent *highlight)
highlight is not moved by the view, and any movement must be implemented
by the highlight.
- Here is a highlight with its motion defined by a \l {SpringFollow} item:
+ Here is a highlight with its motion defined by a \l {SpringAnimation} item:
\snippet doc/src/snippets/declarative/gridview/gridview.qml highlightFollowsCurrentItem
*/
@@ -2158,7 +2167,7 @@ void QDeclarativeGridView::componentComplete()
d->updateCurrent(0);
else
d->updateCurrent(d->currentIndex);
- if (d->highlight) {
+ if (d->highlight && d->currentItem) {
d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
d->updateTrackedItem();
}
@@ -2172,20 +2181,17 @@ void QDeclarativeGridView::trackedPositionChanged()
Q_D(QDeclarativeGridView);
if (!d->trackedItem || !d->currentItem)
return;
- if (!d->flickingHorizontally && !d->flickingVertically && !d->movingHorizontally && !d->movingVertically
- && d->moveReason == QDeclarativeGridViewPrivate::SetIndex) {
+ if (d->moveReason == QDeclarativeGridViewPrivate::SetIndex) {
const qreal trackedPos = d->trackedItem->rowPos();
const qreal viewPos = d->position();
+ qreal pos = viewPos;
if (d->haveHighlightRange) {
if (d->highlightRange == StrictlyEnforceRange) {
- qreal pos = viewPos;
if (trackedPos > pos + d->highlightRangeEnd - d->rowSize())
pos = trackedPos - d->highlightRangeEnd + d->rowSize();
if (trackedPos < pos + d->highlightRangeStart)
pos = trackedPos - d->highlightRangeStart;
- d->setPosition(pos);
} else {
- qreal pos = viewPos;
if (trackedPos < d->startPosition() + d->highlightRangeStart) {
pos = d->startPosition();
} else if (d->trackedItem->endRowPos() > d->endPosition() - d->size() + d->highlightRangeEnd) {
@@ -2199,14 +2205,12 @@ void QDeclarativeGridView::trackedPositionChanged()
pos = trackedPos - d->highlightRangeEnd + d->rowSize();
}
}
- d->setPosition(pos);
}
} else {
if (trackedPos < viewPos && d->currentItem->rowPos() < viewPos) {
- d->setPosition(d->currentItem->rowPos() < trackedPos ? trackedPos : d->currentItem->rowPos());
+ pos = d->currentItem->rowPos() < trackedPos ? trackedPos : d->currentItem->rowPos();
} else if (d->trackedItem->endRowPos() > viewPos + d->size()
&& d->currentItem->endRowPos() > viewPos + d->size()) {
- qreal pos;
if (d->trackedItem->endRowPos() < d->currentItem->endRowPos()) {
pos = d->trackedItem->endRowPos() - d->size();
if (d->rowSize() > d->size())
@@ -2216,9 +2220,12 @@ void QDeclarativeGridView::trackedPositionChanged()
if (d->rowSize() > d->size())
pos = d->currentItem->rowPos();
}
- d->setPosition(pos);
}
}
+ if (viewPos != pos) {
+ cancelFlick();
+ d->setPosition(pos);
+ }
}
}
@@ -2431,8 +2438,11 @@ void QDeclarativeGridView::itemsRemoved(int modelIndex, int count)
if (removedVisible && d->visibleItems.isEmpty()) {
d->timeline.clear();
d->setPosition(0);
- if (d->itemCount == 0)
+ if (d->itemCount == 0) {
+ d->updateHeader();
+ d->updateFooter();
update();
+ }
}
emit countChanged();
@@ -2563,6 +2573,12 @@ void QDeclarativeGridView::modelReset()
refill();
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
+ if (d->highlight && d->currentItem) {
+ d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
+ d->updateTrackedItem();
+ }
+ d->moveReason = QDeclarativeGridViewPrivate::Other;
+
emit countChanged();
}
diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp
index ff61302..90738c8 100644
--- a/src/declarative/graphicsitems/qdeclarativeimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp
@@ -65,18 +65,20 @@ QT_BEGIN_NAMESPACE
Image { source: "qtlogo.png" }
\endqml
\endtable
-
- If a size is not specified explicitly, the Image element is sized to the loaded image.
- Image elements can be stretched and tiled using the \l fillMode property.
- If the image \l source is a network resource, the image is loaded asynchronous and the
- \l progress and \l status properties are updated appropriately. Otherwise, if the image is
- available locally, it is loaded immediately and the user interface is blocked until loading is
- complete. (This is typically the correct behavior for user interface elements.)
- For large local images, which do not need to be visible immediately, it may be preferable to
- enable \l asynchronous loading. This loads the image in the background using a low priority thread.
+ If the \l {Image::width}{width} and \l{Image::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.
+
+ 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.
- Images are cached and shared internally, so if several Image elements have the same source
+ 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.
+
+ 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.
\bold Note: Images are often the greatest user of memory in QML user interfaces. It is recommended
@@ -84,7 +86,7 @@ QT_BEGIN_NAMESPACE
size bounded via the \l sourceSize property. This is especially important for content
that is loaded from external sources or provided by the user.
- \sa {declarative/imageelements/image}{Image example}
+ \sa {declarative/imageelements/image}{Image example}, QDeclarativeImageProvider
*/
/*!
@@ -114,19 +116,10 @@ QDeclarativeImage::~QDeclarativeImage()
{
}
-/*!
- \qmlproperty QPixmap Image::pixmap
-
- This property holds the QPixmap image to display.
-
- This is useful for displaying images provided by a C++ implementation,
- for example, a model may provide a data role of type QPixmap.
-*/
-
QPixmap QDeclarativeImage::pixmap() const
{
Q_D(const QDeclarativeImage);
- return d->pix;
+ return d->pix.pixmap();
}
void QDeclarativeImage::setPixmap(const QPixmap &pix)
@@ -140,7 +133,7 @@ void QDeclarativeImage::setPixmap(const QPixmap &pix)
void QDeclarativeImagePrivate::setPixmap(const QPixmap &pixmap)
{
Q_Q(QDeclarativeImage);
- pix = pixmap;
+ pix.setPixmap(pixmap);
q->setImplicitWidth(pix.width());
q->setImplicitHeight(pix.height());
@@ -331,17 +324,34 @@ qreal QDeclarativeImage::paintedHeight() const
/*!
\qmlproperty QSize Image::sourceSize
- This property holds the size of the loaded image, in pixels.
+ This property holds the actual width and height of the loaded image.
+
+ Unlike the \l {Item::}{width} and \l {Item::}{height} properties, which scale
+ the painting of the image, this property sets the actual number of pixels
+ stored for the loaded image so that large images do not use more
+ memory than necessary. For example, this ensures the image is memory is no
+ larger than 1024x1024 pixels, regardless of the Image's \l {Item::}{width} and
+ \l {Item::}{height} values:
+
+ \code
+ Rectangle {
+ width: ...
+ height: ...
- This is used to control the storage used by a loaded image. Unlike
- the width and height properties, which scale the painting of the image, this property
- affects the number of pixels stored.
+ Image {
+ anchors.fill: parent
+ source: "reallyBigImage.jpg"
+ sourceSize.width: 1024
+ sourceSize.height: 1024
+ }
+ }
+ \endcode
If the image's actual size is larger than the sourceSize, the image is scaled down.
If only one dimension of the size is set to greater than 0, the
other dimension is set in proportion to preserve the source image's aspect ratio.
(The \l fillMode is independent of this.)
-
+
If the source is an instrinsically scalable image (eg. SVG), this property
determines the size of the loaded image regardless of intrinsic size.
Avoid changing this property dynamically; rendering an SVG is \e slow compared
@@ -351,34 +361,8 @@ qreal QDeclarativeImage::paintedHeight() const
be no greater than this property specifies. For some formats (currently only JPEG),
the whole image will never actually be loaded into memory.
- \note \e{Changing this property dynamically will lead to the image source being reloaded,
- potentially even from the network if it is not in the disk cache.}
-
- Here is an example that ensures the size of the image in memory is
- no larger than 1024x1024 pixels, regardless of the size of the Image element.
-
- \code
- Image {
- anchors.fill: parent
- source: "images/reallyBigImage.jpg"
- sourceSize.width: 1024
- sourceSize.height: 1024
- }
- \endcode
-
- The example below ensures the memory used by the image is no more than necessary
- to display the image at the size of the Image element.
- Of course if the Image element is resized a costly reload will be required, so
- use this technique \e only when the Image size is fixed.
-
- \code
- Image {
- anchors.fill: parent
- source: "images/reallyBigImage.jpg"
- sourceSize.width: width
- sourceSize.height: height
- }
- \endcode
+ \note \e {Changing this property dynamically causes the image source to be reloaded,
+ potentially even from the network, if it is not in the disk cache.}
*/
void QDeclarativeImage::updatePaintedGeometry()
@@ -422,6 +406,8 @@ void QDeclarativeImage::geometryChanged(const QRectF &newGeometry, const QRectF
Image can handle any image format supported by Qt, loaded from any URL scheme supported by Qt.
The URL may be absolute, or relative to the URL of the component.
+
+ \sa QDeclarativeImageProvider
*/
/*!
@@ -431,7 +417,7 @@ void QDeclarativeImage::geometryChanged(const QRectF &newGeometry, const QRectF
asynchronously in a separate thread. The default value is
false, causing the user interface thread to block while the
image is loaded. Setting \a asynchronous to true is useful where
- maintaining a responsive user interface is more desireable
+ maintaining a responsive user interface is more desirable
than having images immediately visible.
Note that this property is only valid for images read from the
@@ -522,7 +508,6 @@ void QDeclarativeImage::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWi
void QDeclarativeImage::pixmapChange()
{
updatePaintedGeometry();
- emit pixmapChanged();
}
QT_END_NAMESPACE
diff --git a/src/declarative/graphicsitems/qdeclarativeimage_p.h b/src/declarative/graphicsitems/qdeclarativeimage_p.h
index a4f4475..c8bb30b 100644
--- a/src/declarative/graphicsitems/qdeclarativeimage_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeimage_p.h
@@ -57,7 +57,6 @@ class Q_AUTOTEST_EXPORT QDeclarativeImage : public QDeclarativeImageBase
Q_OBJECT
Q_ENUMS(FillMode)
- Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap NOTIFY pixmapChanged DESIGNABLE false)
Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged)
Q_PROPERTY(qreal paintedWidth READ paintedWidth NOTIFY paintedGeometryChanged)
Q_PROPERTY(qreal paintedHeight READ paintedHeight NOTIFY paintedGeometryChanged)
@@ -79,7 +78,6 @@ public:
void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *);
Q_SIGNALS:
- void pixmapChanged();
void fillModeChanged();
void paintedGeometryChanged();
diff --git a/src/declarative/graphicsitems/qdeclarativeimagebase.cpp b/src/declarative/graphicsitems/qdeclarativeimagebase.cpp
index c3f8195..67f2327 100644
--- a/src/declarative/graphicsitems/qdeclarativeimagebase.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeimagebase.cpp
@@ -57,9 +57,6 @@ QDeclarativeImageBase::QDeclarativeImageBase(QDeclarativeImageBasePrivate &dd, Q
QDeclarativeImageBase::~QDeclarativeImageBase()
{
- Q_D(QDeclarativeImageBase);
- if (d->pendingPixmapCache)
- QDeclarativePixmapCache::cancel(d->url, this);
}
QDeclarativeImageBase::Status QDeclarativeImageBase::status() const
@@ -91,7 +88,6 @@ void QDeclarativeImageBase::setAsynchronous(bool async)
}
}
-
QUrl QDeclarativeImageBase::source() const
{
Q_D(const QDeclarativeImageBase);
@@ -105,11 +101,6 @@ void QDeclarativeImageBase::setSource(const QUrl &url)
if ((d->url.isEmpty() == url.isEmpty()) && url == d->url)
return;
- if (d->pendingPixmapCache) {
- QDeclarativePixmapCache::cancel(d->url, this);
- d->pendingPixmapCache = false;
- }
-
d->url = url;
emit sourceChanged(d->url);
@@ -122,6 +113,7 @@ void QDeclarativeImageBase::setSourceSize(const QSize& size)
Q_D(QDeclarativeImageBase);
if (d->sourcesize == size)
return;
+
d->sourcesize = size;
emit sourceSizeChanged();
if (isComponentComplete())
@@ -143,7 +135,7 @@ void QDeclarativeImageBase::load()
}
if (d->url.isEmpty()) {
- d->pix = QPixmap();
+ d->pix.clear();
d->status = Null;
setImplicitWidth(0);
setImplicitHeight(0);
@@ -152,48 +144,37 @@ void QDeclarativeImageBase::load()
update();
} else {
d->status = Loading;
- int reqwidth = d->sourcesize.width();
- int reqheight = d->sourcesize.height();
- QSize impsize;
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(d->url, &d->pix, &errorString, &impsize, d->async, reqwidth, reqheight);
- if (status != QDeclarativePixmapReply::Ready && status != QDeclarativePixmapReply::Error) {
- QDeclarativePixmapReply *reply = QDeclarativePixmapCache::request(qmlEngine(this), d->url, reqwidth, reqheight);
- d->pendingPixmapCache = true;
-
- static int replyDownloadProgress = -1;
- static int replyFinished = -1;
+
+ d->pix.load(qmlEngine(this), d->url, d->sourcesize, d->async);
+
+ if (d->pix.isLoading()) {
+
static int thisRequestProgress = -1;
static int thisRequestFinished = -1;
- if (replyDownloadProgress == -1) {
- replyDownloadProgress =
- QDeclarativePixmapReply::staticMetaObject.indexOfSignal("downloadProgress(qint64,qint64)");
- replyFinished =
- QDeclarativePixmapReply::staticMetaObject.indexOfSignal("finished()");
+ if (thisRequestProgress == -1) {
thisRequestProgress =
QDeclarativeImageBase::staticMetaObject.indexOfSlot("requestProgress(qint64,qint64)");
thisRequestFinished =
QDeclarativeImageBase::staticMetaObject.indexOfSlot("requestFinished()");
}
- QMetaObject::connect(reply, replyFinished, this,
- thisRequestFinished, Qt::DirectConnection);
- QMetaObject::connect(reply, replyDownloadProgress, this,
- thisRequestProgress, Qt::DirectConnection);
+ d->pix.connectFinished(this, thisRequestFinished);
+ d->pix.connectDownloadProgress(this, thisRequestProgress);
+
} else {
- //### should be unified with requestFinished
- if (status == QDeclarativePixmapReply::Ready) {
- setImplicitWidth(impsize.width());
- setImplicitHeight(impsize.height());
+ QSize impsize = d->pix.implicitSize();
+ setImplicitWidth(impsize.width());
+ setImplicitHeight(impsize.height());
- if (d->status == Loading)
- d->status = Ready;
+ if (d->pix.isReady()) {
+ d->status = Ready;
if (!d->sourcesize.isValid())
emit sourceSizeChanged();
+
} else {
d->status = Error;
- qmlInfo(this) << errorString;
+ qmlInfo(this) << d->pix.error();
}
d->progress = 1.0;
emit statusChanged(d->status);
@@ -201,6 +182,7 @@ void QDeclarativeImageBase::load()
pixmapChange();
update();
}
+
}
emit statusChanged(d->status);
@@ -210,14 +192,13 @@ void QDeclarativeImageBase::requestFinished()
{
Q_D(QDeclarativeImageBase);
- d->pendingPixmapCache = false;
+ QSize impsize = d->pix.implicitSize();
- QSize impsize;
- QString errorString;
- if (QDeclarativePixmapCache::get(d->url, &d->pix, &errorString, &impsize, d->async, d->sourcesize.width(), d->sourcesize.height()) != QDeclarativePixmapReply::Ready) {
+ if (d->pix.isError()) {
d->status = Error;
- qmlInfo(this) << errorString;
+ qmlInfo(this) << d->pix.error();
}
+
setImplicitWidth(impsize.width());
setImplicitHeight(impsize.height());
diff --git a/src/declarative/graphicsitems/qdeclarativeimagebase_p_p.h b/src/declarative/graphicsitems/qdeclarativeimagebase_p_p.h
index 392c1db..aee8b28 100644
--- a/src/declarative/graphicsitems/qdeclarativeimagebase_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeimagebase_p_p.h
@@ -54,6 +54,7 @@
//
#include "private/qdeclarativeitem_p.h"
+#include "private/qdeclarativepixmapcache_p.h"
#include <QtCore/QPointer>
@@ -68,18 +69,16 @@ public:
QDeclarativeImageBasePrivate()
: status(QDeclarativeImageBase::Null),
progress(0.0),
- pendingPixmapCache(false),
async(false)
{
QGraphicsItemPrivate::flags = QGraphicsItemPrivate::flags & ~QGraphicsItem::ItemHasNoContents;
}
- QPixmap pix;
+ QDeclarativePixmap pix;
QDeclarativeImageBase::Status status;
QUrl url;
qreal progress;
QSize sourcesize;
- bool pendingPixmapCache : 1;
bool async : 1;
};
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index 70874f2..b9498f1 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -1581,7 +1581,7 @@ QDeclarativeItem *QDeclarativeItem::parentItem() const
Returns true if construction of the QML component is complete; otherwise
returns false.
- It is often desireable to delay some processing until the component is
+ It is often desirable to delay some processing until the component is
completed.
\sa componentComplete()
@@ -1589,7 +1589,7 @@ QDeclarativeItem *QDeclarativeItem::parentItem() const
bool QDeclarativeItem::isComponentComplete() const
{
Q_D(const QDeclarativeItem);
- return d->_componentComplete;
+ return d->componentComplete;
}
void QDeclarativeItemPrivate::data_append(QDeclarativeListProperty<QObject> *prop, QObject *o)
@@ -1730,7 +1730,7 @@ QRectF QDeclarativeItem::childrenRect()
Q_D(QDeclarativeItem);
if (!d->_contents) {
d->_contents = new QDeclarativeContents(this);
- if (d->_componentComplete)
+ if (d->componentComplete)
d->_contents->complete();
}
return d->_contents->rectF();
@@ -2085,7 +2085,7 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
relationship with other items.
Margins apply to top, bottom, left, right, and fill anchors.
- The margins property can be used to set all of the various margins at once, to the same value.
+ The \c anchors.margins property can be used to set all of the various margins at once, to the same value.
Offsets apply for horizontal center, vertical center, and baseline anchors.
@@ -2120,10 +2120,12 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
\endqml
\endtable
- anchors.fill provides a convenient way for one item to have the
+ \c anchors.fill provides a convenient way for one item to have the
same geometry as another item, and is equivalent to connecting all
four directional anchors.
+ To clear an anchor value, set it to \c undefined.
+
\note You can only anchor an item to siblings or a parent.
For more information see \l {anchor-layout}{Anchor Layouts}.
@@ -2133,7 +2135,7 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
\property QDeclarativeItem::baselineOffset
\brief The position of the item's baseline in local coordinates.
- The baseline of a Text item is the imaginary line on which the text
+ The baseline of a \l Text item is the imaginary line on which the text
sits. Controls containing text usually set their baseline to the
baseline of their text.
@@ -2142,19 +2144,19 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
qreal QDeclarativeItem::baselineOffset() const
{
Q_D(const QDeclarativeItem);
- if (!d->_baselineOffset.isValid()) {
+ if (!d->baselineOffset.isValid()) {
return 0.0;
} else
- return d->_baselineOffset;
+ return d->baselineOffset;
}
void QDeclarativeItem::setBaselineOffset(qreal offset)
{
Q_D(QDeclarativeItem);
- if (offset == d->_baselineOffset)
+ if (offset == d->baselineOffset)
return;
- d->_baselineOffset = offset;
+ d->baselineOffset = offset;
for(int ii = 0; ii < d->changeListeners.count(); ++ii) {
const QDeclarativeItemPrivate::ChangeListener &change = d->changeListeners.at(ii);
@@ -2283,7 +2285,7 @@ void QDeclarativeItem::setBaselineOffset(qreal offset)
bool QDeclarativeItem::keepMouseGrab() const
{
Q_D(const QDeclarativeItem);
- return d->_keepMouse;
+ return d->keepMouse;
}
/*!
@@ -2307,7 +2309,7 @@ bool QDeclarativeItem::keepMouseGrab() const
void QDeclarativeItem::setKeepMouseGrab(bool keep)
{
Q_D(QDeclarativeItem);
- d->_keepMouse = keep;
+ d->keepMouse = keep;
}
/*!
@@ -2404,6 +2406,8 @@ QDeclarativeItem *QDeclarativeItem::childAt(qreal x, qreal y) const
void QDeclarativeItemPrivate::focusChanged(bool flag)
{
Q_Q(QDeclarativeItem);
+ if (!(flags & QGraphicsItem::ItemIsFocusScope) && parent)
+ emit q->wantsFocusChanged(flag); //see also QDeclarativeItemPrivate::subFocusItemChange()
emit q->focusChanged(flag);
}
@@ -2487,7 +2491,7 @@ QDeclarativeListProperty<QDeclarativeTransition> QDeclarativeItemPrivate::transi
\qmlproperty bool Item::clip
This property holds whether clipping is enabled.
- if clipping is enabled, an item will clip its own painting, as well
+ If clipping is enabled, an item will clip its own painting, as well
as the painting of its children, to its bounding rectangle.
Non-rectangular clipping regions are not supported for performance reasons.
@@ -2568,7 +2572,7 @@ QDeclarativeListProperty<QGraphicsTransform> QDeclarativeItem::transform()
void QDeclarativeItem::classBegin()
{
Q_D(QDeclarativeItem);
- d->_componentComplete = false;
+ d->componentComplete = false;
if (d->_stateGroup)
d->_stateGroup->classBegin();
if (d->_anchors)
@@ -2579,14 +2583,14 @@ void QDeclarativeItem::classBegin()
\internal
componentComplete() is called when all items in the component
- have been constructed. It is often desireable to delay some
+ have been constructed. It is often desirable to delay some
processing until the component is complete an all bindings in the
component have been resolved.
*/
void QDeclarativeItem::componentComplete()
{
Q_D(QDeclarativeItem);
- d->_componentComplete = true;
+ d->componentComplete = true;
if (d->_stateGroup)
d->_stateGroup->componentComplete();
if (d->_anchors) {
@@ -2604,7 +2608,7 @@ QDeclarativeStateGroup *QDeclarativeItemPrivate::_states()
Q_Q(QDeclarativeItem);
if (!_stateGroup) {
_stateGroup = new QDeclarativeStateGroup;
- if (!_componentComplete)
+ if (!componentComplete)
_stateGroup->classBegin();
QObject::connect(_stateGroup, SIGNAL(stateChanged(QString)),
q, SIGNAL(stateChanged(QString)));
@@ -3105,7 +3109,10 @@ void QDeclarativeItem::setSize(const QSizeF &size)
/*! \internal */
bool QDeclarativeItem::wantsFocus() const
{
- return focusItem() != 0;
+ Q_D(const QDeclarativeItem);
+ return focusItem() == this ||
+ (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0) ||
+ (!parentItem() && focusItem() != 0);
}
/*!
diff --git a/src/declarative/graphicsitems/qdeclarativeitem_p.h b/src/declarative/graphicsitems/qdeclarativeitem_p.h
index fb416c2..bc5d809 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeitem_p.h
@@ -120,11 +120,11 @@ class Q_DECLARATIVE_EXPORT QDeclarativeItemPrivate : public QGraphicsItemPrivate
public:
QDeclarativeItemPrivate()
: _anchors(0), _contents(0),
- _baselineOffset(0),
+ baselineOffset(0),
_anchorLines(0),
_stateGroup(0), origin(QDeclarativeItem::Center),
widthValid(false), heightValid(false),
- _componentComplete(true), _keepMouse(false),
+ componentComplete(true), keepMouse(false),
smooth(false), transformOriginDirty(true), doneEventPreHandler(false), keyHandler(0),
mWidth(0), mHeight(0), implicitWidth(0), implicitHeight(0)
{
@@ -144,12 +144,10 @@ public:
QDeclarative_setParent_noEvent(q, parent);
q->setParentItem(parent);
}
- _baselineOffset.invalidate();
+ baselineOffset.invalidate();
mouseSetsFocus = false;
}
- QString _id;
-
// Private Properties
qreal width() const;
void setWidth(qreal);
@@ -203,7 +201,7 @@ public:
if (!_anchors) {
Q_Q(QDeclarativeItem);
_anchors = new QDeclarativeAnchors(q);
- if (!_componentComplete)
+ if (!componentComplete)
_anchors->classBegin();
}
return _anchors;
@@ -211,7 +209,7 @@ public:
QDeclarativeAnchors *_anchors;
QDeclarativeContents *_contents;
- QDeclarativeNullableValue<qreal> _baselineOffset;
+ QDeclarativeNullableValue<qreal> baselineOffset;
struct AnchorLines {
AnchorLines(QGraphicsObject *);
@@ -260,8 +258,8 @@ public:
QDeclarativeItem::TransformOrigin origin:4;
bool widthValid:1;
bool heightValid:1;
- bool _componentComplete:1;
- bool _keepMouse:1;
+ bool componentComplete:1;
+ bool keepMouse:1;
bool smooth:1;
bool transformOriginDirty : 1;
bool doneEventPreHandler : 1;
@@ -286,7 +284,9 @@ public:
// Reimplemented from QGraphicsItemPrivate
virtual void subFocusItemChange()
{
- emit q_func()->wantsFocusChanged(subFocusItem != 0);
+ if (flags & QGraphicsItem::ItemIsFocusScope || !parent)
+ emit q_func()->wantsFocusChanged(subFocusItem != 0);
+ //see also QDeclarativeItemPrivate::focusChanged
}
// Reimplemented from QGraphicsItemPrivate
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index e519bd9..fa422fd 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -494,7 +494,7 @@ public:
QSmoothedAnimation *highlightSizeAnimator;
QDeclarativeViewSection *sectionCriteria;
QString currentSection;
- static const int sectionCacheSize = 3;
+ static const int sectionCacheSize = 4;
QDeclarativeItem *sectionCache[sectionCacheSize];
qreal spacing;
qreal highlightMoveSpeed;
@@ -1029,6 +1029,11 @@ void QDeclarativeListViewPrivate::updateCurrent(int modelIndex)
}
currentItem->item->setFocus(true);
currentItem->attached->setIsCurrentItem(true);
+ // Avoid showing section delegate twice. We still need the section heading so that
+ // currentItem positioning works correctly.
+ // This is slightly sub-optimal, but section heading caching minimizes the impact.
+ if (currentItem->section)
+ currentItem->section->setVisible(false);
}
updateHighlight();
emit q->currentIndexChanged();
@@ -1072,7 +1077,7 @@ void QDeclarativeListViewPrivate::updateFooter()
}
if (footer) {
if (visibleItems.count()) {
- qreal endPos = endPosition();
+ qreal endPos = endPosition() + 1;
if (lastVisibleIndex() == model->count()-1) {
footer->setPosition(endPos);
} else {
@@ -1547,6 +1552,10 @@ void QDeclarativeListView::setModel(const QVariant &model)
} else {
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
+ if (d->highlight && d->currentItem) {
+ d->highlight->setPosition(d->currentItem->position());
+ d->updateTrackedItem();
+ }
}
}
connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int)));
@@ -1610,6 +1619,10 @@ void QDeclarativeListView::setDelegate(QDeclarativeComponent *delegate)
refill();
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
+ if (d->highlight && d->currentItem) {
+ d->highlight->setPosition(d->currentItem->position());
+ d->updateTrackedItem();
+ }
}
}
emit delegateChanged();
@@ -1636,7 +1649,6 @@ void QDeclarativeListView::setCurrentIndex(int index)
return;
if (isComponentComplete() && d->isValid() && index != d->currentIndex && index < d->model->count() && index >= 0) {
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
- cancelFlick();
d->updateCurrent(index);
} else if (index != d->currentIndex) {
d->currentIndex = index;
@@ -1720,7 +1732,7 @@ void QDeclarativeListView::setHighlight(QDeclarativeComponent *highlight)
highlight is not moved by the view, and any movement must be implemented
by the highlight.
- Here is a highlight with its motion defined by a \l {SpringFollow} item:
+ Here is a highlight with its motion defined by a \l {SpringAnimation} item:
\snippet doc/src/snippets/declarative/listview/listview.qml highlightFollowsCurrentItem
@@ -2439,7 +2451,6 @@ void QDeclarativeListView::incrementCurrentIndex()
if (currentIndex() < d->model->count() - 1 || d->wrap) {
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
int index = currentIndex()+1;
- cancelFlick();
d->updateCurrent(index < d->model->count() ? index : 0);
}
}
@@ -2458,7 +2469,6 @@ void QDeclarativeListView::decrementCurrentIndex()
if (currentIndex() > 0 || d->wrap) {
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
int index = currentIndex()-1;
- cancelFlick();
d->updateCurrent(index >= 0 ? index : d->model->count()-1);
}
}
@@ -2591,7 +2601,7 @@ void QDeclarativeListView::componentComplete()
d->updateCurrent(0);
else
d->updateCurrent(d->currentIndex);
- if (d->highlight) {
+ if (d->highlight && d->currentItem) {
d->highlight->setPosition(d->currentItem->position());
d->updateTrackedItem();
}
@@ -2611,20 +2621,17 @@ void QDeclarativeListView::trackedPositionChanged()
Q_D(QDeclarativeListView);
if (!d->trackedItem || !d->currentItem)
return;
- if (!d->flickingHorizontally && !d->flickingVertically && !d->movingHorizontally && !d->movingVertically
- && d->moveReason == QDeclarativeListViewPrivate::SetIndex) {
+ if (d->moveReason == QDeclarativeListViewPrivate::SetIndex) {
const qreal trackedPos = qCeil(d->trackedItem->position());
const qreal viewPos = d->position();
+ qreal pos = viewPos;
if (d->haveHighlightRange) {
if (d->highlightRange == StrictlyEnforceRange) {
- qreal pos = viewPos;
if (trackedPos > pos + d->highlightRangeEnd - d->trackedItem->size())
pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size();
if (trackedPos < pos + d->highlightRangeStart)
pos = trackedPos - d->highlightRangeStart;
- d->setPosition(pos);
} else {
- qreal pos = viewPos;
if (trackedPos < d->startPosition() + d->highlightRangeStart) {
pos = d->startPosition();
} else if (d->trackedItem->endPosition() > d->endPosition() - d->size() + d->highlightRangeEnd) {
@@ -2638,14 +2645,12 @@ void QDeclarativeListView::trackedPositionChanged()
pos = trackedPos - d->highlightRangeEnd + d->trackedItem->size();
}
}
- d->setPosition(pos);
}
} else {
if (trackedPos < viewPos && d->currentItem->position() < viewPos) {
- d->setPosition(d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position());
+ pos = d->currentItem->position() < trackedPos ? trackedPos : d->currentItem->position();
} else if (d->trackedItem->endPosition() > viewPos + d->size()
&& d->currentItem->endPosition() > viewPos + d->size()) {
- qreal pos;
if (d->trackedItem->endPosition() < d->currentItem->endPosition()) {
pos = d->trackedItem->endPosition() - d->size();
if (d->trackedItem->size() > d->size())
@@ -2655,9 +2660,12 @@ void QDeclarativeListView::trackedPositionChanged()
if (d->currentItem->size() > d->size())
pos = d->currentItem->position();
}
- d->setPosition(pos);
}
}
+ if (viewPos != pos) {
+ cancelFlick();
+ d->setPosition(pos);
+ }
}
}
@@ -2885,8 +2893,11 @@ void QDeclarativeListView::itemsRemoved(int modelIndex, int count)
d->visiblePos = d->header ? d->header->size() : 0;
d->timeline.clear();
d->setPosition(0);
- if (d->itemCount == 0)
+ if (d->itemCount == 0) {
+ d->updateHeader();
+ d->updateFooter();
update();
+ }
}
emit countChanged();
@@ -3021,6 +3032,11 @@ void QDeclarativeListView::modelReset()
refill();
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
+ if (d->highlight && d->currentItem) {
+ d->highlight->setPosition(d->currentItem->position());
+ d->updateTrackedItem();
+ }
+ d->moveReason = QDeclarativeListViewPrivate::Other;
emit countChanged();
}
diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
index caf251d..b7b0c9e 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp
+++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
@@ -443,7 +443,7 @@ void QDeclarativeMouseArea::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
QPointF startLocalPos;
QPointF curLocalPos;
- if (drag()->target()->parent()) {
+ if (drag()->target()->parentItem()) {
startLocalPos = drag()->target()->parentItem()->mapFromScene(d->startScene);
curLocalPos = drag()->target()->parentItem()->mapFromScene(event->scenePos());
} else {
@@ -761,16 +761,22 @@ QDeclarativeDrag *QDeclarativeMouseArea::drag()
\c drag provides a convenient way to make an item draggable.
\list
- \i \c drag.target specifies the item to drag.
+ \i \c drag.target specifies the id of the item to drag.
\i \c drag.active specifies if the target item is currently being dragged.
\i \c drag.axis specifies whether dragging can be done horizontally (\c Drag.XAxis), vertically (\c Drag.YAxis), or both (\c Drag.XandYAxis)
\i \c drag.minimum and \c drag.maximum limit how far the target can be dragged along the corresponding axes.
\endlist
- The following example displays an image that can be dragged along the X-axis. The opacity
- of the image is reduced when it is dragged to the right.
+ The following example displays a \l Rectangle that can be dragged along the X-axis. The opacity
+ of the rectangle is reduced when it is dragged to the right.
\snippet doc/src/snippets/declarative/mousearea.qml drag
+
+ \note Items cannot be dragged if they are anchored for the requested
+ \c drag.axis. For example, if \c anchors.left or \c anchors.right was set
+ for \c rect in the above example, it cannot be dragged along the X-axis.
+ This can be avoided by settng the anchor value to \c undefined in
+ an \l onPressed handler.
*/
QT_END_NAMESPACE
diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp
index 0e980b3..f4ebd13 100644
--- a/src/declarative/graphicsitems/qdeclarativepathview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp
@@ -329,6 +329,10 @@ void QDeclarativePathViewPrivate::regenerate()
\image pathview.gif
+ (Note the above example uses PathAttribute to scale and modify the
+ opacity of the items as they rotate. This additional code can be seen in the
+ PathAttribute documentation.)
+
Delegates are instantiated as needed and may be destroyed at any time.
State should \e never be stored in a delegate.
diff --git a/src/declarative/graphicsitems/qdeclarativerepeater.cpp b/src/declarative/graphicsitems/qdeclarativerepeater.cpp
index 87da904..3be4014 100644
--- a/src/declarative/graphicsitems/qdeclarativerepeater.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerepeater.cpp
@@ -85,6 +85,19 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
The \l model of a Repeater can be any of the supported \l {qmlmodels}{Data Models}.
+ Items instantiated by the Repeater are inserted, in order, as
+ children of the Repeater's parent. The insertion starts immediately after
+ the repeater's position in its parent stacking list. This allows
+ 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
+
+ \image repeater.png
+
+
+ \section2 The \c index and \c modelData properties
+
The index of a delegate is exposed as an accessible \c index property in the delegate.
Properties of the model are also available depending upon the type of \l {qmlmodels}{Data Model}.
@@ -105,25 +118,22 @@ QDeclarativeRepeaterPrivate::~QDeclarativeRepeaterPrivate()
\o \image repeater-modeldata.png
\endtable
- Items instantiated by the Repeater are inserted, in order, as
- children of the Repeater's parent. The insertion starts immediately after
- the repeater's position in its parent stacking list. This allows
- 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
-
- \image repeater.png
A Repeater item owns all items it instantiates. Removing or dynamically destroying
an item created by a Repeater results in unpredictable behavior.
- Note that if a repeater is
- required to instantiate a large number of items, it may be more efficient to
- use other view elements such as ListView.
- \note Repeater is \l {Item}-based, and can only repeat \l {Item}-derived objects.
- For example, it cannot be used to repeat QtObjects.
+ \section2 Considerations when using Repeater
+
+ The Repeater element creates all of its delegate items when the repeater is first
+ created. This can be inefficient if there are a large number of delegate items and
+ not all of the items are required to be visible at the same time. If this is the case,
+ consider using other view elements like ListView (which only creates delegate items
+ when they are scrolled into view) or use the \l {Dynamic Object Creation} methods to
+ create items as they are required.
+
+ Also, note that Repeater is \l {Item}-based, and can only repeat \l {Item}-derived objects.
+ For example, it cannot be used to repeat QtObjects:
\badcode
Item {
//XXX does not work! Can't repeat QtObject as it doesn't derive from Item.
diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp
index 0bd9a53..ba4fa21 100644
--- a/src/declarative/graphicsitems/qdeclarativetext.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetext.cpp
@@ -61,52 +61,100 @@ class QTextDocumentWithImageResources : public QTextDocument {
Q_OBJECT
public:
- QTextDocumentWithImageResources(QDeclarativeText *parent) :
- QTextDocument(parent),
- outstanding(0)
- {
- }
+ QTextDocumentWithImageResources(QDeclarativeText *parent);
+ virtual ~QTextDocumentWithImageResources();
+ void setText(const QString &);
int resourcesLoading() const { return outstanding; }
protected:
- QVariant loadResource(int type, const QUrl &name)
- {
- QUrl url = qmlContext(parent())->resolvedUrl(name);
-
- if (type == QTextDocument::ImageResource) {
- QPixmap pm;
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(url, &pm, &errorString, 0, false, 0, 0);
- if (status == QDeclarativePixmapReply::Ready)
- return pm;
- if (status == QDeclarativePixmapReply::Error) {
- if (!errors.contains(url)) {
- errors.insert(url);
- qmlInfo(parent()) << errorString;
- }
- } else {
- QDeclarativePixmapReply *reply = QDeclarativePixmapCache::request(qmlEngine(parent()), url);
- connect(reply, SIGNAL(finished()), this, SLOT(requestFinished()));
+ QVariant loadResource(int type, const QUrl &name);
+
+private slots:
+ void requestFinished();
+
+private:
+ QHash<QUrl, QDeclarativePixmap *> m_resources;
+
+ int outstanding;
+ static QSet<QUrl> errors;
+};
+
+QTextDocumentWithImageResources::QTextDocumentWithImageResources(QDeclarativeText *parent)
+: QTextDocument(parent), outstanding(0)
+{
+}
+
+QTextDocumentWithImageResources::~QTextDocumentWithImageResources()
+{
+ if (!m_resources.isEmpty())
+ qDeleteAll(m_resources);
+}
+
+QVariant QTextDocumentWithImageResources::loadResource(int type, const QUrl &name)
+{
+ QDeclarativeContext *context = qmlContext(parent());
+ QUrl url = context->resolvedUrl(name);
+
+ if (type == QTextDocument::ImageResource) {
+ QHash<QUrl, QDeclarativePixmap *>::Iterator iter = m_resources.find(url);
+
+ if (iter == m_resources.end()) {
+ QDeclarativePixmap *p = new QDeclarativePixmap(context->engine(), url);
+ iter = m_resources.insert(name, p);
+
+ if (p->isLoading()) {
+ p->connectFinished(this, SLOT(requestFinished()));
outstanding++;
}
}
- return QTextDocument::loadResource(type,url); // The *resolved* URL
+ QDeclarativePixmap *p = *iter;
+ if (p->isReady()) {
+ return p->pixmap();
+ } else if (p->isError()) {
+ if (!errors.contains(url)) {
+ errors.insert(url);
+ qmlInfo(parent()) << p->error();
+ }
+ }
}
-private slots:
- void requestFinished()
- {
- outstanding--;
- if (outstanding == 0)
- static_cast<QDeclarativeText*>(parent())->reloadWithResources();
+ return QTextDocument::loadResource(type,url); // The *resolved* URL
+}
+
+void QTextDocumentWithImageResources::requestFinished()
+{
+ outstanding--;
+ if (outstanding == 0) {
+ QDeclarativeText *textItem = static_cast<QDeclarativeText*>(parent());
+ QString text = textItem->text();
+#ifndef QT_NO_TEXTHTMLPARSER
+ setHtml(text);
+#else
+ setPlainText(text);
+#endif
+ QDeclarativeTextPrivate *d = QDeclarativeTextPrivate::get(textItem);
+ d->updateLayout();
+ d->markImgDirty();
}
+}
-private:
- int outstanding;
- static QSet<QUrl> errors;
-};
+void QTextDocumentWithImageResources::setText(const QString &text)
+{
+ if (!m_resources.isEmpty()) {
+ qWarning("CLEAR");
+ qDeleteAll(m_resources);
+ m_resources.clear();
+ outstanding = 0;
+ }
+
+#ifndef QT_NO_TEXTHTMLPARSER
+ setHtml(text);
+#else
+ setPlainText(text);
+#endif
+}
QSet<QUrl> QTextDocumentWithImageResources::errors;
@@ -314,11 +362,7 @@ void QDeclarativeText::setText(const QString &n)
if (d->richText) {
if (isComponentComplete()) {
d->ensureDoc();
-#ifndef QT_NO_TEXTHTMLPARSER
- d->doc->setHtml(n);
-#else
- d->doc->setPlainText(n);
-#endif
+ d->doc->setText(n);
}
}
@@ -607,11 +651,7 @@ void QDeclarativeText::setTextFormat(TextFormat format)
} else if (!wasRich && d->richText) {
if (isComponentComplete()) {
d->ensureDoc();
-#ifndef QT_NO_TEXTHTMLPARSER
- d->doc->setHtml(d->text);
-#else
- d->doc->setPlainText(d->text);
-#endif
+ d->doc->setText(d->text);
}
d->updateLayout();
d->markImgDirty();
@@ -671,6 +711,8 @@ QRectF QDeclarativeText::boundingRect() const
int x = 0;
int y = 0;
+ // Could include font max left/right bearings to either side of rectangle.
+
if (d->cache || d->style != Normal) {
switch (d->hAlign) {
case AlignLeft:
@@ -730,7 +772,7 @@ void QDeclarativeText::geometryChanged(const QRectF &newGeometry,
const QRectF &oldGeometry)
{
Q_D(QDeclarativeText);
- if (newGeometry.width() != oldGeometry.width()) {
+ if (!d->internalWidthUpdate && newGeometry.width() != oldGeometry.width()) {
if (d->wrapMode != QDeclarativeText::NoWrap || d->elideMode != QDeclarativeText::ElideNone) {
//re-elide if needed
if (d->singleline && d->elideMode != QDeclarativeText::ElideNone &&
@@ -830,7 +872,9 @@ void QDeclarativeTextPrivate::updateSize()
q->setBaselineOffset(fm.ascent() + yoff);
//### need to comfirm cost of always setting these for richText
+ internalWidthUpdate = true;
q->setImplicitWidth(size.width());
+ internalWidthUpdate = false;
q->setImplicitHeight(size.height());
emit q->paintedSizeChanged();
} else {
@@ -1074,20 +1118,6 @@ void QDeclarativeTextPrivate::ensureDoc()
}
}
-void QDeclarativeText::reloadWithResources()
-{
- Q_D(QDeclarativeText);
- if (!d->richText)
- return;
-#ifndef QT_NO_TEXTHTMLPARSER
- d->doc->setHtml(d->text);
-#else
- d->doc->setPlainText(d->text);
-#endif
- d->updateLayout();
- d->markImgDirty();
-}
-
/*!
Returns the number of resources (images) that are being loaded asynchronously.
*/
@@ -1097,6 +1127,15 @@ int QDeclarativeText::resourcesLoading() const
return d->doc ? d->doc->resourcesLoading() : 0;
}
+/*!
+ \qmlproperty bool Text::clip
+ This property holds whether the text is clipped.
+
+ Note that if the text does not fit in the bounding rectangle it will be abruptly chopped.
+
+ If you want to display potentially long text in a limited space, you probably want to use \c elide instead.
+*/
+
void QDeclarativeText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *)
{
Q_D(QDeclarativeText);
@@ -1116,13 +1155,10 @@ void QDeclarativeText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWid
bool needClip = clip() && (d->imgCache.width() > width() ||
d->imgCache.height() > height());
- if (needClip) {
- p->save();
- p->setClipRect(boundingRect(), Qt::IntersectClip);
- }
- p->drawPixmap(br.x(), br.y(), d->imgCache);
if (needClip)
- p->restore();
+ p->drawPixmap(0, 0, width(), height(), d->imgCache, -br.x(), -br.y(), width(), height());
+ else
+ p->drawPixmap(br.x(), br.y(), d->imgCache);
if (d->smooth) {
p->setRenderHint(QPainter::Antialiasing, oldAA);
@@ -1136,7 +1172,7 @@ void QDeclarativeText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWid
if (needClip) {
p->save();
- p->setClipRect(boundingRect(), Qt::IntersectClip);
+ p->setClipRect(0, 0, width(), height(), Qt::IntersectClip);
}
if (d->richText) {
QAbstractTextDocumentLayout::PaintContext context;
@@ -1173,11 +1209,7 @@ void QDeclarativeText::componentComplete()
if (d->dirty) {
if (d->richText) {
d->ensureDoc();
-#ifndef QT_NO_TEXTHTMLPARSER
- d->doc->setHtml(d->text);
-#else
- d->doc->setPlainText(d->text);
-#endif
+ d->doc->setText(d->text);
}
d->updateLayout();
d->dirty = false;
diff --git a/src/declarative/graphicsitems/qdeclarativetext_p.h b/src/declarative/graphicsitems/qdeclarativetext_p.h
index cd97df3..2cc4d52 100644
--- a/src/declarative/graphicsitems/qdeclarativetext_p.h
+++ b/src/declarative/graphicsitems/qdeclarativetext_p.h
@@ -168,9 +168,6 @@ protected:
private:
Q_DISABLE_COPY(QDeclarativeText)
Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QDeclarativeText)
-
- friend class QTextDocumentWithImageResources;
- void reloadWithResources();
};
QT_END_NAMESPACE
diff --git a/src/declarative/graphicsitems/qdeclarativetext_p_p.h b/src/declarative/graphicsitems/qdeclarativetext_p_p.h
index 332f99e..48552a7 100644
--- a/src/declarative/graphicsitems/qdeclarativetext_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativetext_p_p.h
@@ -72,7 +72,7 @@ public:
QDeclarativeTextPrivate()
: color((QRgb)0), style(QDeclarativeText::Normal),
hAlign(QDeclarativeText::AlignLeft), vAlign(QDeclarativeText::AlignTop), elideMode(QDeclarativeText::ElideNone),
- imgDirty(true), dirty(true), richText(false), singleline(false), cache(true), doc(0),
+ imgDirty(true), dirty(true), richText(false), singleline(false), cache(true), internalWidthUpdate(false), doc(0),
format(QDeclarativeText::AutoText), wrapMode(QDeclarativeText::NoWrap)
{
#if defined(QML_NO_TEXT_CACHE)
@@ -119,11 +119,16 @@ public:
bool richText:1;
bool singleline:1;
bool cache:1;
+ bool internalWidthUpdate:1;
QTextDocumentWithImageResources *doc;
QTextLayout layout;
QSize cachedLayoutSize;
QDeclarativeText::TextFormat format;
QDeclarativeText::WrapMode wrapMode;
+
+ static inline QDeclarativeTextPrivate *get(QDeclarativeText *t) {
+ return t->d_func();
+ }
};
QT_END_NAMESPACE
diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp
index 3f179da..d13e139 100644
--- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp
@@ -1264,6 +1264,15 @@ void QDeclarativeTextEditPrivate::init()
control = new QTextControl(q);
control->setIgnoreUnusedNavigationEvents(true);
+ // QTextControl follows the default text color
+ // defined by the platform, declarative text
+ // should be black by default
+ QPalette pal = control->palette();
+ if (pal.color(QPalette::Text) != color) {
+ pal.setColor(QPalette::Text, color);
+ control->setPalette(pal);
+ }
+
QObject::connect(control, SIGNAL(updateRequest(QRectF)), q, SLOT(updateImgCache(QRectF)));
QObject::connect(control, SIGNAL(textChanged()), q, SLOT(q_textChanged()));
@@ -1333,6 +1342,15 @@ QRectF QDeclarativeTextEdit::boundingRect() const
{
Q_D(const QDeclarativeTextEdit);
QRectF r = QDeclarativePaintedItem::boundingRect();
+ int cursorWidth = 1;
+ if(d->cursor)
+ cursorWidth = d->cursor->width();
+ if(!d->document->isEmpty())
+ cursorWidth += 3;// ### Need a better way of accounting for space between char and cursor
+
+ // Could include font max left/right bearings to either side of rectangle.
+
+ r.setRight(r.right() + cursorWidth);
return r.translated(0,d->yoff);
}
@@ -1372,12 +1390,6 @@ void QDeclarativeTextEdit::updateSize()
int newWidth = qCeil(d->document->idealWidth());
if (!widthValid() && d->document->textWidth() != newWidth)
d->document->setTextWidth(newWidth); // ### Text does not align if width is not set (QTextDoc bug)
- int cursorWidth = 1;
- if(d->cursor)
- cursorWidth = d->cursor->width();
- newWidth += cursorWidth;
- if(!d->document->isEmpty())
- newWidth += 3;// ### Need a better way of accounting for space between char and cursor
// ### Setting the implicitWidth triggers another updateSize(), and unless there are bindings nothing has changed.
setImplicitWidth(newWidth);
qreal newHeight = d->document->isEmpty() ? fm.height() : (int)d->document->size().height();
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
index ed999a2..2a5d73d 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
@@ -100,8 +100,6 @@ void QDeclarativeTextInput::setText(const QString &s)
if(s == text())
return;
d->control->setText(s);
- d->updateHorizontalScroll();
- //emit textChanged();
}
/*!
@@ -277,6 +275,8 @@ void QDeclarativeTextInput::setSelectionColor(const QColor &color)
QPalette p = d->control->palette();
p.setColor(QPalette::Highlight, d->selectionColor);
d->control->setPalette(p);
+ clearCache();
+ update();
emit selectionColorChanged(color);
}
@@ -301,6 +301,8 @@ void QDeclarativeTextInput::setSelectedTextColor(const QColor &color)
QPalette p = d->control->palette();
p.setColor(QPalette::HighlightedText, d->selectedTextColor);
d->control->setPalette(p);
+ clearCache();
+ update();
emit selectedTextColorChanged(color);
}
@@ -550,9 +552,9 @@ void QDeclarativeTextInput::setAutoScroll(bool b)
return;
d->autoScroll = b;
- d->updateHorizontalScroll();
//We need to repaint so that the scrolling is taking into account.
updateSize(true);
+ d->updateHorizontalScroll();
emit autoScrollChanged(d->autoScroll);
}
@@ -826,7 +828,7 @@ void QDeclarativeTextInput::createCursor()
QDeclarative_setParent_noEvent(d->cursorItem, this);
d->cursorItem->setParentItem(this);
d->cursorItem->setX(d->control->cursorToX());
- d->cursorItem->setHeight(d->control->height());
+ d->cursorItem->setHeight(d->control->height()-1); // -1 to counter QLineControl's +1 which is not consistent with Text.
}
void QDeclarativeTextInput::moveCursor()
@@ -910,6 +912,7 @@ void QDeclarativeTextInput::keyPressEvent(QKeyEvent* ev)
void QDeclarativeTextInput::inputMethodEvent(QInputMethodEvent *ev)
{
Q_D(QDeclarativeTextInput);
+ ev->ignore();
inputMethodPreHandler(ev);
if (ev->isAccepted())
return;
@@ -1020,27 +1023,31 @@ bool QDeclarativeTextInput::event(QEvent* ev)
void QDeclarativeTextInput::geometryChanged(const QRectF &newGeometry,
const QRectF &oldGeometry)
{
- if (newGeometry.width() != oldGeometry.width())
+ Q_D(QDeclarativeTextInput);
+ if (newGeometry.width() != oldGeometry.width()) {
updateSize();
+ d->updateHorizontalScroll();
+ }
QDeclarativePaintedItem::geometryChanged(newGeometry, oldGeometry);
}
+int QDeclarativeTextInputPrivate::calculateTextWidth()
+{
+ return qRound(control->naturalTextWidth());
+}
+
void QDeclarativeTextInputPrivate::updateHorizontalScroll()
{
Q_Q(QDeclarativeTextInput);
- QFontMetrics fm = QFontMetrics(font);
int cix = qRound(control->cursorToX());
QRect br(q->boundingRect().toRect());
- //###Is this using bearing appropriately?
- int minLB = qMax(0, -fm.minLeftBearing());
- int minRB = qMax(0, -fm.minRightBearing());
- int widthUsed = qRound(control->naturalTextWidth()) + 1 + minRB;
+ int widthUsed = calculateTextWidth();
if (autoScroll) {
- if ((minLB + widthUsed) <= br.width()) {
+ if (widthUsed <= br.width()) {
// text fits in br; use hscroll for alignment
switch (hAlign & ~(Qt::AlignAbsolute|Qt::AlignVertical_Mask)) {
case Qt::AlignRight:
- hscroll = widthUsed - br.width() + 1;
+ hscroll = widthUsed - br.width() - 1;
break;
case Qt::AlignHCenter:
hscroll = (widthUsed - br.width()) / 2;
@@ -1050,7 +1057,6 @@ void QDeclarativeTextInputPrivate::updateHorizontalScroll()
hscroll = 0;
break;
}
- hscroll -= minLB;
} else if (cix - hscroll >= br.width()) {
// text doesn't fit, cursor is to the right of br (scroll right)
hscroll = cix - br.width() + 1;
@@ -1070,7 +1076,6 @@ void QDeclarativeTextInputPrivate::updateHorizontalScroll()
} else {
hscroll = 0;
}
- hscroll -= minLB;
}
}
@@ -1095,7 +1100,6 @@ void QDeclarativeTextInput::drawContents(QPainter *p, const QRect &r)
offset = QPoint(d->hscroll, 0);
}
d->control->draw(p, offset, r, flags);
-
p->restore();
}
@@ -1142,6 +1146,42 @@ void QDeclarativeTextInput::selectAll()
d->control->setSelection(0, d->control->text().length());
}
+#ifndef QT_NO_CLIPBOARD
+/*!
+ \qmlmethod TextInput::cut()
+
+ Moves the currently selected text to the system clipboard.
+*/
+void QDeclarativeTextInput::cut()
+{
+ Q_D(QDeclarativeTextInput);
+ d->control->copy();
+ d->control->del();
+}
+
+/*!
+ \qmlmethod TextInput::copy()
+
+ Copies the currently selected text to the system clipboard.
+*/
+void QDeclarativeTextInput::copy()
+{
+ Q_D(QDeclarativeTextInput);
+ d->control->copy();
+}
+
+/*!
+ \qmlmethod TextInput::paste()
+
+ Replaces the currently selected text by the contents of the system clipboard.
+*/
+void QDeclarativeTextInput::paste()
+{
+ Q_D(QDeclarativeTextInput);
+ d->control->paste();
+}
+#endif // QT_NO_CLIPBOARD
+
/*!
\qmlmethod void TextInput::selectWord()
@@ -1448,8 +1488,8 @@ void QDeclarativeTextInput::selectionChanged()
void QDeclarativeTextInput::q_textChanged()
{
Q_D(QDeclarativeTextInput);
- d->updateHorizontalScroll();
updateSize();
+ d->updateHorizontalScroll();
updateMicroFocus();
emit textChanged();
emit displayTextChanged();
@@ -1469,16 +1509,26 @@ void QDeclarativeTextInput::updateRect(const QRect &r)
update();
}
+QRectF QDeclarativeTextInput::boundingRect() const
+{
+ Q_D(const QDeclarativeTextInput);
+ QRectF r = QDeclarativePaintedItem::boundingRect();
+
+ int cursorWidth = d->cursorItem ? d->cursorItem->width() : d->control->cursorWidth();
+
+ // Could include font max left/right bearings to either side of rectangle.
+
+ r.setRight(r.right() + cursorWidth);
+ return r;
+}
+
void QDeclarativeTextInput::updateSize(bool needsRedraw)
{
Q_D(QDeclarativeTextInput);
int w = width();
int h = height();
- setImplicitHeight(d->control->height());
- int cursorWidth = d->control->cursorWidth();
- if(d->cursorItem)
- cursorWidth = d->cursorItem->width();
- setImplicitWidth(d->control->naturalTextWidth() + cursorWidth);
+ setImplicitHeight(d->control->height()-1); // -1 to counter QLineControl's +1 which is not consistent with Text.
+ setImplicitWidth(d->calculateTextWidth());
setContentsSize(QSize(width(), height()));//Repaints if changed
if(w==width() && h==height() && needsRedraw){
clearCache();
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput_p.h b/src/declarative/graphicsitems/qdeclarativetextinput_p.h
index bacd041..b1862c6 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput_p.h
+++ b/src/declarative/graphicsitems/qdeclarativetextinput_p.h
@@ -187,6 +187,8 @@ public:
void drawContents(QPainter *p,const QRect &r);
QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+ QRectF boundingRect() const;
+
Q_SIGNALS:
void textChanged();
void cursorPositionChanged();
@@ -230,6 +232,11 @@ public Q_SLOTS:
void selectAll();
void selectWord();
void select(int start, int end);
+#ifndef QT_NO_CLIPBOARD
+ void cut();
+ void copy();
+ void paste();
+#endif
private Q_SLOTS:
void updateSize(bool needsRedraw = true);
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h
index 8b74bcc..4ac5134 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativetextinput_p_p.h
@@ -100,6 +100,7 @@ public:
void startCreatingCursor();
void focusChanged(bool hasFocus);
void updateHorizontalScroll();
+ int calculateTextWidth();
QLineControl* control;
diff --git a/src/declarative/qml/qdeclarativebinding.cpp b/src/declarative/qml/qdeclarativebinding.cpp
index 882e981..e096305 100644
--- a/src/declarative/qml/qdeclarativebinding.cpp
+++ b/src/declarative/qml/qdeclarativebinding.cpp
@@ -54,27 +54,20 @@
QT_BEGIN_NAMESPACE
-QDeclarativeBindingData::QDeclarativeBindingData()
-: updating(false), enabled(false)
+void QDeclarativeBindingPrivate::refresh()
{
+ Q_Q(QDeclarativeBinding);
+ q->update();
}
-QDeclarativeBindingData::~QDeclarativeBindingData()
-{
- removeError();
-}
-
-void QDeclarativeBindingData::refresh()
+QDeclarativeBindingPrivate::QDeclarativeBindingPrivate()
+: updating(false), enabled(false), deleted(0)
{
- if (enabled && !updating && q) {
- QDeclarativeBinding *b = static_cast<QDeclarativeBinding *>(QDeclarativeExpressionPrivate::get(q));
- b->update();
- }
}
-QDeclarativeBindingPrivate::QDeclarativeBindingPrivate()
-: QDeclarativeExpressionPrivate(new QDeclarativeBindingData)
+QDeclarativeBindingPrivate::~QDeclarativeBindingPrivate()
{
+ if (deleted) *deleted = true;
}
QDeclarativeBinding::QDeclarativeBinding(void *data, QDeclarativeRefCount *rc, QObject *obj,
@@ -109,7 +102,7 @@ QDeclarativeBinding::~QDeclarativeBinding()
void QDeclarativeBinding::setTarget(const QDeclarativeProperty &prop)
{
Q_D(QDeclarativeBinding);
- d->bindingData()->property = prop;
+ d->property = prop;
update();
}
@@ -117,50 +110,53 @@ void QDeclarativeBinding::setTarget(const QDeclarativeProperty &prop)
QDeclarativeProperty QDeclarativeBinding::property() const
{
Q_D(const QDeclarativeBinding);
- return d->bindingData()->property;
+ return d->property;
}
void QDeclarativeBinding::update(QDeclarativePropertyPrivate::WriteFlags flags)
{
Q_D(QDeclarativeBinding);
- QDeclarativeBindingData *data = d->bindingData();
-
- if (!data->enabled || !data->context() || !data->context()->isValid())
+ if (!d->enabled || !d->context() || !d->context()->isValid())
return;
- data->addref();
-
- if (!data->updating) {
- data->updating = true;
+ if (!d->updating) {
+ d->updating = true;
+ bool wasDeleted = false;
+ d->deleted = &wasDeleted;
- if (data->property.propertyType() == qMetaTypeId<QDeclarativeBinding *>()) {
+ if (d->property.propertyType() == qMetaTypeId<QDeclarativeBinding *>()) {
- int idx = data->property.index();
+ int idx = d->property.index();
Q_ASSERT(idx != -1);
-
QDeclarativeBinding *t = this;
int status = -1;
void *a[] = { &t, 0, &status, &flags };
- QMetaObject::metacall(data->property.object(),
+ QMetaObject::metacall(d->property.object(),
QMetaObject::WriteProperty,
idx, a);
+ if (wasDeleted)
+ return;
+
} else {
- QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(data->context()->engine);
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(d->context()->engine);
bool isUndefined = false;
QVariant value;
QScriptValue scriptValue = d->scriptValue(0, &isUndefined);
- if (data->property.propertyTypeCategory() == QDeclarativeProperty::List) {
+ if (wasDeleted)
+ return;
+
+ if (d->property.propertyTypeCategory() == QDeclarativeProperty::List) {
value = ep->scriptValueToVariant(scriptValue, qMetaTypeId<QList<QObject *> >());
} else if (scriptValue.isNull() &&
- data->property.propertyTypeCategory() == QDeclarativeProperty::Object) {
+ d->property.propertyTypeCategory() == QDeclarativeProperty::Object) {
value = QVariant::fromValue((QObject *)0);
} else {
- value = ep->scriptValueToVariant(scriptValue, data->property.propertyType());
+ value = ep->scriptValueToVariant(scriptValue, d->property.propertyType());
if (value.userType() == QMetaType::QObjectStar && !qvariant_cast<QObject*>(value)) {
// If the object is null, we extract the predicted type. While this isn't
// 100% reliable, in many cases it gives us better error messages if we
@@ -172,73 +168,78 @@ void QDeclarativeBinding::update(QDeclarativePropertyPrivate::WriteFlags flags)
}
- if (data->error.isValid()) {
+ if (d->error.isValid()) {
- } else if (isUndefined && data->property.isResettable()) {
+ } else if (isUndefined && d->property.isResettable()) {
- data->property.reset();
+ d->property.reset();
- } else if (isUndefined && data->property.propertyType() == qMetaTypeId<QVariant>()) {
+ } else if (isUndefined && d->property.propertyType() == qMetaTypeId<QVariant>()) {
- QDeclarativePropertyPrivate::write(data->property, QVariant(), flags);
+ QDeclarativePropertyPrivate::write(d->property, QVariant(), flags);
} else if (isUndefined) {
- QUrl url = QUrl(data->url);
- int line = data->line;
+ QUrl url = QUrl(d->url);
+ int line = d->line;
if (url.isEmpty()) url = QUrl(QLatin1String("<Unknown File>"));
- data->error.setUrl(url);
- data->error.setLine(line);
- data->error.setColumn(-1);
- data->error.setDescription(QLatin1String("Unable to assign [undefined] to ")
- + QLatin1String(QMetaType::typeName(data->property.propertyType()))
- + QLatin1String(" ") + data->property.name());
+ d->error.setUrl(url);
+ d->error.setLine(line);
+ d->error.setColumn(-1);
+ d->error.setDescription(QLatin1String("Unable to assign [undefined] to ") +
+ QLatin1String(QMetaType::typeName(d->property.propertyType())) +
+ QLatin1String(" ") + d->property.name());
} else if (!scriptValue.isRegExp() && scriptValue.isFunction()) {
- QUrl url = QUrl(data->url);
- int line = data->line;
+ QUrl url = QUrl(d->url);
+ int line = d->line;
if (url.isEmpty()) url = QUrl(QLatin1String("<Unknown File>"));
- data->error.setUrl(url);
- data->error.setLine(line);
- data->error.setColumn(-1);
- data->error.setDescription(QLatin1String("Unable to assign a function to a property."));
+ d->error.setUrl(url);
+ d->error.setLine(line);
+ d->error.setColumn(-1);
+ d->error.setDescription(QLatin1String("Unable to assign a function to a property."));
+
+ } else if (d->property.object() &&
+ !QDeclarativePropertyPrivate::write(d->property, value, flags)) {
- } else if (data->property.object() &&
- !QDeclarativePropertyPrivate::write(data->property, value, flags)) {
+ if (wasDeleted)
+ return;
- QUrl url = QUrl(data->url);
- int line = data->line;
+ QUrl url = QUrl(d->url);
+ int line = d->line;
if (url.isEmpty()) url = QUrl(QLatin1String("<Unknown File>"));
const char *valueType = 0;
if (value.userType() == QVariant::Invalid) valueType = "null";
else valueType = QMetaType::typeName(value.userType());
- data->error.setUrl(url);
- data->error.setLine(line);
- data->error.setColumn(-1);
- data->error.setDescription(QLatin1String("Unable to assign ") +
- QLatin1String(valueType) +
- QLatin1String(" to ") +
- QLatin1String(QMetaType::typeName(data->property.propertyType())));
+ d->error.setUrl(url);
+ d->error.setLine(line);
+ d->error.setColumn(-1);
+ d->error.setDescription(QLatin1String("Unable to assign ") +
+ QLatin1String(valueType) +
+ QLatin1String(" to ") +
+ QLatin1String(QMetaType::typeName(d->property.propertyType())));
}
- if (data->error.isValid()) {
- if (!data->addError(ep)) ep->warning(this->error());
+ if (wasDeleted)
+ return;
+
+ if (d->error.isValid()) {
+ if (!d->addError(ep)) ep->warning(this->error());
} else {
- data->removeError();
+ d->removeError();
}
}
- data->updating = false;
+ d->updating = false;
+ d->deleted = 0;
} else {
- qmlInfo(data->property.object()) << tr("Binding loop detected for property \"%1\"").arg(data->property.name());
+ qmlInfo(d->property.object()) << tr("Binding loop detected for property \"%1\"").arg(d->property.name());
}
-
- data->release();
}
void QDeclarativeBindingPrivate::emitValueChanged()
@@ -250,13 +251,13 @@ void QDeclarativeBindingPrivate::emitValueChanged()
void QDeclarativeBinding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteFlags flags)
{
Q_D(QDeclarativeBinding);
- d->bindingData()->enabled = e;
+ d->enabled = e;
setNotifyOnValueChanged(e);
QDeclarativeAbstractBinding::setEnabled(e, flags);
if (e) {
- addToObject(d->bindingData()->property.object());
+ addToObject(d->property.object());
update(flags);
} else {
removeFromObject();
@@ -266,14 +267,14 @@ void QDeclarativeBinding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteF
int QDeclarativeBinding::propertyIndex()
{
Q_D(QDeclarativeBinding);
- return QDeclarativePropertyPrivate::bindingIndex(d->bindingData()->property);
+ return QDeclarativePropertyPrivate::bindingIndex(d->property);
}
bool QDeclarativeBinding::enabled() const
{
Q_D(const QDeclarativeBinding);
- return d->bindingData()->enabled;
+ return d->enabled;
}
QString QDeclarativeBinding::expression() const
diff --git a/src/declarative/qml/qdeclarativebinding_p_p.h b/src/declarative/qml/qdeclarativebinding_p_p.h
index 617ec4b..6926158 100644
--- a/src/declarative/qml/qdeclarativebinding_p_p.h
+++ b/src/declarative/qml/qdeclarativebinding_p_p.h
@@ -60,30 +60,24 @@
QT_BEGIN_NAMESPACE
-class QDeclarativeBindingData : public QDeclarativeExpressionData
-{
-public:
- QDeclarativeBindingData();
- virtual ~QDeclarativeBindingData();
-
- bool updating:1;
- bool enabled:1;
-
- QDeclarativeProperty property;
-
- virtual void refresh();
-};
-
class QDeclarativeBindingPrivate : public QDeclarativeExpressionPrivate
{
Q_DECLARE_PUBLIC(QDeclarativeBinding)
public:
QDeclarativeBindingPrivate();
-
- QDeclarativeBindingData *bindingData() { return static_cast<QDeclarativeBindingData *>(data); }
- const QDeclarativeBindingData *bindingData() const { return static_cast<const QDeclarativeBindingData *>(data); }
+ ~QDeclarativeBindingPrivate();
virtual void emitValueChanged();
+
+protected:
+ virtual void refresh();
+
+private:
+ bool updating:1;
+ bool enabled:1;
+ QDeclarativeProperty property;
+
+ bool *deleted;
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index 623e3df..23307c9 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -228,10 +228,10 @@ bool QDeclarativeCompiler::testLiteralAssignment(const QMetaProperty &prop,
}
break;
case QMetaType::Float:
- if (!v->value.isNumber()) COMPILE_EXCEPTION(v, tr("Invalid property assignment: float expected"));
+ if (!v->value.isNumber()) COMPILE_EXCEPTION(v, tr("Invalid property assignment: number expected"));
break;
case QVariant::Double:
- if (!v->value.isNumber()) COMPILE_EXCEPTION(v, tr("Invalid property assignment: double expected"));
+ if (!v->value.isNumber()) COMPILE_EXCEPTION(v, tr("Invalid property assignment: number expected"));
break;
case QVariant::Color:
{
@@ -2449,7 +2449,7 @@ bool QDeclarativeCompiler::buildDynamicMeta(QDeclarativeParser::Object *obj, Dyn
for (int ii = 0; ii < obj->dynamicSlots.count(); ++ii) {
Object::DynamicSlot &s = obj->dynamicSlots[ii];
QByteArray sig(s.name + '(');
- QString funcScript(QLatin1String("(function("));
+ QString funcScript(QLatin1String("(function ") + s.name + QLatin1Char('('));
for (int jj = 0; jj < s.parameterNames.count(); ++jj) {
if (jj) {
diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp
index 9d3032c..36c4b49 100644
--- a/src/declarative/qml/qdeclarativecomponent.cpp
+++ b/src/declarative/qml/qdeclarativecomponent.cpp
@@ -68,37 +68,85 @@ class QByteArray;
/*!
\class QDeclarativeComponent
\since 4.7
- \brief The QDeclarativeComponent class encapsulates a QML component description.
+ \brief The QDeclarativeComponent class encapsulates a QML component definition.
\mainclass
+
+ Components are reusable, encapsulated QML elements with well-defined interfaces.
+ They are often defined in \l {qdeclarativedocuments.html}{Component Files}.
+
+ A QDeclarativeComponent instance can be created from a QML file.
+ For example, if there is a \c main.qml file like this:
+
+ \qml
+ import Qt 4.7
+
+ Item {
+ width: 200
+ height: 200
+ }
+ \endqml
+
+ The following code loads this QML file as a component, creates an instance of
+ this component using create(), and then queries the \l Item's \l {Item::}{width}
+ value:
+
+ \code
+ QDeclarativeEngine *engine = new QDeclarativeEngine;
+ QDeclarativeComponent component(engine, QUrl::fromLocalFile("main.qml"));
+
+ QObject *myObject = component.create();
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(myObject);
+ int width = item->width(); // width = 200
+ \endcode
+
+ \sa {Using QML in C++ Applications}, {Integrating QML with existing Qt UI code}
*/
/*!
\qmlclass Component QDeclarativeComponent
\since 4.7
- \brief The Component element encapsulates a QML component description.
+ \brief The Component element encapsulates a QML component definition.
Components are reusable, encapsulated QML elements with well-defined interfaces.
- They are often defined in \l {qdeclarativedocuments.html}{Component Files}.
- The \e Component element allows defining components within a QML file.
- This can be useful for reusing a small component within a single QML
- file, or for defining a component that logically belongs with the
- file containing it.
+ Components are often defined by \l {qdeclarativedocuments.html}{component files} -
+ that is, \c .qml files. The \e Component element allows components to be defined
+ within QML items rather than in a separate file. This may be useful for reusing
+ a small component within a QML file, or for defining a component that logically
+ belongs with other QML components within a file.
+
+ For example, here is a component that is used by multiple \l Loader objects:
\qml
Item {
Component {
id: redSquare
+
Rectangle {
color: "red"
width: 10
height: 10
}
}
+
Loader { sourceComponent: redSquare }
Loader { sourceComponent: redSquare; x: 20 }
}
\endqml
+
+ Notice that while a \l Rectangle by itself would be automatically
+ rendered and displayed, this is not the case for the above rectangle
+ because it is defined inside a \c Component. The component encapsulates the
+ QML elements within, as if they were defined in a separate \c .qml
+ file, and is not loaded until requested (in this case, by the
+ two \l Loader objects).
+
+ The Component element is commonly used to provide graphical components
+ for views. For example, the ListView::delegate property requires a Component
+ to specify how each list item is to be displayed.
+
+ Component objects can also be dynamically generated using
+ \l{Qt::createComponent}{Qt.createComponent()}.
*/
/*!
@@ -448,7 +496,8 @@ void QDeclarativeComponent::loadUrl(const QUrl &url)
d->clear();
- if (url.isRelative() && !url.isEmpty())
+ if ((url.isRelative() && !url.isEmpty())
+ || url.scheme() == QLatin1String("file")) // Workaround QTBUG-11929
d->url = d->engine->baseUrl().resolved(url);
else
d->url = url;
diff --git a/src/declarative/qml/qdeclarativecontext.cpp b/src/declarative/qml/qdeclarativecontext.cpp
index 60e9dd3..3d25291 100644
--- a/src/declarative/qml/qdeclarativecontext.cpp
+++ b/src/declarative/qml/qdeclarativecontext.cpp
@@ -145,6 +145,8 @@ QDeclarativeContextPrivate::QDeclarativeContextPrivate()
has been created in that context is an expensive operation (essentially forcing all bindings
to reevaluate). Thus whenever possible you should complete "setup" of the context
before using it to create any objects.
+
+ \sa {Using QML in C++ Applications}
*/
/*! \internal */
diff --git a/src/declarative/qml/qdeclarativecontext_p.h b/src/declarative/qml/qdeclarativecontext_p.h
index 1f5aaf1..c5a039a 100644
--- a/src/declarative/qml/qdeclarativecontext_p.h
+++ b/src/declarative/qml/qdeclarativecontext_p.h
@@ -198,6 +198,7 @@ public:
// context
QDeclarativeComponentAttached *componentAttached;
+ // Return the outermost id for obj, if any.
QString findObjectId(const QObject *obj) const;
static QDeclarativeContextData *get(QDeclarativeContext *context) {
diff --git a/src/declarative/qml/qdeclarativedom.cpp b/src/declarative/qml/qdeclarativedom.cpp
index a3cddb5..5b30bde 100644
--- a/src/declarative/qml/qdeclarativedom.cpp
+++ b/src/declarative/qml/qdeclarativedom.cpp
@@ -493,7 +493,7 @@ int QDeclarativeDomDynamicProperty::propertyType() const
return QMetaType::type("int");
case QDeclarativeParser::Object::DynamicProperty::Real:
- return QMetaType::type("double");
+ return sizeof(qreal) == sizeof(double) ? QMetaType::type("double") : QMetaType::type("float");
case QDeclarativeParser::Object::DynamicProperty::String:
return QMetaType::type("QString");
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 1ce668c..f2eb770 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -151,6 +151,7 @@ void QDeclarativeEnginePrivate::defineModule()
}
/*!
+\keyword QmlGlobalQtObject
\qmlclass Qt QDeclarativeEnginePrivate
\brief The QML global Qt object provides useful enums and functions from Qt.
@@ -218,7 +219,7 @@ of their use.
QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e)
-: captureProperties(false), rootContext(0), currentExpression(0), isDebugging(false),
+: captureProperties(false), rootContext(0), isDebugging(false),
outputWarningsToStdErr(true), contextClass(0), sharedContext(0), sharedScope(0),
objectClass(0), valueTypeClass(0), globalClass(0), cleanup(0), erroredBindings(0),
inProgressCreations(0), scriptEngine(this), workerScriptEngine(0), componentAttached(0),
@@ -620,24 +621,16 @@ QNetworkAccessManager *QDeclarativeEngine::networkAccessManager() const
/*!
Sets the \a provider to use for images requested via the \e
- image: url scheme, with host \a providerId.
+ image: url scheme, with host \a providerId. The QDeclarativeEngine
+ takes ownership of \a provider.
- QDeclarativeImageProvider allows images to be provided to QML
- asynchronously. The image request will be run in a low priority
- thread. This allows potentially costly image loading to be done in
- the background, without affecting the performance of the UI.
+ Image providers enable support for pixmap and threaded image
+ requests. See the QDeclarativeImageProvider documentation for details on
+ implementing and using image providers.
Note that images loaded from a QDeclarativeImageProvider are cached
by QPixmapCache, similar to any image loaded by QML.
- The QDeclarativeEngine assumes ownership of the provider.
-
- This example creates a provider with id \e colors:
-
- \snippet examples/declarative/cppextensions/imageprovider/imageprovider.cpp 0
-
- \snippet examples/declarative/cppextensions/imageprovider/imageprovider-example.qml 0
-
\sa removeImageProvider()
*/
void QDeclarativeEngine::addImageProvider(const QString &providerId, QDeclarativeImageProvider *provider)
@@ -671,16 +664,35 @@ void QDeclarativeEngine::removeImageProvider(const QString &providerId)
delete d->imageProviders.take(providerId);
}
+QDeclarativeImageProvider::ImageType QDeclarativeEnginePrivate::getImageProviderType(const QUrl &url)
+{
+ QMutexLocker locker(&mutex);
+ QDeclarativeImageProvider *provider = imageProviders.value(url.host());
+ if (provider)
+ return provider->imageType();
+ return static_cast<QDeclarativeImageProvider::ImageType>(-1);
+}
+
QImage QDeclarativeEnginePrivate::getImageFromProvider(const QUrl &url, QSize *size, const QSize& req_size)
{
QMutexLocker locker(&mutex);
QImage image;
QDeclarativeImageProvider *provider = imageProviders.value(url.host());
if (provider)
- image = provider->request(url.path().mid(1), size, req_size);
+ image = provider->requestImage(url.path().mid(1), size, req_size);
return image;
}
+QPixmap QDeclarativeEnginePrivate::getPixmapFromProvider(const QUrl &url, QSize *size, const QSize& req_size)
+{
+ QMutexLocker locker(&mutex);
+ QPixmap pixmap;
+ QDeclarativeImageProvider *provider = imageProviders.value(url.host());
+ if (provider)
+ pixmap = provider->requestPixmap(url.path().mid(1), size, req_size);
+ return pixmap;
+}
+
/*!
Return the base URL for this engine. The base URL is only used to
resolve components when a relative URL is passed to the
@@ -1259,11 +1271,12 @@ QScriptValue QDeclarativeEnginePrivate::formatDate(QScriptContext*ctxt, QScriptE
QDate date = ctxt->argument(0).toDateTime().date();
Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate;
if (argCount == 2) {
- if (ctxt->argument(1).isString()) {
- QString format = ctxt->argument(1).toString();
+ QScriptValue formatArg = ctxt->argument(1);
+ if (formatArg.isString()) {
+ QString format = formatArg.toString();
return engine->newVariant(qVariantFromValue(date.toString(format)));
- } else if (ctxt->argument(1).isNumber()) {
- enumFormat = Qt::DateFormat(ctxt->argument(1).toUInt32());
+ } else if (formatArg.isNumber()) {
+ enumFormat = Qt::DateFormat(formatArg.toUInt32());
} else {
return ctxt->throwError(QLatin1String("Qt.formatDate(): Invalid date format"));
}
@@ -1286,11 +1299,12 @@ QScriptValue QDeclarativeEnginePrivate::formatTime(QScriptContext*ctxt, QScriptE
QTime date = ctxt->argument(0).toDateTime().time();
Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate;
if (argCount == 2) {
- if (ctxt->argument(1).isString()) {
- QString format = ctxt->argument(1).toString();
+ QScriptValue formatArg = ctxt->argument(1);
+ if (formatArg.isString()) {
+ QString format = formatArg.toString();
return engine->newVariant(qVariantFromValue(date.toString(format)));
- } else if (ctxt->argument(1).isNumber()) {
- enumFormat = Qt::DateFormat(ctxt->argument(1).toUInt32());
+ } else if (formatArg.isNumber()) {
+ enumFormat = Qt::DateFormat(formatArg.toUInt32());
} else {
return ctxt->throwError(QLatin1String("Qt.formatTime(): Invalid time format"));
}
@@ -1376,11 +1390,12 @@ QScriptValue QDeclarativeEnginePrivate::formatDateTime(QScriptContext*ctxt, QScr
QDateTime date = ctxt->argument(0).toDateTime();
Qt::DateFormat enumFormat = Qt::DefaultLocaleShortDate;
if (argCount == 2) {
- if (ctxt->argument(1).isString()) {
- QString format = ctxt->argument(1).toString();
+ QScriptValue formatArg = ctxt->argument(1);
+ if (formatArg.isString()) {
+ QString format = formatArg.toString();
return engine->newVariant(qVariantFromValue(date.toString(format)));
- } else if (ctxt->argument(1).isNumber()) {
- enumFormat = Qt::DateFormat(ctxt->argument(1).toUInt32());
+ } else if (formatArg.isNumber()) {
+ enumFormat = Qt::DateFormat(formatArg.toUInt32());
} else {
return ctxt->throwError(QLatin1String("Qt.formatDateTime(): Invalid datetime format"));
}
@@ -1728,8 +1743,7 @@ void QDeclarativeEnginePrivate::warning(QDeclarativeEnginePrivate *engine, const
/*!
\qmlmethod Qt::quit()
This function causes the QDeclarativeEngine::quit() signal to be emitted.
-Within the \l {Qt Declarative UI Runtime}{qml} application this causes the
-launcher application to exit.
+Within the \l {QML Viewer}, this causes the launcher application to exit.
*/
QScriptValue QDeclarativeEnginePrivate::quit(QScriptContext * /*ctxt*/, QScriptEngine *e)
diff --git a/src/declarative/qml/qdeclarativeengine_p.h b/src/declarative/qml/qdeclarativeengine_p.h
index cfa9d73..a5c8c38 100644
--- a/src/declarative/qml/qdeclarativeengine_p.h
+++ b/src/declarative/qml/qdeclarativeengine_p.h
@@ -64,6 +64,7 @@
#include "qdeclarativecontext.h"
#include "private/qdeclarativecontext_p.h"
#include "qdeclarativeexpression.h"
+#include "qdeclarativeimageprovider.h"
#include "private/qdeclarativeproperty_p.h"
#include "private/qdeclarativepropertycache_p.h"
#include "private/qdeclarativeobjectscriptclass_p.h"
@@ -161,7 +162,6 @@ public:
QPODVector<CapturedProperty> capturedProperties;
QDeclarativeContext *rootContext;
- QDeclarativeExpression *currentExpression;
bool isDebugging;
bool outputWarningsToStdErr;
@@ -233,7 +233,9 @@ public:
mutable QDeclarativeNetworkAccessManagerFactory *networkAccessManagerFactory;
QHash<QString,QDeclarativeImageProvider*> imageProviders;
+ QDeclarativeImageProvider::ImageType getImageProviderType(const QUrl &url);
QImage getImageFromProvider(const QUrl &url, QSize *size, const QSize& req_size);
+ QPixmap getPixmapFromProvider(const QUrl &url, QSize *size, const QSize& req_size);
mutable QMutex mutex;
diff --git a/src/declarative/qml/qdeclarativeenginedebug.cpp b/src/declarative/qml/qdeclarativeenginedebug.cpp
index d765649..001da46 100644
--- a/src/declarative/qml/qdeclarativeenginedebug.cpp
+++ b/src/declarative/qml/qdeclarativeenginedebug.cpp
@@ -50,6 +50,8 @@
#include "private/qdeclarativecontext_p.h"
#include "private/qdeclarativewatcher_p.h"
#include "private/qdeclarativevaluetype_p.h"
+#include "private/qdeclarativevmemetaobject_p.h"
+#include "private/qdeclarativeexpression_p.h"
#include <QtCore/qdebug.h>
#include <QtCore/qmetaobject.h>
@@ -453,20 +455,30 @@ void QDeclarativeEngineDebugServer::messageReceived(const QByteArray &message)
sendMessage(reply);
} else if (type == "SET_BINDING") {
- int queryId;
int objectId;
QString propertyName;
QVariant expr;
bool isLiteralValue;
- ds >> queryId >> objectId >> propertyName >> expr >> isLiteralValue;
+ ds >> objectId >> propertyName >> expr >> isLiteralValue;
setBinding(objectId, propertyName, expr, isLiteralValue);
+ } else if (type == "RESET_BINDING") {
+ int objectId;
+ QString propertyName;
+ ds >> objectId >> propertyName;
+ resetBinding(objectId, propertyName);
+ } else if (type == "SET_METHOD_BODY") {
+ int objectId;
+ QString methodName;
+ QString methodBody;
+ ds >> objectId >> methodName >> methodBody;
+ setMethodBody(objectId, methodName, methodBody);
}
}
void QDeclarativeEngineDebugServer::setBinding(int objectId,
- const QString &propertyName,
- const QVariant &expression,
- bool isLiteralValue)
+ const QString &propertyName,
+ const QVariant &expression,
+ bool isLiteralValue)
{
QObject *object = objectForId(objectId);
QDeclarativeContext *context = qmlContext(object);
@@ -493,7 +505,67 @@ void QDeclarativeEngineDebugServer::setBinding(int objectId,
}
}
}
+}
+
+void QDeclarativeEngineDebugServer::resetBinding(int objectId, const QString &propertyName)
+{
+ QObject *object = objectForId(objectId);
+ QDeclarativeContext *context = qmlContext(object);
+
+ if (object && context) {
+ if (object->property(propertyName.toLatin1()).isValid()) {
+ QDeclarativeProperty property(object, propertyName);
+ QDeclarativeAbstractBinding *oldBinding = QDeclarativePropertyPrivate::binding(property);
+ if (oldBinding) {
+ QDeclarativeAbstractBinding *oldBinding = QDeclarativePropertyPrivate::setBinding(property, 0);
+ if (oldBinding)
+ oldBinding->destroy();
+ } else {
+ if (property.isResettable()) {
+ property.reset();
+ }
+ }
+ }
+ }
+}
+
+void QDeclarativeEngineDebugServer::setMethodBody(int objectId, const QString &method, const QString &body)
+{
+ QObject *object = objectForId(objectId);
+ QDeclarativeContext *context = qmlContext(object);
+ if (!object || !context || !context->engine())
+ return;
+ QDeclarativeContextData *contextData = QDeclarativeContextData::get(context);
+ if (!contextData)
+ return;
+
+ QDeclarativePropertyCache::Data dummy;
+ QDeclarativePropertyCache::Data *prop =
+ QDeclarativePropertyCache::property(context->engine(), object, method, dummy);
+
+ if (!prop || !(prop->flags & QDeclarativePropertyCache::Data::IsVMEFunction))
+ return;
+
+ QMetaMethod metaMethod = object->metaObject()->method(prop->coreIndex);
+ QList<QByteArray> paramNames = metaMethod.parameterNames();
+
+ QString paramStr;
+ for (int ii = 0; ii < paramNames.count(); ++ii) {
+ if (ii != 0) paramStr.append(QLatin1String(","));
+ paramStr.append(QString::fromUtf8(paramNames.at(ii)));
+ }
+
+ QString jsfunction = QLatin1String("(function ") + method + QLatin1String("(") + paramStr +
+ QLatin1String(") {");
+ jsfunction += body;
+ jsfunction += QLatin1String("\n})");
+
+ QDeclarativeVMEMetaObject *vmeMetaObject =
+ static_cast<QDeclarativeVMEMetaObject*>(QObjectPrivate::get(object)->metaObject);
+ Q_ASSERT(vmeMetaObject); // the fact we found the property above should guarentee this
+ int lineNumber = vmeMetaObject->vmeMethodLineNumber(prop->coreIndex);
+ vmeMetaObject->setVmeMethod(prop->coreIndex, QDeclarativeExpressionPrivate::evalInObjectScope(contextData, object, jsfunction, contextData->url.toString(), lineNumber, 0));
}
void QDeclarativeEngineDebugServer::propertyChanged(int id, int objectId, const QMetaProperty &property, const QVariant &value)
diff --git a/src/declarative/qml/qdeclarativeenginedebug_p.h b/src/declarative/qml/qdeclarativeenginedebug_p.h
index b3c23bd..ea35b40 100644
--- a/src/declarative/qml/qdeclarativeenginedebug_p.h
+++ b/src/declarative/qml/qdeclarativeenginedebug_p.h
@@ -108,6 +108,8 @@ private:
QDeclarativeObjectProperty propertyData(QObject *, int);
QVariant valueContents(const QVariant &defaultValue) const;
void setBinding(int objectId, const QString &propertyName, const QVariant &expression, bool isLiteralValue);
+ void resetBinding(int objectId, const QString &propertyName);
+ void setMethodBody(int objectId, const QString &method, const QString &body);
static QList<QDeclarativeEngine *> m_engines;
QDeclarativeWatcher *m_watch;
diff --git a/src/declarative/qml/qdeclarativeexpression.cpp b/src/declarative/qml/qdeclarativeexpression.cpp
index 8ae5f2f..9935e38 100644
--- a/src/declarative/qml/qdeclarativeexpression.cpp
+++ b/src/declarative/qml/qdeclarativeexpression.cpp
@@ -71,109 +71,95 @@ bool QDeclarativeDelayedError::addError(QDeclarativeEnginePrivate *e)
return true;
}
-QDeclarativeExpressionData::QDeclarativeExpressionData()
-: q(0), dataRef(0), expressionFunctionValid(false), expressionRewritten(false), me(0),
- trackChange(false), isShared(false), line(-1), guardList(0), guardListLength(0)
+QDeclarativeQtScriptExpression::QDeclarativeQtScriptExpression()
+: dataRef(0), expressionFunctionMode(ExplicitContext), scopeObject(0), trackChange(false),
+ guardList(0), guardListLength(0), guardObject(0), guardObjectNotifyIndex(-1), deleted(0)
{
}
-QDeclarativeExpressionData::~QDeclarativeExpressionData()
+QDeclarativeQtScriptExpression::~QDeclarativeQtScriptExpression()
{
if (guardList) { delete [] guardList; guardList = 0; }
if (dataRef) dataRef->release();
+ if (deleted) *deleted = true;
}
QDeclarativeExpressionPrivate::QDeclarativeExpressionPrivate()
-: data(new QDeclarativeExpressionData)
+: expressionFunctionValid(true), line(-1)
{
- data->q = this;
-}
-
-QDeclarativeExpressionPrivate::QDeclarativeExpressionPrivate(QDeclarativeExpressionData *d)
-: data(d)
-{
- data->q = this;
}
QDeclarativeExpressionPrivate::~QDeclarativeExpressionPrivate()
{
- if (data) {
- delete [] data->guardList;
- data->guardList = 0;
- data->guardListLength = 0;
- data->q = 0;
- data->release();
- data = 0;
- }
}
void QDeclarativeExpressionPrivate::init(QDeclarativeContextData *ctxt, const QString &expr,
QObject *me)
{
- data->expression = expr;
+ expression = expr;
- data->QDeclarativeAbstractExpression::setContext(ctxt);
- data->me = me;
+ QDeclarativeAbstractExpression::setContext(ctxt);
+ scopeObject = me;
+ expressionFunctionValid = false;
}
-void QDeclarativeExpressionPrivate::init(QDeclarativeContextData *ctxt, void *expr, QDeclarativeRefCount *rc,
- QObject *me, const QString &url, int lineNumber)
+void QDeclarativeExpressionPrivate::init(QDeclarativeContextData *ctxt, void *expr,
+ QDeclarativeRefCount *rc,
+ QObject *me, const QString &srcUrl, int lineNumber)
{
- data->url = url;
- data->line = lineNumber;
+ url = srcUrl;
+ line = lineNumber;
- if (data->dataRef) data->dataRef->release();
- data->dataRef = rc;
- if (data->dataRef) data->dataRef->addref();
+ if (dataRef) dataRef->release();
+ dataRef = rc;
+ if (dataRef) dataRef->addref();
quint32 *exprData = (quint32 *)expr;
QDeclarativeCompiledData *dd = (QDeclarativeCompiledData *)rc;
- data->expressionRewritten = true;
- data->expression = QString::fromRawData((QChar *)(exprData + 2), exprData[1]);
+ expression = QString::fromRawData((QChar *)(exprData + 2), exprData[1]);
int progIdx = *(exprData);
- bool isShared = progIdx & 0x80000000;
+ bool isSharedProgram = progIdx & 0x80000000;
progIdx &= 0x7FFFFFFF;
QDeclarativeEngine *engine = ctxt->engine;
QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine);
- if (isShared) {
+ if (isSharedProgram) {
if (!dd->cachedClosures.at(progIdx)) {
QScriptContext *scriptContext = QScriptDeclarativeClass::pushCleanContext(scriptEngine);
scriptContext->pushScope(ep->contextClass->newSharedContext());
scriptContext->pushScope(ep->globalClass->staticGlobalObject());
- dd->cachedClosures[progIdx] = new QScriptValue(scriptEngine->evaluate(data->expression, data->url, data->line));
+ dd->cachedClosures[progIdx] = new QScriptValue(scriptEngine->evaluate(expression, url, line));
scriptEngine->popContext();
}
- data->expressionFunction = *dd->cachedClosures.at(progIdx);
- data->isShared = true;
- data->expressionFunctionValid = true;
+ expressionFunction = *dd->cachedClosures.at(progIdx);
+ expressionFunctionMode = SharedContext;
+ expressionFunctionValid = true;
} else {
#if !defined(Q_OS_SYMBIAN) //XXX Why doesn't this work?
if (!dd->cachedPrograms.at(progIdx)) {
- dd->cachedPrograms[progIdx] =
- new QScriptProgram(data->expression, data->url, data->line);
+ dd->cachedPrograms[progIdx] = new QScriptProgram(expression, url, line);
}
- data->expressionFunction = evalInObjectScope(ctxt, me, *dd->cachedPrograms.at(progIdx),
- &data->expressionContext);
+ expressionFunction = evalInObjectScope(ctxt, me, *dd->cachedPrograms.at(progIdx),
+ &expressionContext);
#else
- data->expressionFunction = evalInObjectScope(ctxt, me, data->expression,
- &data->expressionContext);
+ expressionFunction = evalInObjectScope(ctxt, me, expression, &expressionContext);
#endif
- data->expressionFunctionValid = true;
+ expressionFunctionMode = ExplicitContext;
+ expressionFunctionValid = true;
}
- data->QDeclarativeAbstractExpression::setContext(ctxt);
- data->me = me;
+ QDeclarativeAbstractExpression::setContext(ctxt);
+ scopeObject = me;
}
QScriptValue QDeclarativeExpressionPrivate::evalInObjectScope(QDeclarativeContextData *context, QObject *object,
@@ -214,10 +200,34 @@ QScriptValue QDeclarativeExpressionPrivate::evalInObjectScope(QDeclarativeContex
/*!
\class QDeclarativeExpression
- \since 4.7
+ \since 4.7
\brief The QDeclarativeExpression class evaluates JavaScript in a QML context.
+
+ For example, given a file \c main.qml like this:
+
+ \qml
+ import Qt 4.7
+
+ Item {
+ width: 200; height: 200
+ }
+ \endqml
+
+ The following code evaluates a JavaScript expression in the context of the
+ above QML:
+
+ \code
+ QDeclarativeEngine *engine = new QDeclarativeEngine;
+ QDeclarativeComponent component(engine, QUrl::fromLocalFile("main.qml"));
+
+ QObject *myObject = component.create();
+ QDeclarativeExpression *expr = new QDeclarativeExpression(engine->rootContext(), myObject, "width * 2");
+ int result = expr->evaluate().toInt(); // result = 400
+ \endcode
*/
+static int QDeclarativeExpression_notifyIdx = -1;
+
/*!
Create an invalid QDeclarativeExpression.
@@ -227,6 +237,11 @@ QScriptValue QDeclarativeExpressionPrivate::evalInObjectScope(QDeclarativeContex
QDeclarativeExpression::QDeclarativeExpression()
: QObject(*new QDeclarativeExpressionPrivate, 0)
{
+ Q_D(QDeclarativeExpression);
+
+ if (QDeclarativeExpression_notifyIdx == -1)
+ QDeclarativeExpression_notifyIdx = QDeclarativeExpression::staticMetaObject.indexOfMethod("_q_notify()");
+ d->setNotifyObject(this, QDeclarativeExpression_notifyIdx);
}
/*! \internal */
@@ -238,6 +253,10 @@ QDeclarativeExpression::QDeclarativeExpression(QDeclarativeContextData *ctxt, vo
{
Q_D(QDeclarativeExpression);
d->init(ctxt, expr, rc, me, url, lineNumber);
+
+ if (QDeclarativeExpression_notifyIdx == -1)
+ QDeclarativeExpression_notifyIdx = QDeclarativeExpression::staticMetaObject.indexOfMethod("_q_notify()");
+ d->setNotifyObject(this, QDeclarativeExpression_notifyIdx);
}
/*!
@@ -255,6 +274,10 @@ QDeclarativeExpression::QDeclarativeExpression(QDeclarativeContext *ctxt,
{
Q_D(QDeclarativeExpression);
d->init(QDeclarativeContextData::get(ctxt), expression, scope);
+
+ if (QDeclarativeExpression_notifyIdx == -1)
+ QDeclarativeExpression_notifyIdx = QDeclarativeExpression::staticMetaObject.indexOfMethod("_q_notify()");
+ d->setNotifyObject(this, QDeclarativeExpression_notifyIdx);
}
/*!
@@ -266,6 +289,10 @@ QDeclarativeExpression::QDeclarativeExpression(QDeclarativeContextData *ctxt, QO
{
Q_D(QDeclarativeExpression);
d->init(ctxt, expression, scope);
+
+ if (QDeclarativeExpression_notifyIdx == -1)
+ QDeclarativeExpression_notifyIdx = QDeclarativeExpression::staticMetaObject.indexOfMethod("_q_notify()");
+ d->setNotifyObject(this, QDeclarativeExpression_notifyIdx);
}
/*! \internal */
@@ -275,6 +302,10 @@ QDeclarativeExpression::QDeclarativeExpression(QDeclarativeContextData *ctxt, QO
{
Q_D(QDeclarativeExpression);
d->init(ctxt, expression, scope);
+
+ if (QDeclarativeExpression_notifyIdx == -1)
+ QDeclarativeExpression_notifyIdx = QDeclarativeExpression::staticMetaObject.indexOfMethod("_q_notify()");
+ d->setNotifyObject(this, QDeclarativeExpression_notifyIdx);
}
/*!
@@ -291,7 +322,7 @@ QDeclarativeExpression::~QDeclarativeExpression()
QDeclarativeEngine *QDeclarativeExpression::engine() const
{
Q_D(const QDeclarativeExpression);
- return d->data->context()?d->data->context()->engine:0;
+ return d->context()?d->context()->engine:0;
}
/*!
@@ -301,7 +332,7 @@ QDeclarativeEngine *QDeclarativeExpression::engine() const
QDeclarativeContext *QDeclarativeExpression::context() const
{
Q_D(const QDeclarativeExpression);
- QDeclarativeContextData *data = d->data->context();
+ QDeclarativeContextData *data = d->context();
return data?data->asQDeclarativeContext():0;
}
@@ -311,7 +342,7 @@ QDeclarativeContext *QDeclarativeExpression::context() const
QString QDeclarativeExpression::expression() const
{
Q_D(const QDeclarativeExpression);
- return d->data->expression;
+ return d->expression;
}
/*!
@@ -321,12 +352,10 @@ void QDeclarativeExpression::setExpression(const QString &expression)
{
Q_D(QDeclarativeExpression);
- d->clearGuards();
-
- d->data->expression = expression;
- d->data->expressionFunctionValid = false;
- d->data->expressionRewritten = false;
- d->data->expressionFunction = QScriptValue();
+ d->resetNotifyOnChange();
+ d->expression = expression;
+ d->expressionFunctionValid = false;
+ d->expressionFunction = QScriptValue();
}
void QDeclarativeExpressionPrivate::exceptionToError(QScriptEngine *scriptEngine,
@@ -356,59 +385,108 @@ void QDeclarativeExpressionPrivate::exceptionToError(QScriptEngine *scriptEngine
}
}
-QScriptValue QDeclarativeExpressionPrivate::eval(QObject *secondaryScope, bool *isUndefined)
+bool QDeclarativeQtScriptExpression::notifyOnValueChange() const
{
- QDeclarativeExpressionData *data = this->data;
- QDeclarativeEngine *engine = data->context()->engine;
- QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
+ return trackChange;
+}
- QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine);
+void QDeclarativeQtScriptExpression::setNotifyOnValueChange(bool notify)
+{
+ trackChange = notify;
+ if (!notify && guardList)
+ clearGuards();
+}
- if (!data->expressionFunctionValid) {
+void QDeclarativeQtScriptExpression::resetNotifyOnChange()
+{
+ clearGuards();
+}
- QScriptContext *scriptContext = QScriptDeclarativeClass::pushCleanContext(scriptEngine);
- data->expressionContext = ep->contextClass->newContext(data->context(), data->me);
- scriptContext->pushScope(data->expressionContext);
- scriptContext->pushScope(ep->globalClass->staticGlobalObject());
+void QDeclarativeQtScriptExpression::setNotifyObject(QObject *object, int notifyIndex)
+{
+ if (guardList) clearGuards();
+
+ if (!object || notifyIndex == -1) {
+ guardObject = 0;
+ notifyIndex = -1;
+ } else {
+ guardObject = object;
+ guardObjectNotifyIndex = notifyIndex;
+
+ }
+}
+
+QScriptValue QDeclarativeQtScriptExpression::scriptValue(QObject *secondaryScope, bool *isUndefined)
+{
+ Q_ASSERT(context() && context()->engine);
+ Q_ASSERT(!trackChange || (guardObject && guardObjectNotifyIndex != -1));
+
+ if (!expressionFunction.isValid()) {
+ if (isUndefined) *isUndefined = true;
+ return QScriptValue();
+ }
+
+ DeleteWatcher watcher(this);
+
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(context()->engine);
+
+ bool lastCaptureProperties = ep->captureProperties;
+ QPODVector<QDeclarativeEnginePrivate::CapturedProperty> lastCapturedProperties;
+ ep->captureProperties = trackChange;
+ ep->capturedProperties.copyAndClear(lastCapturedProperties);
+
+ QScriptValue value = eval(secondaryScope, isUndefined);
+
+ if (!watcher.wasDeleted() && trackChange) {
+ if (ep->capturedProperties.count() == 0) {
+
+ if (guardList) clearGuards();
- if (data->expressionRewritten) {
- data->expressionFunction = scriptEngine->evaluate(data->expression,
- data->url, data->line);
} else {
- QDeclarativeRewrite::RewriteBinding rewriteBinding;
- bool ok = true;
- const QString code = rewriteBinding(data->expression, &ok);
- if (!ok) {
- scriptEngine->popContext();
- return QScriptValue();
- }
- data->expressionFunction = scriptEngine->evaluate(code, data->url, data->line);
- }
+ updateGuards(ep->capturedProperties);
- scriptEngine->popContext();
- data->expressionFunctionValid = true;
+ }
}
+ lastCapturedProperties.copyAndClear(ep->capturedProperties);
+ ep->captureProperties = lastCaptureProperties;
+
+ return value;
+}
+
+QScriptValue QDeclarativeQtScriptExpression::eval(QObject *secondaryScope, bool *isUndefined)
+{
+ Q_ASSERT(context() && context()->engine);
+
+ DeleteWatcher watcher(this);
+
+ QDeclarativeEngine *engine = context()->engine;
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
+
+ QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine);
+
QDeclarativeContextData *oldSharedContext = 0;
QObject *oldSharedScope = 0;
QObject *oldOverride = 0;
- if (data->isShared) {
+ bool isShared = (expressionFunctionMode == SharedContext);
+
+ if (isShared) {
oldSharedContext = ep->sharedContext;
oldSharedScope = ep->sharedScope;
- ep->sharedContext = data->context();
- ep->sharedScope = data->me;
+ ep->sharedContext = context();
+ ep->sharedScope = scopeObject;
} else {
- oldOverride = ep->contextClass->setOverrideObject(data->expressionContext, secondaryScope);
+ oldOverride = ep->contextClass->setOverrideObject(expressionContext, secondaryScope);
}
- QScriptValue svalue = data->expressionFunction.call();
+ QScriptValue svalue = expressionFunction.call(); // This could cause this to be deleted
- if (data->isShared) {
+ if (isShared) {
ep->sharedContext = oldSharedContext;
ep->sharedScope = oldSharedScope;
- } else {
- ep->contextClass->setOverrideObject(data->expressionContext, oldOverride);
+ } else if (!watcher.wasDeleted()) {
+ ep->contextClass->setOverrideObject(expressionContext, oldOverride);
}
if (isUndefined)
@@ -416,63 +494,134 @@ QScriptValue QDeclarativeExpressionPrivate::eval(QObject *secondaryScope, bool *
// Handle exception
if (scriptEngine->hasUncaughtException()) {
- exceptionToError(scriptEngine, data->error);
+ if (!watcher.wasDeleted())
+ QDeclarativeExpressionPrivate::exceptionToError(scriptEngine, error);
+
scriptEngine->clearExceptions();
return QScriptValue();
} else {
- data->error = QDeclarativeError();
+ if (!watcher.wasDeleted())
+ error = QDeclarativeError();
+
return svalue;
}
}
-QScriptValue QDeclarativeExpressionPrivate::scriptValue(QObject *secondaryScope, bool *isUndefined)
+void QDeclarativeQtScriptExpression::updateGuards(const QPODVector<QDeclarativeEnginePrivate::CapturedProperty> &properties)
{
- Q_Q(QDeclarativeExpression);
- Q_ASSERT(q->engine());
+ Q_ASSERT(guardObject);
+ Q_ASSERT(guardObjectNotifyIndex != -1);
- if (data->expression.isEmpty())
- return QScriptValue();
+ if (properties.count() != guardListLength) {
+ QDeclarativeNotifierEndpoint *newGuardList = new QDeclarativeNotifierEndpoint[properties.count()];
- QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(q->engine());
+ for (int ii = 0; ii < qMin(guardListLength, properties.count()); ++ii)
+ guardList[ii].copyAndClear(newGuardList[ii]);
- QDeclarativeExpression *lastCurrentExpression = ep->currentExpression;
- bool lastCaptureProperties = ep->captureProperties;
- QPODVector<QDeclarativeEnginePrivate::CapturedProperty> lastCapturedProperties;
- ep->capturedProperties.copyAndClear(lastCapturedProperties);
+ delete [] guardList;
+ guardList = newGuardList;
+ guardListLength = properties.count();
+ }
- ep->currentExpression = q;
- ep->captureProperties = data->trackChange;
+ bool outputWarningHeader = false;
+ bool noChanges = true;
+ for (int ii = 0; ii < properties.count(); ++ii) {
+ QDeclarativeNotifierEndpoint &guard = guardList[ii];
+ const QDeclarativeEnginePrivate::CapturedProperty &property = properties.at(ii);
- // This object might be deleted during the eval
- QDeclarativeExpressionData *localData = data;
- localData->addref();
+ guard.target = guardObject;
+ guard.targetMethod = guardObjectNotifyIndex;
- QScriptValue value = eval(secondaryScope, isUndefined);
+ if (property.notifier != 0) {
- ep->currentExpression = lastCurrentExpression;
- ep->captureProperties = lastCaptureProperties;
+ if (!noChanges && guard.isConnected(property.notifier)) {
+ // Nothing to do
- // Check if we were deleted
- if (localData->q) {
- if ((!data->trackChange || !ep->capturedProperties.count()) && data->guardList) {
- clearGuards();
- } else if(data->trackChange) {
- updateGuards(ep->capturedProperties);
+ } else {
+ noChanges = false;
+
+ bool existing = false;
+ for (int jj = 0; !existing && jj < ii; ++jj)
+ if (guardList[jj].isConnected(property.notifier))
+ existing = true;
+
+ if (existing) {
+ // duplicate
+ guard.disconnect();
+ } else {
+ guard.connect(property.notifier);
+ }
+ }
+
+
+ } else if (property.notifyIndex != -1) {
+
+ if (!noChanges && guard.isConnected(property.object, property.notifyIndex)) {
+ // Nothing to do
+
+ } else {
+ noChanges = false;
+
+ bool existing = false;
+ for (int jj = 0; !existing && jj < ii; ++jj)
+ if (guardList[jj].isConnected(property.object, property.notifyIndex))
+ existing = true;
+
+ if (existing) {
+ // duplicate
+ guard.disconnect();
+ } else {
+ guard.connect(property.object, property.notifyIndex);
+ }
+ }
+
+ } else {
+ if (!outputWarningHeader) {
+ outputWarningHeader = true;
+ qWarning() << "QDeclarativeExpression: Expression" << expression
+ << "depends on non-NOTIFYable properties:";
+ }
+
+ const QMetaObject *metaObj = property.object->metaObject();
+ QMetaProperty metaProp = metaObj->property(property.coreIndex);
+
+ qWarning().nospace() << " " << metaObj->className() << "::" << metaProp.name();
}
}
+}
- localData->release();
+QScriptValue QDeclarativeExpressionPrivate::scriptValue(QObject *secondaryScope, bool *isUndefined)
+{
+ if (!expressionFunctionValid) {
+ QDeclarativeEngine *engine = context()->engine;
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
- lastCapturedProperties.copyAndClear(ep->capturedProperties);
+ QScriptEngine *scriptEngine = QDeclarativeEnginePrivate::getScriptEngine(engine);
- return value;
+ QScriptContext *scriptContext = QScriptDeclarativeClass::pushCleanContext(scriptEngine);
+ expressionContext = ep->contextClass->newContext(context(), scopeObject);
+ scriptContext->pushScope(expressionContext);
+ scriptContext->pushScope(ep->globalClass->staticGlobalObject());
+
+ QDeclarativeRewrite::RewriteBinding rewriteBinding;
+ bool ok = true;
+ const QString code = rewriteBinding(expression, &ok);
+ if (ok)
+ expressionFunction = scriptEngine->evaluate(code, url, line);
+
+ scriptEngine->popContext();
+ expressionFunctionMode = ExplicitContext;
+ expressionFunctionValid = true;
+ }
+
+ return QDeclarativeQtScriptExpression::scriptValue(secondaryScope, isUndefined);
}
QVariant QDeclarativeExpressionPrivate::value(QObject *secondaryScope, bool *isUndefined)
{
Q_Q(QDeclarativeExpression);
- if (!data || !data->context() || !data->context()->isValid()) {
+ if (!context() || !context()->isValid()) {
qWarning("QDeclarativeExpression: Attempted to evaluate an expression in an invalid context");
return QVariant();
}
@@ -504,7 +653,7 @@ value changes.
bool QDeclarativeExpression::notifyOnValueChanged() const
{
Q_D(const QDeclarativeExpression);
- return d->data->trackChange;
+ return d->notifyOnValueChange();
}
/*!
@@ -526,7 +675,7 @@ bool QDeclarativeExpression::notifyOnValueChanged() const
void QDeclarativeExpression::setNotifyOnValueChanged(bool notifyOnChange)
{
Q_D(QDeclarativeExpression);
- d->data->trackChange = notifyOnChange;
+ d->setNotifyOnValueChange(notifyOnChange);
}
/*!
@@ -536,7 +685,7 @@ void QDeclarativeExpression::setNotifyOnValueChanged(bool notifyOnChange)
QString QDeclarativeExpression::sourceFile() const
{
Q_D(const QDeclarativeExpression);
- return d->data->url;
+ return d->url;
}
/*!
@@ -546,7 +695,7 @@ QString QDeclarativeExpression::sourceFile() const
int QDeclarativeExpression::lineNumber() const
{
Q_D(const QDeclarativeExpression);
- return d->data->line;
+ return d->line;
}
/*!
@@ -556,8 +705,8 @@ int QDeclarativeExpression::lineNumber() const
void QDeclarativeExpression::setSourceLocation(const QString &url, int line)
{
Q_D(QDeclarativeExpression);
- d->data->url = url;
- d->data->line = line;
+ d->url = url;
+ d->line = line;
}
/*!
@@ -569,7 +718,7 @@ void QDeclarativeExpression::setSourceLocation(const QString &url, int line)
QObject *QDeclarativeExpression::scopeObject() const
{
Q_D(const QDeclarativeExpression);
- return d->data->me;
+ return d->scopeObject;
}
/*!
@@ -581,7 +730,7 @@ QObject *QDeclarativeExpression::scopeObject() const
bool QDeclarativeExpression::hasError() const
{
Q_D(const QDeclarativeExpression);
- return d->data->error.isValid();
+ return d->error.isValid();
}
/*!
@@ -593,7 +742,7 @@ bool QDeclarativeExpression::hasError() const
void QDeclarativeExpression::clearError()
{
Q_D(QDeclarativeExpression);
- d->data->error = QDeclarativeError();
+ d->error = QDeclarativeError();
}
/*!
@@ -606,7 +755,7 @@ void QDeclarativeExpression::clearError()
QDeclarativeError QDeclarativeExpression::error() const
{
Q_D(const QDeclarativeExpression);
- return d->data->error;
+ return d->error;
}
/*! \internal */
@@ -615,98 +764,11 @@ void QDeclarativeExpressionPrivate::_q_notify()
emitValueChanged();
}
-void QDeclarativeExpressionPrivate::clearGuards()
+void QDeclarativeQtScriptExpression::clearGuards()
{
- delete [] data->guardList;
- data->guardList = 0;
- data->guardListLength = 0;
-}
-
-void QDeclarativeExpressionPrivate::updateGuards(const QPODVector<QDeclarativeEnginePrivate::CapturedProperty> &properties)
-{
- Q_Q(QDeclarativeExpression);
-
- static int notifyIdx = -1;
- if (notifyIdx == -1)
- notifyIdx = QDeclarativeExpression::staticMetaObject.indexOfMethod("_q_notify()");
-
- if (properties.count() != data->guardListLength) {
- QDeclarativeNotifierEndpoint *newGuardList =
- new QDeclarativeNotifierEndpoint[properties.count()];
-
- for (int ii = 0; ii < qMin(data->guardListLength, properties.count()); ++ii)
- data->guardList[ii].copyAndClear(newGuardList[ii]);
-
- delete [] data->guardList;
- data->guardList = newGuardList;
- data->guardListLength = properties.count();
- }
-
- bool outputWarningHeader = false;
- bool noChanges = true;
- for (int ii = 0; ii < properties.count(); ++ii) {
- QDeclarativeNotifierEndpoint &guard = data->guardList[ii];
- const QDeclarativeEnginePrivate::CapturedProperty &property = properties.at(ii);
-
- guard.target = q;
- guard.targetMethod = notifyIdx;
-
- if (property.notifier != 0) {
-
- if (!noChanges && guard.isConnected(property.notifier)) {
- // Nothing to do
-
- } else {
- noChanges = false;
-
- bool existing = false;
- for (int jj = 0; !existing && jj < ii; ++jj)
- if (data->guardList[jj].isConnected(property.notifier))
- existing = true;
-
- if (existing) {
- // duplicate
- guard.disconnect();
- } else {
- guard.connect(property.notifier);
- }
- }
-
-
- } else if (property.notifyIndex != -1) {
-
- if (!noChanges && guard.isConnected(property.object, property.notifyIndex)) {
- // Nothing to do
-
- } else {
- noChanges = false;
-
- bool existing = false;
- for (int jj = 0; !existing && jj < ii; ++jj)
- if (data->guardList[jj].isConnected(property.object, property.notifyIndex))
- existing = true;
-
- if (existing) {
- // duplicate
- guard.disconnect();
- } else {
- guard.connect(property.object, property.notifyIndex);
- }
- }
-
- } else {
- if (!outputWarningHeader) {
- outputWarningHeader = true;
- qWarning() << "QDeclarativeExpression: Expression" << q->expression()
- << "depends on non-NOTIFYable properties:";
- }
-
- const QMetaObject *metaObj = property.object->metaObject();
- QMetaProperty metaProp = metaObj->property(property.coreIndex);
-
- qWarning().nospace() << " " << metaObj->className() << "::" << metaProp.name();
- }
- }
+ delete [] guardList;
+ guardList = 0;
+ guardListLength = 0;
}
/*!
diff --git a/src/declarative/qml/qdeclarativeexpression_p.h b/src/declarative/qml/qdeclarativeexpression_p.h
index 4ff3162..b629e20 100644
--- a/src/declarative/qml/qdeclarativeexpression_p.h
+++ b/src/declarative/qml/qdeclarativeexpression_p.h
@@ -107,56 +107,73 @@ private:
QDeclarativeDelayedError **prevError;
};
-class QDeclarativeExpressionData : public QDeclarativeAbstractExpression, public QDeclarativeDelayedError, public QDeclarativeRefCount
+class QDeclarativeQtScriptExpression : public QDeclarativeAbstractExpression,
+ public QDeclarativeDelayedError
{
public:
- QDeclarativeExpressionData();
- virtual ~QDeclarativeExpressionData();
+ enum Mode { SharedContext, ExplicitContext };
- QDeclarativeExpressionPrivate *q;
+ QDeclarativeQtScriptExpression();
+ virtual ~QDeclarativeQtScriptExpression();
QDeclarativeRefCount *dataRef;
+
QString expression;
- bool expressionFunctionValid:1;
- bool expressionRewritten:1;
+
+ Mode expressionFunctionMode;
QScriptValue expressionFunction;
- QScriptValue expressionContext;
- QObject *me;
- bool trackChange;
+ QScriptValue expressionContext; // Only used in ExplicitContext
+ QObject *scopeObject; // Only used in SharedContext
- bool isShared;
+ bool notifyOnValueChange() const;
+ void setNotifyOnValueChange(bool);
+ void resetNotifyOnChange();
+ void setNotifyObject(QObject *, int );
- QString url; // This is a QString for a reason. QUrls are slooooooow...
- int line;
+ QScriptValue scriptValue(QObject *secondaryScope, bool *isUndefined);
+
+ class DeleteWatcher {
+ public:
+ inline DeleteWatcher(QDeclarativeQtScriptExpression *data);
+ inline ~DeleteWatcher();
+ inline bool wasDeleted() const;
+ private:
+ bool *m_wasDeleted;
+ bool m_wasDeletedStorage;
+ QDeclarativeQtScriptExpression *m_d;
+ };
+
+private:
+ void clearGuards();
+ QScriptValue eval(QObject *secondaryScope, bool *isUndefined);
+ void updateGuards(const QPODVector<QDeclarativeEnginePrivate::CapturedProperty> &properties);
+
+ bool trackChange;
QDeclarativeNotifierEndpoint *guardList;
int guardListLength;
+
+ QObject *guardObject;
+ int guardObjectNotifyIndex;
+ bool *deleted;
};
class QDeclarativeExpression;
class QString;
-class QDeclarativeExpressionPrivate : public QObjectPrivate
+class QDeclarativeExpressionPrivate : public QObjectPrivate, public QDeclarativeQtScriptExpression
{
Q_DECLARE_PUBLIC(QDeclarativeExpression)
public:
QDeclarativeExpressionPrivate();
- QDeclarativeExpressionPrivate(QDeclarativeExpressionData *);
~QDeclarativeExpressionPrivate();
void init(QDeclarativeContextData *, const QString &, QObject *);
void init(QDeclarativeContextData *, void *, QDeclarativeRefCount *, QObject *, const QString &, int);
- QDeclarativeExpressionData *data;
-
QVariant value(QObject *secondaryScope = 0, bool *isUndefined = 0);
QScriptValue scriptValue(QObject *secondaryScope = 0, bool *isUndefined = 0);
- QScriptValue eval(QObject *secondaryScope, bool *isUndefined = 0);
-
- void updateGuards(const QPODVector<QDeclarativeEnginePrivate::CapturedProperty> &properties);
- void clearGuards();
-
static QDeclarativeExpressionPrivate *get(QDeclarativeExpression *expr) {
return static_cast<QDeclarativeExpressionPrivate *>(QObjectPrivate::get(expr));
}
@@ -172,8 +189,32 @@ public:
int, QScriptValue *);
static QScriptValue evalInObjectScope(QDeclarativeContextData *, QObject *, const QScriptProgram &,
QScriptValue *);
+
+ bool expressionFunctionValid:1;
+
+ QString url; // This is a QString for a reason. QUrls are slooooooow...
+ int line;
};
+QDeclarativeQtScriptExpression::DeleteWatcher::DeleteWatcher(QDeclarativeQtScriptExpression *data)
+: m_wasDeletedStorage(false), m_d(data)
+{
+ if (!m_d->deleted)
+ m_d->deleted = &m_wasDeletedStorage;
+ m_wasDeleted = m_d->deleted;
+}
+
+QDeclarativeQtScriptExpression::DeleteWatcher::~DeleteWatcher()
+{
+ if (false == *m_wasDeleted && m_wasDeleted == m_d->deleted)
+ m_d->deleted = 0;
+}
+
+bool QDeclarativeQtScriptExpression::DeleteWatcher::wasDeleted() const
+{
+ return *m_wasDeleted;
+}
+
QT_END_NAMESPACE
#endif // QDECLARATIVEEXPRESSION_P_H
diff --git a/src/declarative/qml/qdeclarativeextensionplugin.cpp b/src/declarative/qml/qdeclarativeextensionplugin.cpp
index c2e8300..0660599 100644
--- a/src/declarative/qml/qdeclarativeextensionplugin.cpp
+++ b/src/declarative/qml/qdeclarativeextensionplugin.cpp
@@ -67,10 +67,8 @@ QT_BEGIN_NAMESPACE
See \l {Tutorial: Writing QML extensions with C++} for details on creating
QML extensions, including how to build a plugin with with QDeclarativeExtensionPlugin.
For a simple overview, see the \l{declarative/cppextensions/plugins}{plugins} example.
-
- Also see \l {How to Create Qt Plugins} for general Qt plugin documentation.
- \sa QDeclarativeEngine::importPlugin()
+ \sa QDeclarativeEngine::importPlugin(), {How to Create Qt Plugins}
*/
/*!
diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp
index f4a8588..a294c38 100644
--- a/src/declarative/qml/qdeclarativeimageprovider.cpp
+++ b/src/declarative/qml/qdeclarativeimageprovider.cpp
@@ -43,42 +43,188 @@
QT_BEGIN_NAMESPACE
+class QDeclarativeImageProviderPrivate
+{
+public:
+ QDeclarativeImageProvider::ImageType type;
+};
+
/*!
\class QDeclarativeImageProvider
\since 4.7
- \brief The QDeclarativeImageProvider class provides an interface for threaded image requests in QML.
+ \brief The QDeclarativeImageProvider class provides an interface for supporting pixmaps and threaded image requests in QML.
- QDeclarativeImageProvider can be used by a QDeclarativeEngine to provide images to QML asynchronously.
- The image request will be run in a low priority thread, allowing potentially costly image
- loading to be done in the background, without affecting the performance of the UI.
+ QDeclarativeImageProvider is used to provide advanced image loading features
+ in QML applications. It allows images in QML to be:
- See the QDeclarativeEngine::addImageProvider() documentation for an
- example of how a custom QDeclarativeImageProvider can be constructed and used.
+ \list
+ \o Loaded using QPixmaps rather than actual image files
+ \o Loaded asynchronously in a separate thread, if imageType() is \l ImageType::Image
+ \endlist
- \note the request() method may be called by multiple threads, so ensure the
- implementation of this method is reentrant.
+ To specify that an image should be loaded by an image provider, use the
+ \bold {"image:"} scheme for the URL source of the image, followed by the
+ identifiers of the image provider and the requested image. For example:
+
+ \qml
+ Image { source: "image://myimageprovider/image.png" }
+ \endqml
+
+ This specifies that the image should be loaded by the image provider named
+ "myimageprovider", and the image to be loaded is named "image.png". The QML engine
+ invokes the appropriate image provider according to the providers that have
+ been registered through QDeclarativeEngine::addImageProvider().
+
+
+ \section2 An example
+
+ Here are two images. Their \c source values indicate they should be loaded by
+ an image provider named "colors", and the images to be loaded are "yellow"
+ and "red", respectively:
+
+ \snippet examples/declarative/cppextensions/imageprovider/imageprovider-example.qml 0
+
+ When these images are loaded by QML, it looks for a matching image provider
+ and calls its requestImage() or requestPixmap() method (depending on its
+ imageType()) to load the image. The method is called with the \c id
+ parameter set to "yellow" for the first image, and "red" for the second.
+
+ Here is an image provider implementation that can load the images
+ requested by the above QML. This implementation dynamically
+ generates QPixmap images that are filled with the requested color:
+
+ \snippet examples/declarative/cppextensions/imageprovider/imageprovider.cpp 0
+ \codeline
+ \snippet examples/declarative/cppextensions/imageprovider/imageprovider.cpp 1
+
+ To make this provider accessible to QML, it is registered with the QML engine
+ with a "colors" identifier:
+
+ \code
+ int main(int argc, char *argv[])
+ {
+ ...
+
+ QDeclarativeEngine engine;
+ engine->addImageProvider(QLatin1String("colors"), new ColorPixmapProvider);
+
+ ...
+ }
+ \endcode
+
+ Now the images can be succesfully loaded in QML:
+
+ \image imageprovider.png
+
+ A complete example is available in Qt's
+ \l {declarative/cppextensions/imageprovider}{examples/declarative/cppextensions/imageprovider}
+ directory. Note the example registers the provider via a \l{QDeclarativeExtensionPlugin}{plugin}
+ instead of registering it in the application \c main() function as shown above.
+
+
+ \section2 Asynchronous image loading
+
+ Image providers that support QImage loading automatically include support
+ for asychronous loading of images. To enable asynchronous loading for an
+ \l Image source, set \l Image::asynchronous to \c true. When this is enabled,
+ the image request to the provider is run in a low priority thread,
+ allowing image loading to be executed in the background, and reducing the
+ performance impact on the user interface.
+
+ Asynchronous loading is not supported for image providers that provide
+ QPixmap rather than QImage values, as pixmaps can only be created in the
+ main thread. In this case, if \l {Image::}{asynchronous} is set to
+ \c true, the value is ignored and the image is loaded
+ synchronously.
+
+ \sa QDeclarativeEngine::addImageProvider()
+*/
+
+/*!
+ \enum QDeclarativeImageProvider::ImageType
- \sa QDeclarativeEngine::addImageProvider(), {declarative/cppextensions/imageprovider}{ImageProvider example}
+ Defines the type of image supported by this image provider.
+
+ \value Image The Image Provider provides QImage images. The
+ requestImage() method will be called for all image requests.
+ \value Pixmap The Image Provider provides QPixmap images. The
+ requestPixmap() method will be called for all image requests.
+*/
+
+/*!
+ Creates an image provider that will provide images of the given \a type.
*/
+QDeclarativeImageProvider::QDeclarativeImageProvider(ImageType type)
+ : d(new QDeclarativeImageProviderPrivate)
+{
+ d->type = type;
+}
/*!
- Destroys the image provider.
- */
+ \internal
+*/
QDeclarativeImageProvider::~QDeclarativeImageProvider()
{
+ delete d;
+}
+
+/*!
+ Returns the image type supported by this provider.
+*/
+QDeclarativeImageProvider::ImageType QDeclarativeImageProvider::imageType() const
+{
+ return d->type;
}
/*!
- \fn QImage QDeclarativeImageProvider::request(const QString &id, QSize *size, const QSize& requestedSize)
+ Implement this method to return the image with \a id. The default
+ implementation returns an empty image.
- Implement this method to return the image with \a id.
+ The \a requestedSize corresponds to the \l {Image::sourceSize} requested by
+ an Image element. If \a requestedSize is a valid size, the image
+ returned should be of that size.
- If \a requestedSize is a valid size, the image returned should be of that size.
+ In all cases, \a size must be set to the original size of the image. This
+ is used to set the \l {Item::}{width} and \l {Item::}{height} of image
+ elements that should be automatically sized to the loaded image.
- In all cases, \a size must be set to the original size of the image.
+ \note this method may be called by multiple threads, so ensure the
+ implementation of this method is reentrant.
+*/
+QImage QDeclarativeImageProvider::requestImage(const QString &id, QSize *size, const QSize& requestedSize)
+{
+ Q_UNUSED(id);
+ Q_UNUSED(size);
+ Q_UNUSED(requestedSize);
+ if (d->type == Image)
+ qWarning("ImageProvider supports Image type but has not implemented requestImage()");
+ return QImage();
+}
+
+/*!
+ Implement this method to return the pixmap with \a id. The default
+ implementation returns an empty pixmap.
+
+ The \a requestedSize corresponds to the \l {Image::sourceSize} requested by
+ an Image element. If \a requestedSize is a valid size, the image
+ returned should be of that size.
+
+ In all cases, \a size must be set to the original size of the image. This
+ is used to set the \l {Item::}{width} and \l {Item::}{height} of image
+ elements that should be automatically sized to the loaded image.
\note this method may be called by multiple threads, so ensure the
implementation of this method is reentrant.
*/
+QPixmap QDeclarativeImageProvider::requestPixmap(const QString &id, QSize *size, const QSize& requestedSize)
+{
+ Q_UNUSED(id);
+ Q_UNUSED(size);
+ Q_UNUSED(requestedSize);
+ if (d->type == Pixmap)
+ qWarning("ImageProvider supports Pixmap type but has not implemented requestPixmap()");
+ return QPixmap();
+}
QT_END_NAMESPACE
+
diff --git a/src/declarative/qml/qdeclarativeimageprovider.h b/src/declarative/qml/qdeclarativeimageprovider.h
index cc9c9af..5a72943 100644
--- a/src/declarative/qml/qdeclarativeimageprovider.h
+++ b/src/declarative/qml/qdeclarativeimageprovider.h
@@ -43,6 +43,7 @@
#define QDECLARATIVEIMAGEPROVIDER_H
#include <QtGui/qimage.h>
+#include <QtGui/qpixmap.h>
QT_BEGIN_HEADER
@@ -50,11 +51,26 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Declarative)
+class QDeclarativeImageProviderPrivate;
+
class Q_DECLARATIVE_EXPORT QDeclarativeImageProvider
{
public:
+ enum ImageType {
+ Image,
+ Pixmap
+ };
+
+ QDeclarativeImageProvider(ImageType type);
virtual ~QDeclarativeImageProvider();
- virtual QImage request(const QString &id, QSize *size, const QSize& requestedSize) = 0;
+
+ ImageType imageType() const;
+
+ virtual QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize);
+ virtual QPixmap requestPixmap(const QString &id, QSize *size, const QSize& requestedSize);
+
+private:
+ QDeclarativeImageProviderPrivate *d;
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
index a2e3831..8d81b34 100644
--- a/src/declarative/qml/qdeclarativeimport.cpp
+++ b/src/declarative/qml/qdeclarativeimport.cpp
@@ -409,7 +409,8 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
QString localFileOrQrc = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(importUrl);
if (!localFileOrQrc.isEmpty()) {
QString dir = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(base.resolved(QUrl(uri)));
- if (dir.isEmpty() || !QDir().exists(dir)) {
+ QFileInfo dirinfo(dir);
+ if (dir.isEmpty() || !dirinfo.exists() || !dirinfo.isDir()) {
if (errorString)
*errorString = QDeclarativeImportDatabase::tr("\"%1\": no such directory").arg(uri_arg);
return false; // local import dirs must exist
@@ -425,7 +426,8 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
if (prefix.isEmpty()) {
// directory must at least exist for valid import
QString localFileOrQrc = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(base.resolved(QUrl(uri)));
- if (localFileOrQrc.isEmpty() || !QDir().exists(localFileOrQrc)) {
+ QFileInfo dirinfo(localFileOrQrc);
+ if (localFileOrQrc.isEmpty() || !dirinfo.exists() || !dirinfo.isDir()) {
if (errorString) {
if (localFileOrQrc.isEmpty())
*errorString = QDeclarativeImportDatabase::tr("import \"%1\" has no qmldir and no namespace").arg(uri);
@@ -445,11 +447,23 @@ bool QDeclarativeImportsPrivate::add(const QDeclarativeDirComponents &qmldircomp
if (vmaj > -1 && vmin > -1 && !qmldircomponents.isEmpty()) {
QList<QDeclarativeDirParser::Component>::ConstIterator it = qmldircomponents.begin();
+ int lowest_maj = INT_MAX;
+ int lowest_min = INT_MAX;
+ int highest_maj = INT_MIN;
+ int highest_min = INT_MIN;
for (; it != qmldircomponents.end(); ++it) {
- if (it->majorVersion > vmaj || (it->majorVersion == vmaj && it->minorVersion >= vmin))
- break;
+ if (it->majorVersion > highest_maj || (it->majorVersion == highest_maj && it->minorVersion > highest_min)) {
+ highest_maj = it->majorVersion;
+ highest_min = it->minorVersion;
+ }
+ if (it->majorVersion < lowest_maj || (it->majorVersion == lowest_maj && it->minorVersion < lowest_min)) {
+ lowest_maj = it->majorVersion;
+ lowest_min = it->minorVersion;
+ }
}
- if (it == qmldircomponents.end()) {
+ if (lowest_maj > vmaj || (lowest_maj == vmaj && lowest_min > vmin)
+ || highest_maj < vmaj || (highest_maj == vmaj && highest_min < vmin))
+ {
*errorString = QDeclarativeImportDatabase::tr("module \"%1\" version %2.%3 is not installed").arg(uri_arg).arg(vmaj).arg(vmin);
return false;
}
diff --git a/src/declarative/qml/qdeclarativelist.cpp b/src/declarative/qml/qdeclarativelist.cpp
index 7c89672..9598d98 100644
--- a/src/declarative/qml/qdeclarativelist.cpp
+++ b/src/declarative/qml/qdeclarativelist.cpp
@@ -306,7 +306,7 @@ int QDeclarativeListReference::count() const
/*!
\class QDeclarativeListProperty
\since 4.7
-\brief The QDeclarativeListProperty class allows applications to explose list-like
+\brief The QDeclarativeListProperty class allows applications to expose list-like
properties to QML.
QML has many list properties, where more than one object value can be assigned.
diff --git a/src/declarative/qml/qdeclarativemetatype.cpp b/src/declarative/qml/qdeclarativemetatype.cpp
index c32cab6..153e2be 100644
--- a/src/declarative/qml/qdeclarativemetatype.cpp
+++ b/src/declarative/qml/qdeclarativemetatype.cpp
@@ -1152,7 +1152,7 @@ bool QDeclarativeMetaType::copy(int type, void *data, const void *copy)
*static_cast<float *>(data) = float(0);
return true;
case QMetaType::Double:
- *static_cast<double *>(data) = double();
+ *static_cast<double *>(data) = double(0);
return true;
case QMetaType::QChar:
*static_cast<NS(QChar) *>(data) = NS(QChar)();
diff --git a/src/declarative/qml/qdeclarativevmemetaobject.cpp b/src/declarative/qml/qdeclarativevmemetaobject.cpp
index 7aea7cb..689ed92 100644
--- a/src/declarative/qml/qdeclarativevmemetaobject.cpp
+++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp
@@ -751,6 +751,22 @@ void QDeclarativeVMEMetaObject::registerInterceptor(int index, int valueIndex, Q
interceptors.insert(index, qMakePair(valueIndex, interceptor));
}
+int QDeclarativeVMEMetaObject::vmeMethodLineNumber(int index)
+{
+ if (index < methodOffset) {
+ Q_ASSERT(parent);
+ return static_cast<QDeclarativeVMEMetaObject *>(parent)->vmeMethodLineNumber(index);
+ }
+
+ int plainSignals = metaData->signalCount + metaData->propertyCount + metaData->aliasCount;
+ Q_ASSERT(index >= (methodOffset + plainSignals) && index < (methodOffset + plainSignals + metaData->methodCount));
+
+ int rawIndex = index - methodOffset - plainSignals;
+
+ QDeclarativeVMEMetaData::MethodData *data = metaData->methodData() + rawIndex;
+ return data->lineNumber;
+}
+
QScriptValue QDeclarativeVMEMetaObject::vmeMethod(int index)
{
if (index < methodOffset) {
@@ -762,6 +778,20 @@ QScriptValue QDeclarativeVMEMetaObject::vmeMethod(int index)
return method(index - methodOffset - plainSignals);
}
+void QDeclarativeVMEMetaObject::setVmeMethod(int index, const QScriptValue &value)
+{
+ if (index < methodOffset) {
+ Q_ASSERT(parent);
+ return static_cast<QDeclarativeVMEMetaObject *>(parent)->setVmeMethod(index, value);
+ }
+ int plainSignals = metaData->signalCount + metaData->propertyCount + metaData->aliasCount;
+ Q_ASSERT(index >= (methodOffset + plainSignals) && index < (methodOffset + plainSignals + metaData->methodCount));
+
+ if (!methods)
+ methods = new QScriptValue[metaData->methodCount];
+ methods[index - methodOffset - plainSignals] = value;
+}
+
QScriptValue QDeclarativeVMEMetaObject::vmeProperty(int index)
{
if (index < propOffset) {
diff --git a/src/declarative/qml/qdeclarativevmemetaobject_p.h b/src/declarative/qml/qdeclarativevmemetaobject_p.h
index 4fc3269..20ca80b 100644
--- a/src/declarative/qml/qdeclarativevmemetaobject_p.h
+++ b/src/declarative/qml/qdeclarativevmemetaobject_p.h
@@ -121,6 +121,8 @@ public:
void registerInterceptor(int index, int valueIndex, QDeclarativePropertyValueInterceptor *interceptor);
QScriptValue vmeMethod(int index);
+ int vmeMethodLineNumber(int index);
+ void setVmeMethod(int index, const QScriptValue &);
QScriptValue vmeProperty(int index);
void setVMEProperty(int index, const QScriptValue &);
diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp
index add27f3..bdb9510 100644
--- a/src/declarative/util/qdeclarativeanimation.cpp
+++ b/src/declarative/util/qdeclarativeanimation.cpp
@@ -142,6 +142,16 @@ bool QDeclarativeAbstractAnimation::isRunning() const
return d->running;
}
+// the behavior calls this function
+void QDeclarativeAbstractAnimation::notifyRunningChanged(bool running)
+{
+ Q_D(QDeclarativeAbstractAnimation);
+ if (d->disableUserControl && d->running != running) {
+ d->running = running;
+ emit runningChanged(running);
+ }
+}
+
//commence is called to start an animation when it is used as a
//simple animation, and not as part of a transition
void QDeclarativeAbstractAnimationPrivate::commence()
diff --git a/src/declarative/util/qdeclarativeanimation_p.h b/src/declarative/util/qdeclarativeanimation_p.h
index 3f8fbdd..59bd465 100644
--- a/src/declarative/util/qdeclarativeanimation_p.h
+++ b/src/declarative/util/qdeclarativeanimation_p.h
@@ -134,9 +134,12 @@ public:
private Q_SLOTS:
void timelineComplete();
void componentFinalized();
-
private:
virtual void setTarget(const QDeclarativeProperty &);
+ void notifyRunningChanged(bool running);
+ friend class QDeclarativeBehavior;
+
+
};
class QDeclarativePauseAnimationPrivate;
diff --git a/src/declarative/util/qdeclarativebehavior.cpp b/src/declarative/util/qdeclarativebehavior.cpp
index 047993e..2bb28c3 100644
--- a/src/declarative/util/qdeclarativebehavior.cpp
+++ b/src/declarative/util/qdeclarativebehavior.cpp
@@ -58,7 +58,8 @@ class QDeclarativeBehaviorPrivate : public QObjectPrivate
{
Q_DECLARE_PUBLIC(QDeclarativeBehavior)
public:
- QDeclarativeBehaviorPrivate() : animation(0), enabled(true), finalized(false) {}
+ QDeclarativeBehaviorPrivate() : animation(0), enabled(true), finalized(false)
+ , blockRunningChanged(false) {}
QDeclarativeProperty property;
QVariant currentValue;
@@ -66,6 +67,7 @@ public:
QDeclarativeGuard<QDeclarativeAbstractAnimation> animation;
bool enabled;
bool finalized;
+ bool blockRunningChanged;
};
/*!
@@ -132,9 +134,22 @@ void QDeclarativeBehavior::setAnimation(QDeclarativeAbstractAnimation *animation
if (d->animation) {
d->animation->setDefaultTarget(d->property);
d->animation->setDisableUserControl();
+ connect(d->animation->qtAnimation(),
+ SIGNAL(stateChanged(QAbstractAnimation::State,QAbstractAnimation::State)),
+ this,
+ SLOT(qtAnimationStateChanged(QAbstractAnimation::State,QAbstractAnimation::State)));
}
}
+
+void QDeclarativeBehavior::qtAnimationStateChanged(QAbstractAnimation::State newState,QAbstractAnimation::State)
+{
+ Q_D(QDeclarativeBehavior);
+ if (!d->blockRunningChanged)
+ d->animation->notifyRunningChanged(newState == QAbstractAnimation::Running);
+}
+
+
/*!
\qmlproperty bool Behavior::enabled
Whether the Behavior will be triggered when the property it is tracking changes.
@@ -173,8 +188,11 @@ void QDeclarativeBehavior::write(const QVariant &value)
d->currentValue = d->property.read();
d->targetValue = value;
- if (d->animation->qtAnimation()->duration() != -1)
+ if (d->animation->qtAnimation()->duration() != -1
+ && d->animation->qtAnimation()->state() != QAbstractAnimation::Stopped) {
+ d->blockRunningChanged = true;
d->animation->qtAnimation()->stop();
+ }
QDeclarativeStateOperation::ActionList actions;
QDeclarativeAction action;
@@ -186,6 +204,7 @@ void QDeclarativeBehavior::write(const QVariant &value)
QList<QDeclarativeProperty> after;
d->animation->transition(actions, after, QDeclarativeAbstractAnimation::Forward);
d->animation->qtAnimation()->start();
+ d->blockRunningChanged = false;
if (!after.contains(d->property))
QDeclarativePropertyPrivate::write(d->property, value, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding);
}
diff --git a/src/declarative/util/qdeclarativebehavior_p.h b/src/declarative/util/qdeclarativebehavior_p.h
index 6c10eec..9801fb2 100644
--- a/src/declarative/util/qdeclarativebehavior_p.h
+++ b/src/declarative/util/qdeclarativebehavior_p.h
@@ -47,6 +47,7 @@
#include <qdeclarativepropertyvaluesource.h>
#include <qdeclarativepropertyvalueinterceptor.h>
#include <qdeclarative.h>
+#include <QtCore/QAbstractAnimation>
QT_BEGIN_HEADER
@@ -85,6 +86,7 @@ Q_SIGNALS:
private Q_SLOTS:
void componentFinalized();
+ void qtAnimationStateChanged(QAbstractAnimation::State,QAbstractAnimation::State);
};
QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp
index deb835d..3ede335 100644
--- a/src/declarative/util/qdeclarativelistmodel.cpp
+++ b/src/declarative/util/qdeclarativelistmodel.cpp
@@ -1022,6 +1022,8 @@ QVariant NestedListModel::data(int index, int role) const
Q_ASSERT(_root && index >= 0 && index < _root->values.count());
checkRoles();
QVariant rv;
+ if (roleStrings.count() < role)
+ return rv;
ModelNode *node = qvariant_cast<ModelNode *>(_root->values.at(index));
if (!node)
diff --git a/src/declarative/util/qdeclarativepackage.cpp b/src/declarative/util/qdeclarativepackage.cpp
index 1e49ad9..1a4f2a7 100644
--- a/src/declarative/util/qdeclarativepackage.cpp
+++ b/src/declarative/util/qdeclarativepackage.cpp
@@ -65,12 +65,12 @@ QT_BEGIN_NAMESPACE
\snippet examples/declarative/modelviews/package/Delegate.qml 0
These named items are used as the delegates by the two views who
- reference the special VisualDataModel.parts property to select
+ reference the special \l{VisualDataModel::parts} property to select
a model which provides the chosen delegate.
\snippet examples/declarative/modelviews/package/view.qml 0
- \sa {declarative/modelviews/package}{Package example}, QtDeclarative
+ \sa {declarative/modelviews/package}{Package example}, {demos/declarative/photoviewer}{Photo Viewer demo}, QtDeclarative
*/
/*!
diff --git a/src/declarative/util/qdeclarativepixmapcache.cpp b/src/declarative/util/qdeclarativepixmapcache.cpp
index 0c2f23d..00dd922 100644
--- a/src/declarative/util/qdeclarativepixmapcache.cpp
+++ b/src/declarative/util/qdeclarativepixmapcache.cpp
@@ -55,104 +55,209 @@
#include <QFile>
#include <QThread>
#include <QMutex>
+#include <QMutexLocker>
+#include <QWaitCondition>
#include <QBuffer>
#include <QWaitCondition>
#include <QtCore/qdebug.h>
#include <private/qobject_p.h>
#include <QSslError>
-// Maximum number of simultaneous image requests to send.
-static const int maxImageRequestCount = 8;
+#define IMAGEREQUEST_MAX_REQUEST_COUNT 8
+#define IMAGEREQUEST_MAX_REDIRECT_RECURSION 16
+#define CACHE_EXPIRE_TIME 30
+#define CACHE_REMOVAL_FRACTION 4
QT_BEGIN_NAMESPACE
-class QDeclarativeImageReaderEvent : public QEvent
+class QDeclarativePixmapReader;
+class QDeclarativePixmapData;
+class QDeclarativePixmapReply : public QObject
{
+ Q_OBJECT
public:
enum ReadError { NoError, Loading, Decoding };
- QDeclarativeImageReaderEvent(QDeclarativeImageReaderEvent::ReadError err, const QString &errStr, const QImage &img)
- : QEvent(QEvent::User), error(err), errorString(errStr), image(img) {}
+ QDeclarativePixmapReply(QDeclarativePixmapData *);
+ ~QDeclarativePixmapReply();
- ReadError error;
- QString errorString;
- QImage image;
+ QDeclarativePixmapData *data;
+ QDeclarativePixmapReader *reader;
+
+ bool loading;
+ int redirectCount;
+
+ class Event : public QEvent {
+ public:
+ Event(ReadError, const QString &, const QSize &, const QImage &);
+
+ ReadError error;
+ QString errorString;
+ QSize implicitSize;
+ QImage image;
+ };
+ void postReply(ReadError, const QString &, const QSize &, const QImage &);
+
+
+Q_SIGNALS:
+ void finished();
+ void downloadProgress(qint64, qint64);
+
+protected:
+ bool event(QEvent *event);
+
+private:
+ Q_DISABLE_COPY(QDeclarativePixmapReply)
+
+public:
+ static int finishedIndex;
+ static int downloadProgressIndex;
};
-class QDeclarativeImageRequestHandler;
-class QDeclarativeImageReader : public QThread
+class QDeclarativePixmapData;
+class QDeclarativePixmapReader : public QThread
{
Q_OBJECT
public:
- QDeclarativeImageReader(QDeclarativeEngine *eng);
- ~QDeclarativeImageReader();
+ QDeclarativePixmapReader(QDeclarativeEngine *eng);
+ ~QDeclarativePixmapReader();
- QDeclarativePixmapReply *getImage(const QUrl &url, int req_width, int req_height);
+ QDeclarativePixmapReply *getImage(QDeclarativePixmapData *);
void cancel(QDeclarativePixmapReply *rep);
- static QDeclarativeImageReader *instance(QDeclarativeEngine *engine);
+ static QDeclarativePixmapReader *instance(QDeclarativeEngine *engine);
protected:
void run();
+private slots:
+ void networkRequestDone();
+
private:
+ void processJobs();
+ void processJob(QDeclarativePixmapReply *);
+
QList<QDeclarativePixmapReply*> jobs;
QList<QDeclarativePixmapReply*> cancelled;
QDeclarativeEngine *engine;
- QDeclarativeImageRequestHandler *handler;
QObject *eventLoopQuitHack;
+
QMutex mutex;
+ class ThreadObject : public QObject {
+ public:
+ ThreadObject(QDeclarativePixmapReader *);
+ void processJobs();
+ virtual bool event(QEvent *e);
+ private:
+ QDeclarativePixmapReader *reader;
+ } *threadObject;
+ QWaitCondition waitCondition;
+
+ QNetworkAccessManager *networkAccessManager();
+ QNetworkAccessManager *accessManager;
+
+ QHash<QNetworkReply*,QDeclarativePixmapReply*> replies;
- static QHash<QDeclarativeEngine *,QDeclarativeImageReader*> readers;
+ static int replyDownloadProgress;
+ static int replyFinished;
+ static int downloadProgress;
+ static int thisNetworkRequestDone;
+ static QHash<QDeclarativeEngine *,QDeclarativePixmapReader*> readers;
static QMutex readerMutex;
- friend class QDeclarativeImageRequestHandler;
};
-QHash<QDeclarativeEngine *,QDeclarativeImageReader*> QDeclarativeImageReader::readers;
-QMutex QDeclarativeImageReader::readerMutex;
-
-
-class QDeclarativeImageRequestHandler : public QObject
+class QDeclarativePixmapData
{
- Q_OBJECT
public:
- QDeclarativeImageRequestHandler(QDeclarativeImageReader *read, QDeclarativeEngine *eng)
- : QObject(), accessManager(0), engine(eng), reader(read), redirectCount(0)
+ QDeclarativePixmapData(const QUrl &u, const QSize &s, const QString &e)
+ : refCount(1), inCache(false), pixmapStatus(QDeclarativePixmap::Error),
+ url(u), errorString(e), requestSize(s), reply(0), prevUnreferenced(0),
+ prevUnreferencedPtr(0), nextUnreferenced(0)
{
- QCoreApplication::postEvent(this, new QEvent(QEvent::User));
}
- QDeclarativePixmapReply *getImage(const QUrl &url, int req_width, int req_height);
- void cancel(QDeclarativePixmapReply *reply);
-
-protected:
- bool event(QEvent *event);
+ QDeclarativePixmapData(const QUrl &u, const QSize &r)
+ : refCount(1), inCache(false), pixmapStatus(QDeclarativePixmap::Loading),
+ url(u), requestSize(r), reply(0), prevUnreferenced(0), prevUnreferencedPtr(0),
+ nextUnreferenced(0)
+ {
+ }
-private slots:
- void networkRequestDone();
+ QDeclarativePixmapData(const QUrl &u, const QPixmap &p, const QSize &s, const QSize &r)
+ : refCount(1), inCache(false), privatePixmap(false), pixmapStatus(QDeclarativePixmap::Ready),
+ url(u), pixmap(p), implicitSize(s), requestSize(r), reply(0), prevUnreferenced(0),
+ prevUnreferencedPtr(0), nextUnreferenced(0)
+ {
+ }
-private:
- QNetworkAccessManager *networkAccessManager() {
- if (!accessManager)
- accessManager = QDeclarativeEnginePrivate::get(engine)->createNetworkAccessManager(this);
- return accessManager;
+ QDeclarativePixmapData(const QPixmap &p)
+ : refCount(1), inCache(false), privatePixmap(true), pixmapStatus(QDeclarativePixmap::Ready),
+ pixmap(p), implicitSize(p.size()), requestSize(p.size()), reply(0), prevUnreferenced(0),
+ prevUnreferencedPtr(0), nextUnreferenced(0)
+ {
}
- QHash<QNetworkReply*,QDeclarativePixmapReply*> replies;
- QNetworkAccessManager *accessManager;
- QDeclarativeEngine *engine;
- QDeclarativeImageReader *reader;
- int redirectCount;
+ int cost() const;
+ void addref();
+ void release();
+ void addToCache();
+ void removeFromCache();
- static int replyDownloadProgress;
- static int replyFinished;
- static int downloadProgress;
- static int thisNetworkRequestDone;
+ uint refCount;
+
+ bool inCache:1;
+ bool privatePixmap:1;
+
+ QDeclarativePixmap::Status pixmapStatus;
+ QUrl url;
+ QString errorString;
+ QPixmap pixmap;
+ QSize implicitSize;
+ QSize requestSize;
+
+ QDeclarativePixmapReply *reply;
+
+ QDeclarativePixmapData *prevUnreferenced;
+ QDeclarativePixmapData**prevUnreferencedPtr;
+ QDeclarativePixmapData *nextUnreferenced;
};
-//===========================================================================
+int QDeclarativePixmapReply::finishedIndex = -1;
+int QDeclarativePixmapReply::downloadProgressIndex = -1;
+
+// XXX
+QHash<QDeclarativeEngine *,QDeclarativePixmapReader*> QDeclarativePixmapReader::readers;
+QMutex QDeclarativePixmapReader::readerMutex;
+
+int QDeclarativePixmapReader::replyDownloadProgress = -1;
+int QDeclarativePixmapReader::replyFinished = -1;
+int QDeclarativePixmapReader::downloadProgress = -1;
+int QDeclarativePixmapReader::thisNetworkRequestDone = -1;
-static bool readImage(const QUrl& url, QIODevice *dev, QImage *image, QString *errorString, QSize *impsize, int req_width, int req_height)
+
+void QDeclarativePixmapReply::postReply(ReadError error, const QString &errorString,
+ const QSize &implicitSize, const QImage &image)
+{
+ loading = false;
+ QCoreApplication::postEvent(this, new Event(error, errorString, implicitSize, image));
+}
+
+QDeclarativePixmapReply::Event::Event(ReadError e, const QString &s, const QSize &iSize, const QImage &i)
+: QEvent(QEvent::User), error(e), errorString(s), implicitSize(iSize), image(i)
+{
+}
+
+QNetworkAccessManager *QDeclarativePixmapReader::networkAccessManager()
+{
+ if (!accessManager) {
+ Q_ASSERT(threadObject);
+ accessManager = QDeclarativeEnginePrivate::get(engine)->createNetworkAccessManager(threadObject);
+ }
+ return accessManager;
+}
+
+static bool readImage(const QUrl& url, QIODevice *dev, QImage *image, QString *errorString, QSize *impsize,
+ const QSize &requestSize)
{
QImageReader imgio(dev);
@@ -163,17 +268,17 @@ static bool readImage(const QUrl& url, QIODevice *dev, QImage *image, QString *e
}
bool scaled = false;
- if (req_width > 0 || req_height > 0) {
+ if (requestSize.width() > 0 || requestSize.height() > 0) {
QSize s = imgio.size();
- if (req_width && (force_scale || req_width < s.width())) {
- if (req_height <= 0)
- s.setHeight(s.height()*req_width/s.width());
- s.setWidth(req_width); scaled = true;
+ if (requestSize.width() && (force_scale || requestSize.width() < s.width())) {
+ if (requestSize.height() <= 0)
+ s.setHeight(s.height()*requestSize.width()/s.width());
+ s.setWidth(requestSize.width()); scaled = true;
}
- if (req_height && (force_scale || req_height < s.height())) {
- if (req_width <= 0)
- s.setWidth(s.width()*req_height/s.height());
- s.setHeight(req_height); scaled = true;
+ if (requestSize.height() && (force_scale || requestSize.height() < s.height())) {
+ if (requestSize.width() <= 0)
+ s.setWidth(s.width()*requestSize.height()/s.height());
+ s.setHeight(requestSize.height()); scaled = true;
}
if (scaled) { imgio.setScaledSize(s); }
}
@@ -187,130 +292,39 @@ static bool readImage(const QUrl& url, QIODevice *dev, QImage *image, QString *e
return true;
} else {
if (errorString)
- *errorString = QDeclarativePixmapCache::tr("Error decoding: %1: %2").arg(url.toString())
+ *errorString = QDeclarativePixmap::tr("Error decoding: %1: %2").arg(url.toString())
.arg(imgio.errorString());
return false;
}
}
-
-//===========================================================================
-
-int QDeclarativeImageRequestHandler::replyDownloadProgress = -1;
-int QDeclarativeImageRequestHandler::replyFinished = -1;
-int QDeclarativeImageRequestHandler::downloadProgress = -1;
-int QDeclarativeImageRequestHandler::thisNetworkRequestDone = -1;
-
-typedef QHash<QUrl, QSize> QDeclarativePixmapSizeHash;
-Q_GLOBAL_STATIC(QDeclarativePixmapSizeHash, qmlOriginalSizes);
-
-bool QDeclarativeImageRequestHandler::event(QEvent *event)
+QDeclarativePixmapReader::QDeclarativePixmapReader(QDeclarativeEngine *eng)
+: QThread(eng), engine(eng), threadObject(0), accessManager(0)
{
- if (event->type() == QEvent::User) {
- if (replyDownloadProgress == -1) {
- replyDownloadProgress = QNetworkReply::staticMetaObject.indexOfSignal("downloadProgress(qint64,qint64)");
- replyFinished = QNetworkReply::staticMetaObject.indexOfSignal("finished()");
- downloadProgress = QDeclarativePixmapReply::staticMetaObject.indexOfSignal("downloadProgress(qint64,qint64)");
- thisNetworkRequestDone = QDeclarativeImageRequestHandler::staticMetaObject.indexOfSlot("networkRequestDone()");
- }
-
- while (1) {
- reader->mutex.lock();
-
- if (reader->cancelled.count()) {
- for (int i = 0; i < reader->cancelled.count(); ++i) {
- QDeclarativePixmapReply *job = reader->cancelled.at(i);
- QNetworkReply *reply = replies.key(job, 0);
- if (reply && reply->isRunning()) {
- // cancel any jobs already started
- replies.remove(reply);
- reply->close();
- job->release(true);
- } else {
- // remove from pending job list
- for (int j = 0; j < reader->jobs.count(); ++j) {
- if (reader->jobs.at(j) == job) {
- reader->jobs.removeAt(j);
- job->release(true);
- break;
- }
- }
- }
- }
- reader->cancelled.clear();
- }
-
- if (!reader->jobs.count() || replies.count() > maxImageRequestCount) {
- reader->mutex.unlock();
- break;
- }
+ eventLoopQuitHack = new QObject;
+ eventLoopQuitHack->moveToThread(this);
+ connect(eventLoopQuitHack, SIGNAL(destroyed(QObject*)), SLOT(quit()), Qt::DirectConnection);
+ start(QThread::IdlePriority);
+}
- QDeclarativePixmapReply *runningJob = reader->jobs.takeLast();
- QUrl url = runningJob->url();
- reader->mutex.unlock();
-
- // fetch
- if (url.scheme() == QLatin1String("image")) {
- // Use QmlImageProvider
- QSize read_impsize;
- QImage image = QDeclarativeEnginePrivate::get(engine)->getImageFromProvider(url, &read_impsize, QSize(runningJob->forcedWidth(),runningJob->forcedHeight()));
- qmlOriginalSizes()->insert(url, read_impsize);
- QDeclarativeImageReaderEvent::ReadError errorCode = QDeclarativeImageReaderEvent::NoError;
- QString errorStr;
- if (image.isNull()) {
- errorCode = QDeclarativeImageReaderEvent::Loading;
- errorStr = QDeclarativePixmapCache::tr("Failed to get image from provider: %1").arg(url.toString());
- }
- QCoreApplication::postEvent(runningJob, new QDeclarativeImageReaderEvent(errorCode, errorStr, image));
- } else {
- QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
- if (!lf.isEmpty()) {
- // Image is local - load/decode immediately
- QImage image;
- QDeclarativeImageReaderEvent::ReadError errorCode = QDeclarativeImageReaderEvent::NoError;
- QString errorStr;
- QFile f(lf);
- if (f.open(QIODevice::ReadOnly)) {
- QSize read_impsize;
- if (readImage(url, &f, &image, &errorStr, &read_impsize, runningJob->forcedWidth(),runningJob->forcedHeight())) {
- qmlOriginalSizes()->insert(url, read_impsize);
- } else {
- errorCode = QDeclarativeImageReaderEvent::Loading;
- }
- } else {
- errorStr = QDeclarativePixmapCache::tr("Cannot open: %1").arg(url.toString());
- errorCode = QDeclarativeImageReaderEvent::Loading;
- }
- QCoreApplication::postEvent(runningJob, new QDeclarativeImageReaderEvent(errorCode, errorStr, image));
- } else {
- // Network resource
- QNetworkRequest req(url);
- req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
- QNetworkReply *reply = networkAccessManager()->get(req);
-
- QMetaObject::connect(reply, replyDownloadProgress, runningJob, downloadProgress);
- QMetaObject::connect(reply, replyFinished, this, thisNetworkRequestDone);
-
- replies.insert(reply, runningJob);
- }
- }
- }
- return true;
- }
+QDeclarativePixmapReader::~QDeclarativePixmapReader()
+{
+ readerMutex.lock();
+ readers.remove(engine);
+ readerMutex.unlock();
- return QObject::event(event);
+ eventLoopQuitHack->deleteLater();
+ wait();
}
-#define IMAGEREQUESTHANDLER_MAX_REDIRECT_RECURSION 16
-
-void QDeclarativeImageRequestHandler::networkRequestDone()
+void QDeclarativePixmapReader::networkRequestDone()
{
QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
QDeclarativePixmapReply *job = replies.take(reply);
if (job) {
- redirectCount++;
- if (redirectCount < IMAGEREQUESTHANDLER_MAX_REDIRECT_RECURSION) {
+ job->redirectCount++;
+ if (job->redirectCount < IMAGEREQUEST_MAX_REDIRECT_RECURSION) {
QVariant redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
if (redirect.isValid()) {
QUrl url = reply->url().resolved(redirect.toUrl());
@@ -327,62 +341,147 @@ void QDeclarativeImageRequestHandler::networkRequestDone()
return;
}
}
- redirectCount=0;
QImage image;
- QDeclarativeImageReaderEvent::ReadError error;
+ QDeclarativePixmapReply::ReadError error = QDeclarativePixmapReply::NoError;
QString errorString;
+ QSize readSize;
if (reply->error()) {
- error = QDeclarativeImageReaderEvent::Loading;
+ error = QDeclarativePixmapReply::Loading;
errorString = reply->errorString();
} else {
- QSize read_impsize;
QByteArray all = reply->readAll();
QBuffer buff(&all);
buff.open(QIODevice::ReadOnly);
- if (readImage(reply->url(), &buff, &image, &errorString, &read_impsize, job->forcedWidth(), job->forcedHeight())) {
- qmlOriginalSizes()->insert(reply->url(), read_impsize);
- error = QDeclarativeImageReaderEvent::NoError;
- } else {
- error = QDeclarativeImageReaderEvent::Decoding;
+ if (!readImage(reply->url(), &buff, &image, &errorString, &readSize, job->data->requestSize)) {
+ error = QDeclarativePixmapReply::Decoding;
}
}
// send completion event to the QDeclarativePixmapReply
- QCoreApplication::postEvent(job, new QDeclarativeImageReaderEvent(error, errorString, image));
+ mutex.lock();
+ if (!cancelled.contains(job)) job->postReply(error, errorString, readSize, image);
+ mutex.unlock();
}
- // kick off event loop again if we have dropped below max request count
- if (replies.count() == maxImageRequestCount)
- QCoreApplication::postEvent(this, new QEvent(QEvent::User));
reply->deleteLater();
+
+ // kick off event loop again incase we have dropped below max request count
+ threadObject->processJobs();
}
-//===========================================================================
+QDeclarativePixmapReader::ThreadObject::ThreadObject(QDeclarativePixmapReader *i)
+: reader(i)
+{
+}
-QDeclarativeImageReader::QDeclarativeImageReader(QDeclarativeEngine *eng)
- : QThread(eng), engine(eng), handler(0)
+void QDeclarativePixmapReader::ThreadObject::processJobs()
+{
+ QCoreApplication::postEvent(this, new QEvent(QEvent::User));
+}
+
+bool QDeclarativePixmapReader::ThreadObject::event(QEvent *e)
{
- eventLoopQuitHack = new QObject;
- eventLoopQuitHack->moveToThread(this);
- connect(eventLoopQuitHack, SIGNAL(destroyed(QObject*)), SLOT(quit()), Qt::DirectConnection);
- start(QThread::IdlePriority);
+ if (e->type() == QEvent::User) {
+ reader->processJobs();
+ return true;
+ } else {
+ return QObject::event(e);
+ }
}
-QDeclarativeImageReader::~QDeclarativeImageReader()
+void QDeclarativePixmapReader::processJobs()
{
- readerMutex.lock();
- readers.remove(engine);
- readerMutex.unlock();
+ QMutexLocker locker(&mutex);
+
+ while (true) {
+ if (cancelled.isEmpty() && (jobs.isEmpty() || replies.count() >= IMAGEREQUEST_MAX_REQUEST_COUNT))
+ return; // Nothing else to do
+
+ // Clean cancelled jobs
+ if (cancelled.count()) {
+ for (int i = 0; i < cancelled.count(); ++i) {
+ QDeclarativePixmapReply *job = cancelled.at(i);
+ QNetworkReply *reply = replies.key(job, 0);
+ if (reply && reply->isRunning()) {
+ // cancel any jobs already started
+ replies.remove(reply);
+ reply->close();
+ }
+ delete job;
+ }
+ cancelled.clear();
+ }
- eventLoopQuitHack->deleteLater();
- wait();
+ if (!jobs.isEmpty() && replies.count() < IMAGEREQUEST_MAX_REQUEST_COUNT) {
+ QDeclarativePixmapReply *runningJob = jobs.takeLast();
+ runningJob->loading = true;
+
+ locker.unlock();
+ processJob(runningJob);
+ locker.relock();
+ }
+ }
}
-QDeclarativeImageReader *QDeclarativeImageReader::instance(QDeclarativeEngine *engine)
+void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob)
+{
+ 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);
+
+ QDeclarativePixmapReply::ReadError errorCode = QDeclarativePixmapReply::NoError;
+ QString errorStr;
+ if (image.isNull()) {
+ errorCode = QDeclarativePixmapReply::Loading;
+ errorStr = QDeclarativePixmap::tr("Failed to get image from provider: %1").arg(url.toString());
+ }
+
+ mutex.lock();
+ if (!cancelled.contains(runningJob)) runningJob->postReply(errorCode, errorStr, readSize, image);
+ mutex.unlock();
+ } else {
+ QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
+ if (!lf.isEmpty()) {
+ // Image is local - load/decode immediately
+ QImage image;
+ QDeclarativePixmapReply::ReadError errorCode = QDeclarativePixmapReply::NoError;
+ QString errorStr;
+ QFile f(lf);
+ QSize readSize;
+ if (f.open(QIODevice::ReadOnly)) {
+ if (!readImage(url, &f, &image, &errorStr, &readSize, runningJob->data->requestSize))
+ errorCode = QDeclarativePixmapReply::Loading;
+ } else {
+ errorStr = QDeclarativePixmap::tr("Cannot open: %1").arg(url.toString());
+ errorCode = QDeclarativePixmapReply::Loading;
+ }
+ mutex.lock();
+ if (!cancelled.contains(runningJob)) runningJob->postReply(errorCode, errorStr, readSize, image);
+ mutex.unlock();
+ } else {
+ // Network resource
+ QNetworkRequest req(url);
+ req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
+ QNetworkReply *reply = networkAccessManager()->get(req);
+
+ QMetaObject::connect(reply, replyDownloadProgress, runningJob, downloadProgress);
+ QMetaObject::connect(reply, replyFinished, this, thisNetworkRequestDone);
+
+ replies.insert(reply, runningJob);
+ }
+ }
+}
+
+QDeclarativePixmapReader *QDeclarativePixmapReader::instance(QDeclarativeEngine *engine)
{
readerMutex.lock();
- QDeclarativeImageReader *reader = readers.value(engine);
+ QDeclarativePixmapReader *reader = readers.value(engine);
if (!reader) {
- reader = new QDeclarativeImageReader(engine);
+ reader = new QDeclarativePixmapReader(engine);
readers.insert(engine, reader);
}
readerMutex.unlock();
@@ -390,348 +489,558 @@ QDeclarativeImageReader *QDeclarativeImageReader::instance(QDeclarativeEngine *e
return reader;
}
-QDeclarativePixmapReply *QDeclarativeImageReader::getImage(const QUrl &url, int req_width, int req_height)
+QDeclarativePixmapReply *QDeclarativePixmapReader::getImage(QDeclarativePixmapData *data)
{
mutex.lock();
- QDeclarativePixmapReply *reply = new QDeclarativePixmapReply(this, url, req_width, req_height);
- reply->addRef();
- reply->setLoading();
+ QDeclarativePixmapReply *reply = new QDeclarativePixmapReply(data);
+ reply->reader = this;
jobs.append(reply);
- if (jobs.count() == 1 && handler)
- QCoreApplication::postEvent(handler, new QEvent(QEvent::User));
+ // XXX
+ if (threadObject) threadObject->processJobs();
mutex.unlock();
return reply;
}
-void QDeclarativeImageReader::cancel(QDeclarativePixmapReply *reply)
+void QDeclarativePixmapReader::cancel(QDeclarativePixmapReply *reply)
{
mutex.lock();
- if (reply->isLoading()) {
- // Add to cancel list to be cancelled in reader thread.
+ if (reply->loading) {
cancelled.append(reply);
- if (cancelled.count() == 1 && handler)
- QCoreApplication::postEvent(handler, new QEvent(QEvent::User));
+ // XXX
+ if (threadObject) threadObject->processJobs();
+ } else {
+ jobs.removeAll(reply);
+ delete reply;
}
mutex.unlock();
}
-void QDeclarativeImageReader::run()
+void QDeclarativePixmapReader::run()
{
- readerMutex.lock();
- handler = new QDeclarativeImageRequestHandler(this, engine);
- readerMutex.unlock();
+ if (replyDownloadProgress == -1) {
+ const QMetaObject *nr = &QNetworkReply::staticMetaObject;
+ const QMetaObject *pr = &QDeclarativePixmapReply::staticMetaObject;
+ const QMetaObject *ir = &QDeclarativePixmapReader::staticMetaObject;
+ replyDownloadProgress = nr->indexOfSignal("downloadProgress(qint64,qint64)");
+ replyFinished = nr->indexOfSignal("finished()");
+ downloadProgress = pr->indexOfSignal("downloadProgress(qint64,qint64)");
+ thisNetworkRequestDone = ir->indexOfSlot("networkRequestDone()");
+ }
+
+ mutex.lock();
+ threadObject = new ThreadObject(this);
+ mutex.unlock();
+ processJobs();
exec();
- delete handler;
- handler = 0;
+ delete threadObject;
+ threadObject = 0;
}
-//===========================================================================
-
-/*!
- \internal
- \class QDeclarativePixmapCache
- \brief Enacapsultes a pixmap for QDeclarativeGraphics items.
+class QDeclarativePixmapKey
+{
+public:
+ const QUrl *url;
+ const QSize *size;
+};
- This class is NOT reentrant.
- */
+inline bool operator==(const QDeclarativePixmapKey &lhs, const QDeclarativePixmapKey &rhs)
+{
+ return *lhs.size == *rhs.size && *lhs.url == *rhs.url;
+}
-typedef QHash<QUrl, QDeclarativePixmapReply *> QDeclarativePixmapReplyHash;
-Q_GLOBAL_STATIC(QDeclarativePixmapReplyHash, qmlActivePixmapReplies);
+inline uint qHash(const QDeclarativePixmapKey &key)
+{
+ return qHash(*key.url) ^ key.size->width() ^ key.size->height();
+}
-class QDeclarativePixmapReplyPrivate : public QObjectPrivate
+class QDeclarativePixmapStore : public QObject
{
- Q_DECLARE_PUBLIC(QDeclarativePixmapReply)
+ Q_OBJECT
+public:
+ QDeclarativePixmapStore();
+
+ void unreferencePixmap(QDeclarativePixmapData *);
+ void referencePixmap(QDeclarativePixmapData *);
+
+protected:
+ virtual void timerEvent(QTimerEvent *);
public:
- QDeclarativePixmapReplyPrivate(QDeclarativeImageReader *r, const QUrl &u, int req_width, int req_height)
- : QObjectPrivate(), refCount(1), url(u), status(QDeclarativePixmapReply::Loading), loading(false), reader(r),
- forced_width(req_width), forced_height(req_height)
- {
- }
+ QHash<QDeclarativePixmapKey, QDeclarativePixmapData *> m_cache;
- int refCount;
- QUrl url;
- QPixmap pixmap; // ensure reference to pixmap so QPixmapCache does not discard
- QDeclarativePixmapReply::Status status;
- bool loading;
- QDeclarativeImageReader *reader;
- int forced_width, forced_height;
- QString errorString;
-};
+private:
+ QDeclarativePixmapData *m_unreferencedPixmaps;
+ QDeclarativePixmapData *m_lastUnreferencedPixmap;
+ int m_unreferencedCost;
+ int m_timerId;
+};
+Q_GLOBAL_STATIC(QDeclarativePixmapStore, pixmapStore);
-QDeclarativePixmapReply::QDeclarativePixmapReply(QDeclarativeImageReader *reader, const QUrl &url, int req_width, int req_height)
- : QObject(*new QDeclarativePixmapReplyPrivate(reader, url, req_width, req_height), 0)
+QDeclarativePixmapStore::QDeclarativePixmapStore()
+: m_unreferencedPixmaps(0), m_lastUnreferencedPixmap(0), m_unreferencedCost(0), m_timerId(-1)
{
}
-QDeclarativePixmapReply::~QDeclarativePixmapReply()
+void QDeclarativePixmapStore::unreferencePixmap(QDeclarativePixmapData *data)
{
+ Q_ASSERT(data->prevUnreferenced == 0);
+ Q_ASSERT(data->prevUnreferencedPtr == 0);
+ Q_ASSERT(data->nextUnreferenced == 0);
+
+ data->nextUnreferenced = m_unreferencedPixmaps;
+ data->prevUnreferencedPtr = &m_unreferencedPixmaps;
+
+ m_unreferencedPixmaps = data;
+ if (m_unreferencedPixmaps->nextUnreferenced) {
+ m_unreferencedPixmaps->nextUnreferenced->prevUnreferenced = m_unreferencedPixmaps;
+ m_unreferencedPixmaps->nextUnreferenced->prevUnreferencedPtr = &m_unreferencedPixmaps->nextUnreferenced;
+ }
+
+ if (!m_lastUnreferencedPixmap)
+ m_lastUnreferencedPixmap = data;
+
+ m_unreferencedCost += data->cost();
+
+ if (m_timerId == -1)
+ startTimer(CACHE_EXPIRE_TIME * 1000);
}
-const QUrl &QDeclarativePixmapReply::url() const
+void QDeclarativePixmapStore::referencePixmap(QDeclarativePixmapData *data)
{
- Q_D(const QDeclarativePixmapReply);
- return d->url;
+ Q_ASSERT(data->prevUnreferencedPtr);
+
+ *data->prevUnreferencedPtr = data->nextUnreferenced;
+ if (data->nextUnreferenced) {
+ data->nextUnreferenced->prevUnreferencedPtr = data->prevUnreferencedPtr;
+ data->nextUnreferenced->prevUnreferenced = data->prevUnreferenced;
+ }
+ if (m_lastUnreferencedPixmap == data)
+ m_lastUnreferencedPixmap = data->prevUnreferenced;
+
+ data->nextUnreferenced = 0;
+ data->prevUnreferencedPtr = 0;
+ data->prevUnreferenced = 0;
+
+ m_unreferencedCost -= data->cost();
}
-int QDeclarativePixmapReply::forcedWidth() const
+void QDeclarativePixmapStore::timerEvent(QTimerEvent *)
{
- Q_D(const QDeclarativePixmapReply);
- return d->forced_width;
+ int removalCost = m_unreferencedCost / CACHE_REMOVAL_FRACTION;
+
+ while (removalCost > 0 && m_lastUnreferencedPixmap) {
+ QDeclarativePixmapData *data = m_lastUnreferencedPixmap;
+ Q_ASSERT(data->nextUnreferenced == 0);
+
+ *data->prevUnreferencedPtr = 0;
+ m_lastUnreferencedPixmap = data->prevUnreferenced;
+ data->prevUnreferencedPtr = 0;
+ data->prevUnreferenced = 0;
+
+ removalCost -= data->cost();
+ data->removeFromCache();
+ delete data;
+ }
+
+ if (m_unreferencedPixmaps == 0) {
+ killTimer(m_timerId);
+ m_timerId = -1;
+ }
}
-int QDeclarativePixmapReply::forcedHeight() const
+QDeclarativePixmapReply::QDeclarativePixmapReply(QDeclarativePixmapData *d)
+: data(d), reader(0), loading(false), redirectCount(0)
{
- Q_D(const QDeclarativePixmapReply);
- return d->forced_height;
+ if (finishedIndex == -1) {
+ finishedIndex = QDeclarativePixmapReply::staticMetaObject.indexOfSignal("finished()");
+ downloadProgressIndex = QDeclarativePixmapReply::staticMetaObject.indexOfSignal("downloadProgress(qint64,qint64)");
+ }
}
-QSize QDeclarativePixmapReply::implicitSize() const
+QDeclarativePixmapReply::~QDeclarativePixmapReply()
{
- Q_D(const QDeclarativePixmapReply);
- QDeclarativePixmapSizeHash::Iterator iter = qmlOriginalSizes()->find(d->url);
- if (iter != qmlOriginalSizes()->end())
- return *iter;
- else
- return QSize();
}
bool QDeclarativePixmapReply::event(QEvent *event)
{
- Q_D(QDeclarativePixmapReply);
if (event->type() == QEvent::User) {
- d->loading = false;
- if (!release(true)) {
- QDeclarativeImageReaderEvent *de = static_cast<QDeclarativeImageReaderEvent*>(event);
- d->status = (de->error == QDeclarativeImageReaderEvent::NoError) ? Ready : Error;
- if (d->status == Ready)
- d->pixmap = QPixmap::fromImage(de->image);
- else
- d->errorString = de->errorString;
- QByteArray key = d->url.toEncoded(QUrl::FormattingOption(0x100));
- if (d->forced_width > 0 || d->forced_height > 0) {
- key += ':';
- key += QByteArray::number(d->forced_width);
- key += 'x';
- key += QByteArray::number(d->forced_height);
+
+ if (data) {
+ Event *de = static_cast<Event *>(event);
+ data->pixmapStatus = (de->error == NoError) ? QDeclarativePixmap::Ready : QDeclarativePixmap::Error;
+
+ if (data->pixmapStatus == QDeclarativePixmap::Ready) {
+ data->pixmap = QPixmap::fromImage(de->image);
+ data->implicitSize = de->implicitSize;
+ } else {
+ data->errorString = de->errorString;
+ data->removeFromCache(); // We don't continue to cache error'd pixmaps
}
- QString strKey = QString::fromLatin1(key.constData(), key.count());
- QPixmapCache::insert(strKey, d->pixmap); // note: may fail (returns false)
+
+ data->reply = 0;
emit finished();
}
+
+ delete this;
return true;
+ } else {
+ return QObject::event(event);
}
-
- return QObject::event(event);
}
-QString QDeclarativePixmapReply::errorString() const
+int QDeclarativePixmapData::cost() const
{
- Q_D(const QDeclarativePixmapReply);
- return d->errorString;
+ return pixmap.width() * pixmap.height() * pixmap.depth();
}
-QDeclarativePixmapReply::Status QDeclarativePixmapReply::status() const
+void QDeclarativePixmapData::addref()
{
- Q_D(const QDeclarativePixmapReply);
- return d->status;
+ ++refCount;
+ if (prevUnreferencedPtr)
+ pixmapStore()->referencePixmap(this);
}
-bool QDeclarativePixmapReply::isLoading() const
+void QDeclarativePixmapData::release()
{
- Q_D(const QDeclarativePixmapReply);
- return d->loading;
+ Q_ASSERT(refCount > 0);
+ --refCount;
+
+ if (refCount == 0) {
+ if (reply) {
+ reply->data = 0;
+ reply->reader->cancel(reply);
+ reply = 0;
+ }
+
+ if (pixmapStatus == QDeclarativePixmap::Ready) {
+ pixmapStore()->unreferencePixmap(this);
+ } else {
+ removeFromCache();
+ delete this;
+ }
+ }
}
-void QDeclarativePixmapReply::setLoading()
+void QDeclarativePixmapData::addToCache()
{
- Q_D(QDeclarativePixmapReply);
- d->loading = true;
+ if (!inCache) {
+ QDeclarativePixmapKey key = { &url, &requestSize };
+ pixmapStore()->m_cache.insert(key, this);
+ inCache = true;
+ }
}
-void QDeclarativePixmapReply::addRef()
+void QDeclarativePixmapData::removeFromCache()
{
- Q_D(QDeclarativePixmapReply);
- ++d->refCount;
+ if (inCache) {
+ QDeclarativePixmapKey key = { &url, &requestSize };
+ pixmapStore()->m_cache.remove(key);
+ inCache = false;
+ }
}
-bool QDeclarativePixmapReply::release(bool defer)
+static QDeclarativePixmapData* createPixmapDataSync(QDeclarativeEngine *engine, const QUrl &url, const QSize &requestSize, bool *ok)
{
- Q_D(QDeclarativePixmapReply);
- Q_ASSERT(d->refCount > 0);
- --d->refCount;
- if (d->refCount == 0) {
- qmlActivePixmapReplies()->remove(d->url);
- if (defer)
- deleteLater();
- else
- delete this;
- return true;
- } else if (d->refCount == 1 && d->loading) {
- // The only reference left is the reader thread.
- qmlActivePixmapReplies()->remove(d->url);
- d->reader->cancel(this);
+ if (url.scheme() == QLatin1String("image")) {
+ QSize readSize;
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(engine);
+ QDeclarativeImageProvider::ImageType imageType = ep->getImageProviderType(url);
+
+ switch (imageType) {
+ case QDeclarativeImageProvider::Image:
+ {
+ QImage image = ep->getImageFromProvider(url, &readSize, requestSize);
+ if (!image.isNull()) {
+ *ok = true;
+ return new QDeclarativePixmapData(url, QPixmap::fromImage(image), readSize, requestSize);
+ }
+ }
+ case QDeclarativeImageProvider::Pixmap:
+ {
+ QPixmap pixmap = ep->getPixmapFromProvider(url, &readSize, requestSize);
+ if (!pixmap.isNull()) {
+ *ok = true;
+ return new QDeclarativePixmapData(url, pixmap, readSize, requestSize);
+ }
+ }
+ }
+
+ // no matching provider, or provider has bad image type, or provider returned null image
+ return new QDeclarativePixmapData(url, requestSize,
+ QDeclarativePixmap::tr("Failed to get image from provider: %1").arg(url.toString()));
}
- return false;
+ QString localFile = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
+ if (localFile.isEmpty())
+ return 0;
+
+ QFile f(localFile);
+ QSize readSize;
+ QString errorString;
+
+ if (f.open(QIODevice::ReadOnly)) {
+ QImage image;
+ if (readImage(url, &f, &image, &errorString, &readSize, requestSize)) {
+ *ok = true;
+ return new QDeclarativePixmapData(url, QPixmap::fromImage(image), readSize, requestSize);
+ }
+ } else {
+ errorString = QDeclarativePixmap::tr("Cannot open: %1").arg(url.toString());
+ }
+ return new QDeclarativePixmapData(url, requestSize, errorString);
}
-/*!
- Finds the cached pixmap corresponding to \a url.
- If the image is a network resource and has not yet
- been retrieved and cached, request() must be called.
- Returns Ready, or Error if the image has been retrieved,
- otherwise the current retrieval status.
+struct QDeclarativePixmapNull {
+ QUrl url;
+ QPixmap pixmap;
+ QSize size;
+};
+Q_GLOBAL_STATIC(QDeclarativePixmapNull, nullPixmap);
- If \a async is false the image will be loaded and decoded immediately;
- otherwise the image will be loaded and decoded in a separate thread.
+QDeclarativePixmap::QDeclarativePixmap()
+: d(0)
+{
+}
- If \a req_width and \a req_height are non-zero, they are used for
- the size of the rendered pixmap rather than the intrinsic size of the image.
- Different request sizes add different cache items.
+QDeclarativePixmap::QDeclarativePixmap(QDeclarativeEngine *engine, const QUrl &url)
+: d(0)
+{
+ load(engine, url);
+}
- Note that images sourced from the network will always be loaded and
- decoded asynchonously.
-*/
-QDeclarativePixmapReply::Status QDeclarativePixmapCache::get(const QUrl& url, QPixmap *pixmap, QString *errorString, QSize *impsize, bool async, int req_width, int req_height)
+QDeclarativePixmap::QDeclarativePixmap(QDeclarativeEngine *engine, const QUrl &url, const QSize &size)
+: d(0)
{
- QDeclarativePixmapReply::Status status = QDeclarativePixmapReply::Unrequested;
- QByteArray key = url.toEncoded(QUrl::FormattingOption(0x100));
+ load(engine, url, size);
+}
- if (req_width > 0 || req_height > 0) {
- key += ':';
- key += QByteArray::number(req_width);
- key += 'x';
- key += QByteArray::number(req_height);
+QDeclarativePixmap::~QDeclarativePixmap()
+{
+ if (d) {
+ d->release();
+ d = 0;
}
+}
- QString strKey = QString::fromLatin1(key.constData(), key.count());
+bool QDeclarativePixmap::isNull() const
+{
+ return d == 0;
+}
-#ifndef QT_NO_LOCALFILE_OPTIMIZED_QML
- if (!async) {
- QString lf = QDeclarativeEnginePrivate::urlToLocalFileOrQrc(url);
- if (!lf.isEmpty()) {
- status = QDeclarativePixmapReply::Ready;
- if (!QPixmapCache::find(strKey,pixmap)) {
- QFile f(lf);
- QSize read_impsize;
- if (f.open(QIODevice::ReadOnly)) {
- QImage image;
- if (readImage(url, &f, &image, errorString, &read_impsize, req_width, req_height)) {
- *pixmap = QPixmap::fromImage(image);
- } else {
- *pixmap = QPixmap();
- status = QDeclarativePixmapReply::Error;
- }
- } else {
- if (errorString)
- *errorString = tr("Cannot open: %1").arg(url.toString());
- *pixmap = QPixmap();
- status = QDeclarativePixmapReply::Error;
- }
- if (status == QDeclarativePixmapReply::Ready) {
- QPixmapCache::insert(strKey, *pixmap);
- qmlOriginalSizes()->insert(url, read_impsize);
- }
- if (impsize)
- *impsize = read_impsize;
- } else {
- if (impsize) {
- QDeclarativePixmapSizeHash::Iterator iter = qmlOriginalSizes()->find(url);
- if (iter != qmlOriginalSizes()->end())
- *impsize = *iter;
- }
+bool QDeclarativePixmap::isReady() const
+{
+ return status() == Ready;
+}
+
+bool QDeclarativePixmap::isError() const
+{
+ return status() == Error;
+}
+
+bool QDeclarativePixmap::isLoading() const
+{
+ return status() == Loading;
+}
+
+QString QDeclarativePixmap::error() const
+{
+ if (d)
+ return d->errorString;
+ else
+ return QString();
+}
+
+QDeclarativePixmap::Status QDeclarativePixmap::status() const
+{
+ if (d)
+ return d->pixmapStatus;
+ else
+ return Null;
+}
+
+const QUrl &QDeclarativePixmap::url() const
+{
+ if (d)
+ return d->url;
+ else
+ return nullPixmap()->url;
+}
+
+const QSize &QDeclarativePixmap::implicitSize() const
+{
+ if (d)
+ return d->implicitSize;
+ else
+ return nullPixmap()->size;
+}
+
+const QSize &QDeclarativePixmap::requestSize() const
+{
+ if (d)
+ return d->requestSize;
+ else
+ return nullPixmap()->size;
+}
+
+const QPixmap &QDeclarativePixmap::pixmap() const
+{
+ if (d)
+ return d->pixmap;
+ else
+ return nullPixmap()->pixmap;
+}
+
+void QDeclarativePixmap::setPixmap(const QPixmap &p)
+{
+ clear();
+
+ if (!p.isNull())
+ d = new QDeclarativePixmapData(p);
+}
+
+int QDeclarativePixmap::width() const
+{
+ if (d)
+ return d->pixmap.width();
+ else
+ return 0;
+}
+
+int QDeclarativePixmap::height() const
+{
+ if (d)
+ return d->pixmap.height();
+ else
+ return 0;
+}
+
+QRect QDeclarativePixmap::rect() const
+{
+ if (d)
+ return d->pixmap.rect();
+ else
+ return QRect();
+}
+
+void QDeclarativePixmap::load(QDeclarativeEngine *engine, const QUrl &url)
+{
+ load(engine, url, QSize(), false);
+}
+
+void QDeclarativePixmap::load(QDeclarativeEngine *engine, const QUrl &url, bool async)
+{
+ load(engine, url, QSize(), async);
+}
+
+void QDeclarativePixmap::load(QDeclarativeEngine *engine, const QUrl &url, const QSize &size)
+{
+ load(engine, url, size, false);
+}
+
+void QDeclarativePixmap::load(QDeclarativeEngine *engine, const QUrl &url, const QSize &requestSize, bool async)
+{
+ if (d) { d->release(); d = 0; }
+
+ QDeclarativePixmapKey key = { &url, &requestSize };
+ QDeclarativePixmapStore *store = pixmapStore();
+
+ QHash<QDeclarativePixmapKey, QDeclarativePixmapData *>::Iterator iter = store->m_cache.find(key);
+
+ if (iter == store->m_cache.end()) {
+ if (async) {
+ // pixmaps can only be loaded synchronously
+ if (url.scheme() == QLatin1String("image")
+ && QDeclarativeEnginePrivate::get(engine)->getImageProviderType(url) == QDeclarativeImageProvider::Pixmap) {
+ async = false;
}
- return status;
- }
- }
-#endif
-
- QDeclarativePixmapReplyHash::Iterator iter = qmlActivePixmapReplies()->find(url);
- if (iter != qmlActivePixmapReplies()->end() && (*iter)->status() == QDeclarativePixmapReply::Ready) {
- // Must check this, since QPixmapCache::insert may have failed.
- *pixmap = (*iter)->d_func()->pixmap;
- status = (*iter)->status();
- (*iter)->release();
- } else if (QPixmapCache::find(strKey, pixmap)) {
- if (iter != qmlActivePixmapReplies()->end()) {
- status = (*iter)->status();
- if (errorString)
- *errorString = (*iter)->errorString();
- (*iter)->release();
- } else if (pixmap->isNull()) {
- status = QDeclarativePixmapReply::Error;
- if (errorString)
- *errorString = tr("Unknown Error loading %1").arg(url.toString());
- } else {
- status = QDeclarativePixmapReply::Ready;
}
- } else if (iter != qmlActivePixmapReplies()->end()) {
- status = QDeclarativePixmapReply::Loading;
- }
- if (impsize) {
- QDeclarativePixmapSizeHash::Iterator iter = qmlOriginalSizes()->find(url);
- if (iter != qmlOriginalSizes()->end())
- *impsize = *iter;
- }
- return status;
+ if (!async) {
+ bool ok = false;
+ d = createPixmapDataSync(engine, url, requestSize, &ok);
+ if (ok) {
+ d->addToCache();
+ return;
+ }
+ if (d) // loadable, but encountered error while loading
+ return;
+ }
+
+ if (!engine)
+ return;
+
+ QDeclarativePixmapReader *reader = QDeclarativePixmapReader::instance(engine);
+
+ d = new QDeclarativePixmapData(url, requestSize);
+ d->addToCache();
+
+ d->reply = reader->getImage(d);
+ } else {
+ d = *iter;
+ d->addref();
+ }
}
-/*!
- Starts a network request to load \a url.
+void QDeclarativePixmap::clear()
+{
+ if (d) {
+ d->release();
+ d = 0;
+ }
+}
- Returns a QDeclarativePixmapReply. Caller should connect to QDeclarativePixmapReply::finished()
- and call get() when the image is available.
+void QDeclarativePixmap::clear(QObject *obj)
+{
+ if (d) {
+ if (d->reply)
+ QObject::disconnect(d->reply, 0, obj, 0);
+ d->release();
+ d = 0;
+ }
+}
- The returned QDeclarativePixmapReply will be deleted when all request() calls are
- matched by a corresponding get() call.
-*/
-QDeclarativePixmapReply *QDeclarativePixmapCache::request(QDeclarativeEngine *engine, const QUrl &url, int req_width, int req_height)
+bool QDeclarativePixmap::connectFinished(QObject *object, const char *method)
{
- QDeclarativePixmapReplyHash::Iterator iter = qmlActivePixmapReplies()->find(url);
- if (iter == qmlActivePixmapReplies()->end()) {
- QDeclarativeImageReader *reader = QDeclarativeImageReader::instance(engine);
- QDeclarativePixmapReply *item = reader->getImage(url, req_width, req_height);
- iter = qmlActivePixmapReplies()->insert(url, item);
- } else {
- (*iter)->addRef();
+ if (!d || !d->reply) {
+ qWarning("QDeclarativePixmap: connectFinished() called when not loading.");
+ return false;
}
- return (*iter);
+ return QObject::connect(d->reply, SIGNAL(finished()), object, method);
}
-/*!
- Cancels a previous call to request().
+bool QDeclarativePixmap::connectFinished(QObject *object, int method)
+{
+ if (!d || !d->reply) {
+ qWarning("QDeclarativePixmap: connectFinished() called when not loading.");
+ return false;
+ }
- May also cancel loading (eg. if no other pending request).
+ return QMetaObject::connect(d->reply, QDeclarativePixmapReply::finishedIndex, object, method);
+}
- Any connections from the QDeclarativePixmapReply returned by request() to \a obj will be
- disconnected.
-*/
-void QDeclarativePixmapCache::cancel(const QUrl& url, QObject *obj)
+bool QDeclarativePixmap::connectDownloadProgress(QObject *object, const char *method)
{
- QDeclarativePixmapReplyHash::Iterator iter = qmlActivePixmapReplies()->find(url);
- if (iter == qmlActivePixmapReplies()->end())
- return;
+ if (!d || !d->reply) {
+ qWarning("QDeclarativePixmap: connectDownloadProgress() called when not loading.");
+ return false;
+ }
- QDeclarativePixmapReply *reply = *iter;
- if (obj)
- QObject::disconnect(reply, 0, obj, 0);
- reply->release();
+ return QObject::connect(d->reply, SIGNAL(downloadProgress(qint64,qint64)), object, method);
}
-/*!
- This function is mainly for test verification. It returns the number of
- requests that are still unfinished.
-*/
-int QDeclarativePixmapCache::pendingRequests()
+bool QDeclarativePixmap::connectDownloadProgress(QObject *object, int method)
{
- return qmlActivePixmapReplies()->count();
+ if (!d || !d->reply) {
+ qWarning("QDeclarativePixmap: connectDownloadProgress() called when not loading.");
+ return false;
+ }
+
+ return QMetaObject::connect(d->reply, QDeclarativePixmapReply::downloadProgressIndex, object, method);
}
QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativepixmapcache_p.h b/src/declarative/util/qdeclarativepixmapcache_p.h
index 33d9de1..b4d88bd 100644
--- a/src/declarative/util/qdeclarativepixmapcache_p.h
+++ b/src/declarative/util/qdeclarativepixmapcache_p.h
@@ -42,69 +42,70 @@
#ifndef QDECLARATIVEPIXMAPCACHE_H
#define QDECLARATIVEPIXMAPCACHE_H
-#include <QtCore/QString>
-#include <QtGui/QPixmap>
+#include <QtCore/qcoreapplication.h>
+#include <QtCore/qstring.h>
+#include <QtGui/qpixmap.h>
#include <QtCore/qurl.h>
-#include <QtCore/QCoreApplication>
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_MODULE(Declarative)
-class QDeclarativeEngine;
-class QNetworkReply;
-class QDeclarativeImageReader;
-class QDeclarativePixmapReplyPrivate;
-class Q_DECLARATIVE_EXPORT QDeclarativePixmapReply : public QObject
+class QDeclarativeEngine;
+class QDeclarativePixmapData;
+class Q_DECLARATIVE_EXPORT QDeclarativePixmap
{
- Q_OBJECT
+ Q_DECLARE_TR_FUNCTIONS(QDeclarativePixmap)
public:
- ~QDeclarativePixmapReply();
+ QDeclarativePixmap();
+ QDeclarativePixmap(QDeclarativeEngine *, const QUrl &);
+ QDeclarativePixmap(QDeclarativeEngine *, const QUrl &, const QSize &);
+ ~QDeclarativePixmap();
- enum Status { Ready, Error, Unrequested, Loading };
- Status status() const;
- QString errorString() const;
+ enum Status { Null, Ready, Error, Loading };
+ bool isNull() const;
+ bool isReady() const;
+ bool isError() const;
+ bool isLoading() const;
+
+ Status status() const;
+ QString error() const;
const QUrl &url() const;
- int forcedWidth() const;
- int forcedHeight() const;
- QSize implicitSize() const;
+ const QSize &implicitSize() const;
+ const QSize &requestSize() const;
+ const QPixmap &pixmap() const;
+ void setPixmap(const QPixmap &);
-Q_SIGNALS:
- void finished();
- void downloadProgress(qint64, qint64);
+ QRect rect() const;
+ int width() const;
+ int height() const;
+ inline operator const QPixmap &() const;
-protected:
- bool event(QEvent *event);
+ void load(QDeclarativeEngine *, const QUrl &);
+ void load(QDeclarativeEngine *, const QUrl &, bool);
+ void load(QDeclarativeEngine *, const QUrl &, const QSize &);
+ void load(QDeclarativeEngine *, const QUrl &, const QSize &, bool);
-private:
- void addRef();
- bool release(bool defer=false);
- bool isLoading() const;
- void setLoading();
+ void clear();
+ void clear(QObject *);
+
+ bool connectFinished(QObject *, const char *);
+ bool connectFinished(QObject *, int);
+ bool connectDownloadProgress(QObject *, const char *);
+ bool connectDownloadProgress(QObject *, int);
private:
- QDeclarativePixmapReply(QDeclarativeImageReader *reader, const QUrl &url, int req_width, int req_height);
- Q_DISABLE_COPY(QDeclarativePixmapReply)
- Q_DECLARE_PRIVATE(QDeclarativePixmapReply)
- friend class QDeclarativeImageRequestHandler;
- friend class QDeclarativeImageReader;
- friend class QDeclarativePixmapCache;
+ Q_DISABLE_COPY(QDeclarativePixmap);
+ QDeclarativePixmapData *d;
};
-class Q_DECLARATIVE_EXPORT QDeclarativePixmapCache
+inline QDeclarativePixmap::operator const QPixmap &() const
{
- Q_DECLARE_TR_FUNCTIONS(QDeclarativePixmapCache)
-public:
- static QDeclarativePixmapReply::Status get(const QUrl& url, QPixmap *pixmap, QString *errorString, QSize *impsize=0, bool async=false, int req_width=0, int req_height=0);
- static QDeclarativePixmapReply *request(QDeclarativeEngine *, const QUrl& url, int req_width=0, int req_height=0);
- static void cancel(const QUrl& url, QObject *obj);
- static int pendingRequests();
-};
-
-
+ return pixmap();
+}
QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativesmoothedanimation.cpp b/src/declarative/util/qdeclarativesmoothedanimation.cpp
index 6b6df4d..5d47c30 100644
--- a/src/declarative/util/qdeclarativesmoothedanimation.cpp
+++ b/src/declarative/util/qdeclarativesmoothedanimation.cpp
@@ -307,7 +307,7 @@ Rectangle {
set to a value such as 0.5 units/second. Animating from 0 to 1.0 with a velocity
of 0.5 will take 2000 ms to complete.
- \sa SpringFollow, {QML Animation}, {declarative/animation/basics}{Animation basics example}
+ \sa {QML Animation}, {declarative/animation/basics}{Animation basics example}
*/
QDeclarativeSmoothedAnimation::QDeclarativeSmoothedAnimation(QObject *parent)
diff --git a/src/declarative/util/qdeclarativesmoothedfollow.cpp b/src/declarative/util/qdeclarativesmoothedfollow.cpp
deleted file mode 100644
index f70df9d..0000000
--- a/src/declarative/util/qdeclarativesmoothedfollow.cpp
+++ /dev/null
@@ -1,299 +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 "qdeclarativesmoothedfollow_p.h"
-#include "qdeclarativesmoothedanimation_p_p.h"
-
-#include <private/qobject_p.h>
-#include <QtCore/qnumeric.h>
-
-#include "qdeclarativeglobal_p.h"
-
-
-QT_BEGIN_NAMESPACE
-
-class QDeclarativeSmoothedFollowPrivate : public QObjectPrivate
-{
- Q_DECLARE_PUBLIC(QDeclarativeSmoothedFollow)
-public:
- QDeclarativeSmoothedFollowPrivate();
-
- bool enabled;
- QSmoothedAnimation *anim;
-};
-
-/*!
- \qmlclass SmoothedFollow QDeclarativeSmoothedFollow
- \since 4.7
- \inherits NumberAnimation
- \brief The SmoothedFollow element allows a property to smoothly track a value.
-
- The SmoothedFollow animates a property's value to a set target value
- using an ease in/out quad easing curve. If the animation is restarted
- with a different target value, the easing curves used to animate to the old
- and the new target values are smoothly spliced together to avoid any obvious
- visual glitches by maintaining the current velocity.
-
- The property animation is configured by setting the velocity at which the
- animation should occur, or the duration that the animation should take.
- If both a velocity and a duration are specified, the one that results in
- the quickest animation is chosen for each change in the target value.
-
- For example, animating from 0 to 800 will take 4 seconds if a velocity
- of 200 is set, will take 8 seconds with a duration of 8000 set, and will
- take 4 seconds with both a velocity of 200 and a duration of 8000 set.
- Animating from 0 to 20000 will take 10 seconds if a velocity of 200 is set,
- will take 8 seconds with a duration of 8000 set, and will take 8 seconds
- with both a velocity of 200 and a duration of 8000 set.
-
- The follow example shows one rectangle tracking the position of another.
-\code
-import Qt 4.7
-
-Rectangle {
- width: 800; height: 600; color: "blue"
-
- Rectangle {
- color: "green"
- width: 60; height: 60;
- SmoothedFollow on x { to: rect1.x - 5; velocity: 200 }
- SmoothedFollow on y { to: rect1.y - 5; velocity: 200 }
- }
-
- Rectangle {
- id: rect1
- color: "red"
- width: 50; height: 50;
- }
-
- focus: true
- Keys.onRightPressed: rect1.x = rect1.x + 100
- Keys.onLeftPressed: rect1.x = rect1.x - 100
- Keys.onUpPressed: rect1.y = rect1.y - 100
- Keys.onDownPressed: rect1.y = rect1.y + 100
-}
-\endcode
-
- The default velocity of SmoothedFollow is 200 units/second. Note that if the range of the
- value being animated is small, then the velocity will need to be adjusted
- appropriately. For example, the opacity of an item ranges from 0 - 1.0.
- To enable a smooth animation in this range the velocity will need to be
- set to a value such as 0.5 units/second. Animating from 0 to 1.0 with a velocity
- of 0.5 will take 2000 ms to complete.
-
- \sa SpringFollow
-*/
-
-QDeclarativeSmoothedFollow::QDeclarativeSmoothedFollow(QObject *parent)
- : QObject(*(new QDeclarativeSmoothedFollowPrivate), parent)
-{
-}
-
-QDeclarativeSmoothedFollow::~QDeclarativeSmoothedFollow()
-{
-}
-
-QDeclarativeSmoothedFollowPrivate::QDeclarativeSmoothedFollowPrivate()
- : enabled(true), anim(new QSmoothedAnimation)
-{
- Q_Q(QDeclarativeSmoothedFollow);
- QDeclarative_setParent_noEvent(anim, q);
-}
-
-/*!
- \qmlproperty enumeration SmoothedFollow::reversingMode
-
- Sets how the SmoothedFollow behaves if an animation direction is reversed.
-
- If reversing mode is \c SmoothedFollow.Eased, the animation will smoothly decelerate, and
- then reverse direction. If the reversing mode is \c SmoothedFollow.Immediate, the
- animation will immediately begin accelerating in the reverse direction,
- begining with a velocity of 0. If the reversing mode is \c SmoothedFollow.Sync, the
- property is immediately set to the target value.
-*/
-QDeclarativeSmoothedFollow::ReversingMode QDeclarativeSmoothedFollow::reversingMode() const
-{
- Q_D(const QDeclarativeSmoothedFollow);
- return (ReversingMode) d->anim->reversingMode;
-}
-
-void QDeclarativeSmoothedFollow::setReversingMode(ReversingMode m)
-{
- Q_D(QDeclarativeSmoothedFollow);
- if (d->anim->reversingMode == (QDeclarativeSmoothedAnimation::ReversingMode) m)
- return;
-
- d->anim->reversingMode = (QDeclarativeSmoothedAnimation::ReversingMode) m;
- emit reversingModeChanged();
-}
-
-/*!
- \qmlproperty int SmoothedFollow::duration
-
- This property holds the animation duration, in msecs, used when tracking the source.
-
- Setting this to -1 (the default) disables the duration value.
-*/
-int QDeclarativeSmoothedFollow::duration() const
-{
- Q_D(const QDeclarativeSmoothedFollow);
- return d->anim->userDuration;
-}
-
-void QDeclarativeSmoothedFollow::setDuration(int duration)
-{
- Q_D(QDeclarativeSmoothedFollow);
- if (duration == d->anim->duration())
- return;
-
- d->anim->userDuration = duration;
- emit durationChanged();
-}
-
-qreal QDeclarativeSmoothedFollow::velocity() const
-{
- Q_D(const QDeclarativeSmoothedFollow);
- return d->anim->velocity;
-}
-
-/*!
- \qmlproperty real SmoothedFollow::velocity
-
- This property holds the average velocity allowed when tracking the 'to' value.
-
- The default velocity of SmoothedFollow is 200 units/second.
-
- Setting this to -1 disables the velocity value.
-*/
-void QDeclarativeSmoothedFollow::setVelocity(qreal v)
-{
- Q_D(QDeclarativeSmoothedFollow);
- if (d->anim->velocity == v)
- return;
-
- d->anim->velocity = v;
- emit velocityChanged();
-}
-
-/*!
- \qmlproperty int SmoothedFollow::maximumEasingTime
-
- This property specifies the maximum time, in msecs, an "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.
-
- The default value is -1.
-*/
-int QDeclarativeSmoothedFollow::maximumEasingTime() const
-{
- Q_D(const QDeclarativeSmoothedFollow);
- return d->anim->maximumEasingTime;
-}
-
-void QDeclarativeSmoothedFollow::setMaximumEasingTime(int v)
-{
- Q_D(QDeclarativeSmoothedFollow);
- d->anim->maximumEasingTime = v;
- emit maximumEasingTimeChanged();
-}
-
-/*!
- \qmlproperty real SmoothedFollow::to
- This property holds the ending value.
- If not set, then the value defined in the end state of the transition or Behavior.
-*/
-qreal QDeclarativeSmoothedFollow::to() const
-{
- Q_D(const QDeclarativeSmoothedFollow);
- return d->anim->to;
-}
-
-void QDeclarativeSmoothedFollow::setTo(qreal t)
-{
- Q_D(QDeclarativeSmoothedFollow);
-
- if (qIsNaN(t))
- return;
-
- if (d->anim->to == t)
- return;
-
- d->anim->to = t;
-
- if (d->enabled)
- d->anim->restart();
-}
-
-/*!
- \qmlproperty bool SmoothedFollow::enabled
- This property whether this animation should automatically restart when
- the 'to' property is upated.
-
- The default value of this property is 'true'.
-*/
-bool QDeclarativeSmoothedFollow::enabled() const
-{
- Q_D(const QDeclarativeSmoothedFollow);
- return d->enabled;
-}
-
-void QDeclarativeSmoothedFollow::setEnabled(bool e)
-{
- Q_D(QDeclarativeSmoothedFollow);
- if (d->enabled == e)
- return;
- d->enabled = e;
-
- if (d->enabled)
- d->anim->restart();
- else
- d->anim->stop();
- emit enabledChanged();
-}
-
-void QDeclarativeSmoothedFollow::setTarget(const QDeclarativeProperty &t)
-{
- Q_D(QDeclarativeSmoothedFollow);
- d->anim->target = t;
-}
-
-QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativesmoothedfollow_p.h b/src/declarative/util/qdeclarativesmoothedfollow_p.h
deleted file mode 100644
index f852311..0000000
--- a/src/declarative/util/qdeclarativesmoothedfollow_p.h
+++ /dev/null
@@ -1,113 +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 QDECLARATIVESMOOTHEDFOLLOW_H
-#define QDECLARATIVESMOOTHEDFOLLOW_H
-
-#include <qdeclarative.h>
-#include <qdeclarativepropertyvaluesource.h>
-
-#include <QtCore/qobject.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Declarative)
-
-class QDeclarativeProperty;
-class QDeclarativeSmoothedFollowPrivate;
-class Q_AUTOTEST_EXPORT QDeclarativeSmoothedFollow : public QObject,
- public QDeclarativePropertyValueSource
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QDeclarativeSmoothedFollow)
- Q_INTERFACES(QDeclarativePropertyValueSource)
- Q_ENUMS(ReversingMode)
-
- Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged)
- Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity NOTIFY velocityChanged)
- Q_PROPERTY(int duration READ duration WRITE setDuration NOTIFY durationChanged)
- Q_PROPERTY(ReversingMode reversingMode READ reversingMode WRITE setReversingMode NOTIFY reversingModeChanged)
- Q_PROPERTY(qreal maximumEasingTime READ maximumEasingTime WRITE setMaximumEasingTime NOTIFY maximumEasingTimeChanged)
- Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
-
-public:
- enum ReversingMode { Eased, Immediate, Sync };
-
- QDeclarativeSmoothedFollow(QObject *parent = 0);
- ~QDeclarativeSmoothedFollow();
-
- qreal to() const;
- void setTo(qreal);
-
- ReversingMode reversingMode() const;
- void setReversingMode(ReversingMode);
-
- int duration() const;
- void setDuration(int);
-
- qreal velocity() const;
- void setVelocity(qreal);
-
- int maximumEasingTime() const;
- void setMaximumEasingTime(int);
-
- bool enabled() const;
- void setEnabled(bool);
-
- virtual void setTarget(const QDeclarativeProperty &);
-
-Q_SIGNALS:
- void velocityChanged();
- void durationChanged();
- void reversingModeChanged();
- void maximumEasingTimeChanged();
- void enabledChanged();
-};
-
-QT_END_NAMESPACE
-
-QML_DECLARE_TYPE(QDeclarativeSmoothedFollow)
-
-QT_END_HEADER
-
-#endif // QDECLARATIVESMOOTHEDFOLLOW_H
diff --git a/src/declarative/util/qdeclarativespringfollow.cpp b/src/declarative/util/qdeclarativespringanimation.cpp
index aae66ac..4cf2fc0 100644
--- a/src/declarative/util/qdeclarativespringfollow.cpp
+++ b/src/declarative/util/qdeclarativespringanimation.cpp
@@ -39,9 +39,10 @@
**
****************************************************************************/
-#include "private/qdeclarativespringfollow_p.h"
+#include "private/qdeclarativespringanimation_p.h"
#include "private/qdeclarativeanimation_p_p.h"
+#include <qdeclarativeproperty_p.h>
#include <QtCore/qdebug.h>
@@ -54,18 +55,20 @@ QT_BEGIN_NAMESPACE
-class QDeclarativeSpringFollowPrivate : public QObjectPrivate
+class QDeclarativeSpringAnimationPrivate : public QDeclarativeAbstractAnimationPrivate
{
- Q_DECLARE_PUBLIC(QDeclarativeSpringFollow)
+ Q_DECLARE_PUBLIC(QDeclarativeSpringAnimation)
public:
- QDeclarativeSpringFollowPrivate()
- : currentValue(0), to(0), maxVelocity(0), lastTime(0)
+ QDeclarativeSpringAnimationPrivate()
+ : currentValue(0), to(0), from(0), maxVelocity(0), lastTime(0)
, mass(1.0), spring(0.), damping(0.), velocity(0), epsilon(0.01)
- , modulus(0.0), useMass(false), haveModulus(false), enabled(true), mode(Track), clock(this) {}
+ , modulus(0.0), useMass(false), haveModulus(false), enabled(true)
+ , fromDefined(false), toDefined(false)
+ , mode(Track), clock(this) {}
- QDeclarativeProperty property;
qreal currentValue;
qreal to;
+ qreal from;
qreal maxVelocity;
qreal velocityms;
int lastTime;
@@ -79,6 +82,8 @@ public:
bool useMass : 1;
bool haveModulus : 1;
bool enabled : 1;
+ bool fromDefined : 1;
+ bool toDefined : 1;
enum Mode {
Track,
@@ -89,20 +94,24 @@ public:
void tick(int);
void updateMode();
- void start();
- void stop();
- QTickAnimationProxy<QDeclarativeSpringFollowPrivate, &QDeclarativeSpringFollowPrivate::tick> clock;
+ QTickAnimationProxy<QDeclarativeSpringAnimationPrivate, &QDeclarativeSpringAnimationPrivate::tick> clock;
};
-void QDeclarativeSpringFollowPrivate::tick(int time)
+void QDeclarativeSpringAnimationPrivate::tick(int time)
{
- Q_Q(QDeclarativeSpringFollow);
+ if (mode == Track) {
+ clock.stop();
+ return;
+ }
int elapsed = time - lastTime;
if (!elapsed)
return;
qreal srcVal = to;
+
+ bool stop = false;
+
if (haveModulus) {
currentValue = fmod(currentValue, modulus);
srcVal = fmod(srcVal, modulus);
@@ -142,7 +151,7 @@ void QDeclarativeSpringFollowPrivate::tick(int time)
if (qAbs(velocity) < epsilon && qAbs(srcVal - currentValue) < epsilon) {
velocity = 0.0;
currentValue = srcVal;
- clock.stop();
+ stop = true;
}
lastTime = time - (elapsed - count * 16);
} else {
@@ -160,7 +169,7 @@ void QDeclarativeSpringFollowPrivate::tick(int time)
currentValue = fmod(currentValue, modulus);
if (currentValue > to) {
currentValue = to;
- clock.stop();
+ stop = true;
}
} else {
currentValue -= moveBy;
@@ -168,18 +177,23 @@ void QDeclarativeSpringFollowPrivate::tick(int time)
currentValue = fmod(currentValue, modulus) + modulus;
if (currentValue < to) {
currentValue = to;
- clock.stop();
+ stop = true;
}
}
lastTime = time;
}
- property.write(currentValue);
- emit q->valueChanged(currentValue);
- if (clock.state() != QAbstractAnimation::Running)
- emit q->syncChanged();
+
+ qreal old_to = to;
+
+ QDeclarativePropertyPrivate::write(defaultProperty, currentValue,
+ QDeclarativePropertyPrivate::BypassInterceptor |
+ QDeclarativePropertyPrivate::DontRemoveBinding);
+
+ if (stop && old_to == to) // do not stop if we got restarted
+ clock.stop();
}
-void QDeclarativeSpringFollowPrivate::updateMode()
+void QDeclarativeSpringAnimationPrivate::updateMode()
{
if (spring == 0. && maxVelocity == 0.)
mode = Track;
@@ -189,121 +203,105 @@ void QDeclarativeSpringFollowPrivate::updateMode()
mode = Velocity;
}
-void QDeclarativeSpringFollowPrivate::start()
-{
- if (!enabled)
- return;
+/*!
+ \qmlclass SpringAnimation QDeclarativeSpringAnimation
+ \since 4.7
- Q_Q(QDeclarativeSpringFollow);
- if (mode == QDeclarativeSpringFollowPrivate::Track) {
- currentValue = to;
- property.write(currentValue);
- } else if (to != currentValue && clock.state() != QAbstractAnimation::Running) {
- lastTime = 0;
- currentValue = property.read().toReal();
- clock.start(); // infinity??
- emit q->syncChanged();
- }
-}
+ \brief The SpringAnimation element allows a property to track a value in a spring-like motion
+
+ SpringAnimation mimics the oscillatory behavior of a spring, with the appropriate \l spring constant to
+ control the acceleration and the \l damping to control how quickly the effect dies away.
+
+ You can also limit the maximum \l velocity of the animation.
-void QDeclarativeSpringFollowPrivate::stop()
-{
- clock.stop();
-}
-/*!
- \qmlclass SpringFollow QDeclarativeSpringFollow
- \since 4.7
- \brief The SpringFollow element allows a property to track a value.
-
- In example below, \e rect2 will follow \e rect1 moving with a velocity of up to 200:
- \code
- Rectangle {
- id: rect1
- width: 20; height: 20
- color: "#00ff00"
- y: 200 // initial value
- SequentialAnimation on y {
- loops: Animation.Infinite
- NumberAnimation {
- to: 200
- easing.type: Easing.OutBounce
- easing.amplitude: 100
- duration: 2000
- }
- PauseAnimation { duration: 1000 }
- }
- }
- Rectangle {
- id: rect2
- x: rect1.width
- width: 20; height: 20
- color: "#ff0000"
- SpringFollow on y { to: rect1.y; velocity: 200 }
- }
- \endcode
*/
-QDeclarativeSpringFollow::QDeclarativeSpringFollow(QObject *parent)
-: QObject(*(new QDeclarativeSpringFollowPrivate),parent)
+QDeclarativeSpringAnimation::QDeclarativeSpringAnimation(QObject *parent)
+: QDeclarativeAbstractAnimation(*(new QDeclarativeSpringAnimationPrivate),parent)
{
}
-QDeclarativeSpringFollow::~QDeclarativeSpringFollow()
+QDeclarativeSpringAnimation::~QDeclarativeSpringAnimation()
{
}
-void QDeclarativeSpringFollow::setTarget(const QDeclarativeProperty &property)
+void QDeclarativeSpringAnimation::setTarget(const QDeclarativeProperty &property)
{
- Q_D(QDeclarativeSpringFollow);
- d->property = property;
+ Q_D(QDeclarativeSpringAnimation);
+ d->defaultProperty = property;
d->currentValue = property.read().toReal();
+ if (!d->avoidPropertyValueSourceStart) {
+ setRunning(true);
+ }
}
-qreal QDeclarativeSpringFollow::to() const
+qreal QDeclarativeSpringAnimation::to() const
{
- Q_D(const QDeclarativeSpringFollow);
- return d->to;
+ Q_D(const QDeclarativeSpringAnimation);
+ return d->toDefined ? d->to : 0;
}
/*!
- \qmlproperty real SpringFollow::to
- This property holds the target value which will be tracked.
-
- Bind to a property in order to track its changes.
+ \qmlproperty real SpringAnimation::to
*/
-void QDeclarativeSpringFollow::setTo(qreal value)
+void QDeclarativeSpringAnimation::setTo(qreal value)
{
- Q_D(QDeclarativeSpringFollow);
- if (d->clock.state() == QAbstractAnimation::Running && d->to == value)
+ Q_D(QDeclarativeSpringAnimation);
+ if (d->to == value)
return;
d->to = value;
- d->start();
+ d->toDefined = true;
+ d->lastTime = 0;
+ emit toChanged(value);
+}
+
+qreal QDeclarativeSpringAnimation::from() const
+{
+ Q_D(const QDeclarativeSpringAnimation);
+ return d->fromDefined ? d->from : 0;
}
/*!
- \qmlproperty real SpringFollow::velocity
+ \qmlproperty real SpringAnimation::from
+*/
+
+void QDeclarativeSpringAnimation::setFrom(qreal value)
+{
+ Q_D(QDeclarativeSpringAnimation);
+ if (d->from == value)
+ return;
+
+ d->currentValue = d->from = value;
+ d->fromDefined = true;
+ d->lastTime = 0;
+ emit fromChanged(value);
+}
+
+
+/*!
+ \qmlproperty real SpringAnimation::velocity
This property holds the maximum velocity allowed when tracking the source.
*/
-qreal QDeclarativeSpringFollow::velocity() const
+qreal QDeclarativeSpringAnimation::velocity() const
{
- Q_D(const QDeclarativeSpringFollow);
+ Q_D(const QDeclarativeSpringAnimation);
return d->maxVelocity;
}
-void QDeclarativeSpringFollow::setVelocity(qreal velocity)
+void QDeclarativeSpringAnimation::setVelocity(qreal velocity)
{
- Q_D(QDeclarativeSpringFollow);
+ Q_D(QDeclarativeSpringAnimation);
d->maxVelocity = velocity;
d->velocityms = velocity / 1000.0;
d->updateMode();
}
/*!
- \qmlproperty real SpringFollow::spring
+ \qmlproperty real SpringAnimation::spring
This property holds the spring constant
The spring constant describes how strongly the target is pulled towards the
@@ -312,35 +310,35 @@ void QDeclarativeSpringFollow::setVelocity(qreal velocity)
When a spring constant is set and the velocity property is greater than 0,
velocity limits the maximum speed.
*/
-qreal QDeclarativeSpringFollow::spring() const
+qreal QDeclarativeSpringAnimation::spring() const
{
- Q_D(const QDeclarativeSpringFollow);
+ Q_D(const QDeclarativeSpringAnimation);
return d->spring;
}
-void QDeclarativeSpringFollow::setSpring(qreal spring)
+void QDeclarativeSpringAnimation::setSpring(qreal spring)
{
- Q_D(QDeclarativeSpringFollow);
+ Q_D(QDeclarativeSpringAnimation);
d->spring = spring;
d->updateMode();
}
/*!
- \qmlproperty real SpringFollow::damping
+ \qmlproperty real SpringAnimation::damping
This property holds the spring damping constant
The damping constant describes how quickly a sprung follower comes to rest.
Useful range is 0 - 1.0
*/
-qreal QDeclarativeSpringFollow::damping() const
+qreal QDeclarativeSpringAnimation::damping() const
{
- Q_D(const QDeclarativeSpringFollow);
+ Q_D(const QDeclarativeSpringAnimation);
return d->damping;
}
-void QDeclarativeSpringFollow::setDamping(qreal damping)
+void QDeclarativeSpringAnimation::setDamping(qreal damping)
{
- Q_D(QDeclarativeSpringFollow);
+ Q_D(QDeclarativeSpringAnimation);
if (damping > 1.)
damping = 1.;
@@ -349,7 +347,7 @@ void QDeclarativeSpringFollow::setDamping(qreal damping)
/*!
- \qmlproperty real SpringFollow::epsilon
+ \qmlproperty real SpringAnimation::epsilon
This property holds the spring epsilon
The epsilon is the rate and amount of change in the value which is close enough
@@ -358,34 +356,34 @@ void QDeclarativeSpringFollow::setDamping(qreal damping)
The default is 0.01. Tuning this value can provide small performance improvements.
*/
-qreal QDeclarativeSpringFollow::epsilon() const
+qreal QDeclarativeSpringAnimation::epsilon() const
{
- Q_D(const QDeclarativeSpringFollow);
+ Q_D(const QDeclarativeSpringAnimation);
return d->epsilon;
}
-void QDeclarativeSpringFollow::setEpsilon(qreal epsilon)
+void QDeclarativeSpringAnimation::setEpsilon(qreal epsilon)
{
- Q_D(QDeclarativeSpringFollow);
+ Q_D(QDeclarativeSpringAnimation);
d->epsilon = epsilon;
}
/*!
- \qmlproperty real SpringFollow::modulus
+ \qmlproperty real SpringAnimation::modulus
This property holds the modulus value.
Setting a \a modulus forces the target value to "wrap around" at the modulus.
For example, setting the modulus to 360 will cause a value of 370 to wrap around to 10.
*/
-qreal QDeclarativeSpringFollow::modulus() const
+qreal QDeclarativeSpringAnimation::modulus() const
{
- Q_D(const QDeclarativeSpringFollow);
+ Q_D(const QDeclarativeSpringAnimation);
return d->modulus;
}
-void QDeclarativeSpringFollow::setModulus(qreal modulus)
+void QDeclarativeSpringAnimation::setModulus(qreal modulus)
{
- Q_D(QDeclarativeSpringFollow);
+ Q_D(QDeclarativeSpringAnimation);
if (d->modulus != modulus) {
d->haveModulus = modulus != 0.0;
d->modulus = modulus;
@@ -394,21 +392,21 @@ void QDeclarativeSpringFollow::setModulus(qreal modulus)
}
/*!
- \qmlproperty real SpringFollow::mass
+ \qmlproperty real SpringAnimation::mass
This property holds the "mass" of the property being moved.
mass is 1.0 by default. Setting a different mass changes the dynamics of
a \l spring follow.
*/
-qreal QDeclarativeSpringFollow::mass() const
+qreal QDeclarativeSpringAnimation::mass() const
{
- Q_D(const QDeclarativeSpringFollow);
+ Q_D(const QDeclarativeSpringAnimation);
return d->mass;
}
-void QDeclarativeSpringFollow::setMass(qreal mass)
+void QDeclarativeSpringAnimation::setMass(qreal mass)
{
- Q_D(QDeclarativeSpringFollow);
+ Q_D(QDeclarativeSpringAnimation);
if (d->mass != mass && mass > 0.0) {
d->useMass = mass != 1.0;
d->mass = mass;
@@ -416,49 +414,33 @@ void QDeclarativeSpringFollow::setMass(qreal mass)
}
}
-/*!
- \qmlproperty bool SpringFollow::enabled
- This property holds whether the target will track the source.
-
- The default value of this property is 'true'.
-*/
-bool QDeclarativeSpringFollow::enabled() const
-{
- Q_D(const QDeclarativeSpringFollow);
- return d->enabled;
-}
-
-void QDeclarativeSpringFollow::setEnabled(bool enabled)
+void QDeclarativeSpringAnimation::transition(QDeclarativeStateActions &actions,
+ QDeclarativeProperties &modified,
+ TransitionDirection direction)
{
- Q_D(QDeclarativeSpringFollow);
- d->enabled = enabled;
- if (enabled)
- d->start();
- else
- d->stop();
+ Q_D(QDeclarativeSpringAnimation);
+ Q_UNUSED(direction);
+
+ if (d->clock.state() != QAbstractAnimation::Running)
+ d->lastTime = 0;
+
+ if (!actions.isEmpty()) {
+ for (int i = 0; i < actions.size(); ++i) {
+ if (!d->toDefined)
+ d->to = actions.at(i).toValue.toReal();
+ if (!d->fromDefined)
+ d->currentValue = actions.at(i).fromValue.toReal();
+ if (d->mode != QDeclarativeSpringAnimationPrivate::Track)
+ modified << d->defaultProperty;
+ }
+ }
}
-/*!
- \qmlproperty bool SpringFollow::inSync
- This property is true when target is equal to the source; otherwise
- false. If inSync is true the target is not being animated.
- If \l enabled is false then inSync will also be false.
-*/
-bool QDeclarativeSpringFollow::inSync() const
-{
- Q_D(const QDeclarativeSpringFollow);
- return d->enabled && d->clock.state() != QAbstractAnimation::Running;
-}
-
-/*!
- \qmlproperty real SpringFollow::value
- The current value.
-*/
-qreal QDeclarativeSpringFollow::value() const
+QAbstractAnimation *QDeclarativeSpringAnimation::qtAnimation()
{
- Q_D(const QDeclarativeSpringFollow);
- return d->currentValue;
+ Q_D(QDeclarativeSpringAnimation);
+ return &d->clock;
}
QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativespringfollow_p.h b/src/declarative/util/qdeclarativespringanimation_p.h
index b6277c3..6f574ef 100644
--- a/src/declarative/util/qdeclarativespringfollow_p.h
+++ b/src/declarative/util/qdeclarativespringanimation_p.h
@@ -39,11 +39,13 @@
**
****************************************************************************/
-#ifndef QDECLARATIVESMOOTHFOLLOW_H
-#define QDECLARATIVESMOOTHFOLLOW_H
+#ifndef QDECLARATIVESPRINGANIMATION_H
+#define QDECLARATIVESPRINGANIMATION_H
-#include <qdeclarativepropertyvaluesource.h>
#include <qdeclarative.h>
+#include "private/qdeclarativeanimation_p.h"
+
+#include <QtCore/qobject.h>
QT_BEGIN_HEADER
@@ -51,34 +53,34 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Declarative)
-class QDeclarativeSpringFollowPrivate;
-class Q_AUTOTEST_EXPORT QDeclarativeSpringFollow : public QObject,
- public QDeclarativePropertyValueSource
+class QDeclarativeSpringAnimationPrivate;
+class Q_AUTOTEST_EXPORT QDeclarativeSpringAnimation : public QDeclarativeAbstractAnimation
{
Q_OBJECT
- Q_DECLARE_PRIVATE(QDeclarativeSpringFollow)
+ Q_DECLARE_PRIVATE(QDeclarativeSpringAnimation)
Q_INTERFACES(QDeclarativePropertyValueSource)
- Q_PROPERTY(qreal to READ to WRITE setTo)
+ Q_PROPERTY(qreal to READ to WRITE setTo NOTIFY toChanged)
+ Q_PROPERTY(qreal from READ from WRITE setFrom NOTIFY fromChanged)
Q_PROPERTY(qreal velocity READ velocity WRITE setVelocity)
Q_PROPERTY(qreal spring READ spring WRITE setSpring)
Q_PROPERTY(qreal damping READ damping WRITE setDamping)
Q_PROPERTY(qreal epsilon READ epsilon WRITE setEpsilon)
- Q_PROPERTY(bool enabled READ enabled WRITE setEnabled)
- Q_PROPERTY(qreal value READ value NOTIFY valueChanged)
Q_PROPERTY(qreal modulus READ modulus WRITE setModulus NOTIFY modulusChanged)
Q_PROPERTY(qreal mass READ mass WRITE setMass NOTIFY massChanged)
- Q_PROPERTY(bool inSync READ inSync NOTIFY syncChanged)
public:
- QDeclarativeSpringFollow(QObject *parent=0);
- ~QDeclarativeSpringFollow();
+ QDeclarativeSpringAnimation(QObject *parent=0);
+ ~QDeclarativeSpringAnimation();
virtual void setTarget(const QDeclarativeProperty &);
qreal to() const;
void setTo(qreal value);
+ qreal from() const;
+ void setFrom(qreal value);
+
qreal velocity() const;
void setVelocity(qreal velocity);
@@ -100,12 +102,16 @@ public:
bool enabled() const;
void setEnabled(bool enabled);
- bool inSync() const;
+ virtual void transition(QDeclarativeStateActions &actions,
+ QDeclarativeProperties &modified,
+ TransitionDirection direction);
- qreal value() const;
+protected:
+ virtual QAbstractAnimation *qtAnimation();
Q_SIGNALS:
- void valueChanged(qreal);
+ void toChanged(qreal);
+ void fromChanged(qreal);
void modulusChanged();
void massChanged();
void syncChanged();
@@ -113,8 +119,8 @@ Q_SIGNALS:
QT_END_NAMESPACE
-QML_DECLARE_TYPE(QDeclarativeSpringFollow)
+QML_DECLARE_TYPE(QDeclarativeSpringAnimation)
QT_END_HEADER
-#endif // QDECLARATIVESMOOTHFOLLOW_H
+#endif // QDECLARATIVESPRINGANIMATION_H
diff --git a/src/declarative/util/qdeclarativestateoperations.cpp b/src/declarative/util/qdeclarativestateoperations.cpp
index 51e6f99..5590449 100644
--- a/src/declarative/util/qdeclarativestateoperations.cpp
+++ b/src/declarative/util/qdeclarativestateoperations.cpp
@@ -1039,7 +1039,7 @@ public:
/*!
\qmlproperty Item AnchorChanges::target
- This property holds the Item whose anchors will change
+ This property holds the \l Item for which the anchor changes will be applied.
*/
QDeclarativeAnchorChanges::QDeclarativeAnchorChanges(QObject *parent)
diff --git a/src/declarative/util/qdeclarativestyledtext.cpp b/src/declarative/util/qdeclarativestyledtext.cpp
index babd71b..91566bc 100644
--- a/src/declarative/util/qdeclarativestyledtext.cpp
+++ b/src/declarative/util/qdeclarativestyledtext.cpp
@@ -152,8 +152,6 @@ void QDeclarativeStyledTextPrivate::parse()
QTextCharFormat format;
if (formatStack.count())
format = formatStack.top();
- else
- format.setFont(baseFont);
if (parseTag(ch, text, drawText, format))
formatStack.push(format);
}
@@ -198,8 +196,10 @@ bool QDeclarativeStyledTextPrivate::parseTag(const QChar *&ch, const QString &te
if (char0 == QLatin1Char('b')) {
if (tagLength == 1)
format.setFontWeight(QFont::Bold);
- else if (tagLength == 2 && tag.at(1) == QLatin1Char('r'))
+ else if (tagLength == 2 && tag.at(1) == QLatin1Char('r')) {
textOut.append(QChar(QChar::LineSeparator));
+ return false;
+ }
} else if (char0 == QLatin1Char('i')) {
if (tagLength == 1)
format.setFontItalic(true);
diff --git a/src/declarative/util/qdeclarativeutilmodule.cpp b/src/declarative/util/qdeclarativeutilmodule.cpp
index 3cf07a7..c5bfebd 100644
--- a/src/declarative/util/qdeclarativeutilmodule.cpp
+++ b/src/declarative/util/qdeclarativeutilmodule.cpp
@@ -46,7 +46,6 @@
#include "private/qdeclarativebind_p.h"
#include "private/qdeclarativeconnections_p.h"
#include "private/qdeclarativesmoothedanimation_p.h"
-#include "private/qdeclarativesmoothedfollow_p.h"
#include "private/qdeclarativefontloader_p.h"
#include "private/qdeclarativelistaccessor_p.h"
#include "private/qdeclarativelistmodel_p.h"
@@ -56,7 +55,7 @@
#include "private/qdeclarativepixmapcache_p.h"
#include "private/qdeclarativepropertychanges_p.h"
#include "qdeclarativepropertymap.h"
-#include "private/qdeclarativespringfollow_p.h"
+#include "private/qdeclarativespringanimation_p.h"
#include "private/qdeclarativestategroup_p.h"
#include "private/qdeclarativestateoperations_p.h"
#include "private/qdeclarativestate_p.h"
@@ -83,7 +82,6 @@ void QDeclarativeUtilModule::defineModule()
qmlRegisterType<QDeclarativeColorAnimation>("Qt",4,7,"ColorAnimation");
qmlRegisterType<QDeclarativeConnections>("Qt",4,7,"Connections");
qmlRegisterType<QDeclarativeSmoothedAnimation>("Qt",4,7,"SmoothedAnimation");
- qmlRegisterType<QDeclarativeSmoothedFollow>("Qt",4,7,"SmoothedFollow");
qmlRegisterType<QDeclarativeFontLoader>("Qt",4,7,"FontLoader");
qmlRegisterType<QDeclarativeListElement>("Qt",4,7,"ListElement");
qmlRegisterType<QDeclarativeNumberAnimation>("Qt",4,7,"NumberAnimation");
@@ -97,7 +95,7 @@ void QDeclarativeUtilModule::defineModule()
qmlRegisterType<QDeclarativeRotationAnimation>("Qt",4,7,"RotationAnimation");
qmlRegisterType<QDeclarativeScriptAction>("Qt",4,7,"ScriptAction");
qmlRegisterType<QDeclarativeSequentialAnimation>("Qt",4,7,"SequentialAnimation");
- qmlRegisterType<QDeclarativeSpringFollow>("Qt",4,7,"SpringFollow");
+ qmlRegisterType<QDeclarativeSpringAnimation>("Qt",4,7,"SpringAnimation");
qmlRegisterType<QDeclarativeStateChangeScript>("Qt",4,7,"StateChangeScript");
qmlRegisterType<QDeclarativeStateGroup>("Qt",4,7,"StateGroup");
qmlRegisterType<QDeclarativeState>("Qt",4,7,"State");
diff --git a/src/declarative/util/qdeclarativeview.cpp b/src/declarative/util/qdeclarativeview.cpp
index 0414e65..496f2ad 100644
--- a/src/declarative/util/qdeclarativeview.cpp
+++ b/src/declarative/util/qdeclarativeview.cpp
@@ -194,45 +194,46 @@ void QDeclarativeViewPrivate::itemGeometryChanged(QDeclarativeItem *resizeItem,
\since 4.7
\brief The QDeclarativeView class provides a widget for displaying a Qt Declarative user interface.
- Any QGraphicsObject or QDeclarativeItem
- created via QML can be placed on a standard QGraphicsScene and viewed with a standard
- QGraphicsView.
+ QDeclarativeItem objects can be placed on a standard QGraphicsScene and
+ displayed with QGraphicsView. QDeclarativeView is a QGraphicsView subclass
+ provided as a convenience for displaying QML files, and connecting between
+ QML and C++ Qt objects.
- QDeclarativeView is a QGraphicsView subclass provided as a convenience for displaying QML
- files, and connecting between QML and C++ Qt objects.
-
- QDeclarativeView performs the following functions:
+ QDeclarativeView provides:
\list
- \o Manages QDeclarativeComponent loading and object creation.
- \o Initializes QGraphicsView for optimal performance with QML:
+ \o Management of QDeclarativeComponent loading and object creation
+ \o Initialization of QGraphicsView for optimal performance with QML using these settings:
\list
- \o QGraphicsView::setOptimizationFlags(QGraphicsView::DontSavePainterState);
- \o QGraphicsView::setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
- \o QGraphicsScene::setItemIndexMethod(QGraphicsScene::NoIndex);
+ \o QGraphicsView::setOptimizationFlags(QGraphicsView::DontSavePainterState)
+ \o QGraphicsView::setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate)
+ \o QGraphicsScene::setItemIndexMethod(QGraphicsScene::NoIndex)
\endlist
- \o Initializes QGraphicsView for QML key handling:
+ \o Initialization of QGraphicsView for QML key handling using these settings:
\list
- \o QGraphicsView::viewport()->setFocusPolicy(Qt::NoFocus);
- \o QGraphicsView::setFocusPolicy(Qt::StrongFocus);
- \o QGraphicsScene::setStickyFocus(true);
+ \o QGraphicsView::viewport()->setFocusPolicy(Qt::NoFocus)
+ \o QGraphicsView::setFocusPolicy(Qt::StrongFocus)
+ \o QGraphicsScene::setStickyFocus(true)
\endlist
\endlist
Typical usage:
- \code
- ...
- QDeclarativeView *view = new QDeclarativeView(this);
- vbox->addWidget(view);
- QUrl url = QUrl::fromLocalFile(fileName);
- view->setSource(url);
+ \code
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile("myqmlfile.qml"));
view->show();
\endcode
+ Since QDeclarativeView is a QWidget-based class, it can be used to
+ display QML interfaces within QWidget-based GUI applications that do not
+ use the Graphics View framework.
+
To receive errors related to loading and executing QML with QDeclarativeView,
you can connect to the statusChanged() signal and monitor for QDeclarativeView::Error.
The errors are available via QDeclarativeView::errors().
+
+ \sa {Integrating QML with existing Qt UI code}, {Using QML in C++ Applications}
*/
@@ -611,7 +612,7 @@ void QDeclarativeView::timerEvent(QTimerEvent* e)
}
}
-/*! \reimp */
+/*! \internal */
bool QDeclarativeView::eventFilter(QObject *watched, QEvent *e)
{
Q_D(QDeclarativeView);
diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp
index 8ed34ab..9f4df22 100644
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp
@@ -508,8 +508,8 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty<QDecla
\since 4.7
\brief The XmlListModel element is used to specify a model using XPath expressions.
- XmlListModel is used to create a model from XML data. XmlListModel can be used as a data source
- for the view classes (such as ListView, PathView, GridView) and other classes that interact with model
+ XmlListModel is used to create a model from XML data. It can be used as a data source
+ for view elements (such as ListView, PathView, GridView) and other elements that interact with model
data (such as \l Repeater).
For example, if there is a XML document at http://www.mysite.com/feed.xml like this:
@@ -520,11 +520,11 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty<QDecla
...
<channel>
<item>
- <title>Item A</title>
+ <title>A blog post</title>
<pubDate>Sat, 07 Sep 2010 10:00:01 GMT</pubDate>
</item>
<item>
- <title>Item B</title>
+ <title>Another blog post</title>
<pubDate>Sat, 07 Sep 2010 15:35:01 GMT</pubDate>
</item>
</channel>
@@ -560,10 +560,17 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty<QDecla
ListView {
width: 180; height: 300
model: xmlModel
- delegate: Text { title + " (" + pubDate + ")" }
+ delegate: Text { text: title + " (" + pubDate + ")" }
}
\endqml
+ \image qml-xmllistmodel-example.png
+
+ The XmlListModel data is loaded asynchronously, and \l status
+ is set to \l XmlListModel::Ready when loading is complete.
+ Note this means when XmlListModel is used for a view, the view is not
+ populated until the model is loaded.
+
\section2 Using key XML roles
@@ -667,7 +674,7 @@ QString QDeclarativeXmlListModel::toString(int role) const
\qmlproperty url XmlListModel::source
The location of the XML data source.
- If both source and xml are set, xml will be used.
+ If both \c source and \l xml are set, \l xml is used.
*/
QUrl QDeclarativeXmlListModel::source() const
{
@@ -692,7 +699,7 @@ void QDeclarativeXmlListModel::setSource(const QUrl &src)
The text is assumed to be UTF-8 encoded.
- If both \l source and \c xml are set, \c xml will be used.
+ If both \l source and \c xml are set, \c xml is used.
*/
QString QDeclarativeXmlListModel::xml() const
{
diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri
index 04cfc68..fd57144 100644
--- a/src/declarative/util/util.pri
+++ b/src/declarative/util/util.pri
@@ -7,9 +7,8 @@ SOURCES += \
$$PWD/qdeclarativepackage.cpp \
$$PWD/qdeclarativeanimation.cpp \
$$PWD/qdeclarativesystempalette.cpp \
- $$PWD/qdeclarativespringfollow.cpp \
+ $$PWD/qdeclarativespringanimation.cpp \
$$PWD/qdeclarativesmoothedanimation.cpp \
- $$PWD/qdeclarativesmoothedfollow.cpp \
$$PWD/qdeclarativestate.cpp\
$$PWD/qdeclarativetransitionmanager.cpp \
$$PWD/qdeclarativestateoperations.cpp \
@@ -38,9 +37,8 @@ HEADERS += \
$$PWD/qdeclarativeanimation_p.h \
$$PWD/qdeclarativeanimation_p_p.h \
$$PWD/qdeclarativesystempalette_p.h \
- $$PWD/qdeclarativespringfollow_p.h \
+ $$PWD/qdeclarativespringanimation_p.h \
$$PWD/qdeclarativesmoothedanimation_p.h \
- $$PWD/qdeclarativesmoothedfollow_p.h \
$$PWD/qdeclarativesmoothedanimation_p_p.h \
$$PWD/qdeclarativestate_p.h\
$$PWD/qdeclarativestateoperations_p.h \
diff --git a/src/gui/dialogs/qwizard_win.cpp b/src/gui/dialogs/qwizard_win.cpp
index e406cba..ad8801a 100644
--- a/src/gui/dialogs/qwizard_win.cpp
+++ b/src/gui/dialogs/qwizard_win.cpp
@@ -180,7 +180,8 @@ QVistaBackButton::QVistaBackButton(QWidget *widget)
QSize QVistaBackButton::sizeHint() const
{
ensurePolished();
- int width = 32, height = 32;
+ int size = int(QStyleHelper::dpiScaled(32));
+ int width = size, height = size;
/*
HANDLE theme = pOpenThemeData(0, L"Navigation");
SIZE size;
@@ -213,8 +214,8 @@ void QVistaBackButton::paintEvent(QPaintEvent *)
HANDLE theme = pOpenThemeData(0, L"Navigation");
//RECT rect;
RECT clipRect;
- int xoffset = QWidget::mapToParent(r.topLeft()).x();
- int yoffset = QWidget::mapToParent(r.topLeft()).y();
+ int xoffset = QWidget::mapToParent(r.topLeft()).x() - 1;
+ int yoffset = QWidget::mapToParent(r.topLeft()).y() - 1;
clipRect.top = r.top() + yoffset;
clipRect.bottom = r.bottom() + yoffset;
@@ -245,6 +246,11 @@ QVistaHelper::QVistaHelper(QWizard *wizard)
is_vista = resolveSymbols();
if (is_vista)
backButton_ = new QVistaBackButton(wizard);
+
+ // Handle diff between Windows 7 and Vista
+ iconSpacing = QStyleHelper::dpiScaled(7);
+ textSpacing = QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS7 ?
+ iconSpacing : QStyleHelper::dpiScaled(20);
}
QVistaHelper::~QVistaHelper()
@@ -308,18 +314,15 @@ bool QVistaHelper::setDWMTitleBar(TitleBarChangeType type)
void QVistaHelper::drawTitleBar(QPainter *painter)
{
- if (vistaState() == VistaAero)
- drawBlackRect(
- QRect(0, 0, wizard->width(), titleBarSize() + topOffset()),
- painter->paintEngine()->getDC());
+ HDC hdc = painter->paintEngine()->getDC();
+ if (vistaState() == VistaAero)
+ drawBlackRect(QRect(0, 0, wizard->width(),
+ titleBarSize() + topOffset()), hdc);
Q_ASSERT(backButton_);
const int btnTop = backButton_->mapToParent(QPoint()).y();
const int btnHeight = backButton_->size().height();
- const int verticalCenter = (btnTop + btnHeight / 2);
-
- wizard->windowIcon().paint(
- painter, QRect(leftMargin(), verticalCenter - iconSize() / 2, iconSize(), iconSize()));
+ const int verticalCenter = (btnTop + btnHeight / 2) - 1;
const QString text = wizard->window()->windowTitle();
const QFont font = QApplication::font("QWorkspaceTitleBar");
@@ -327,14 +330,25 @@ void QVistaHelper::drawTitleBar(QPainter *painter)
const QRect brect = fontMetrics.boundingRect(text);
int textHeight = brect.height();
int textWidth = brect.width();
+ int glowOffset = 0;
+
if (vistaState() == VistaAero) {
textHeight += 2 * glowSize();
textWidth += 2 * glowSize();
+ glowOffset = glowSize();
}
+
drawTitleText(
painter, text,
- QRect(titleOffset(), verticalCenter - textHeight / 2, textWidth, textHeight),
- painter->paintEngine()->getDC());
+ QRect(titleOffset() - glowOffset, verticalCenter - textHeight / 2, textWidth, textHeight),
+ hdc);
+
+ if (!wizard->windowIcon().isNull()) {
+ QRect rect(leftMargin(), verticalCenter - iconSize() / 2, iconSize(), iconSize());
+ HICON hIcon = wizard->windowIcon().pixmap(iconSize()).toWinHICON();
+ DrawIconEx(hdc, rect.left(), rect.top(), hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT);
+ DestroyIcon(hIcon);
+ }
}
void QVistaHelper::setTitleBarIconAndCaptionVisible(bool visible)
@@ -734,7 +748,7 @@ bool QVistaHelper::resolveSymbols()
int QVistaHelper::titleOffset()
{
- int iconOffset = wizard ->windowIcon().isNull() ? 0 : iconSize() + padding();
+ int iconOffset = wizard ->windowIcon().isNull() ? 0 : iconSize() + textSpacing;
return leftMargin() + iconOffset;
}
diff --git a/src/gui/dialogs/qwizard_win_p.h b/src/gui/dialogs/qwizard_win_p.h
index 5f3b6c2..caf018d 100644
--- a/src/gui/dialogs/qwizard_win_p.h
+++ b/src/gui/dialogs/qwizard_win_p.h
@@ -61,6 +61,7 @@
#include <qwidget.h>
#include <qabstractbutton.h>
#include <QtGui/private/qwidget_p.h>
+#include <QtGui/private/qstylehelper_p.h>
QT_BEGIN_NAMESPACE
@@ -100,9 +101,14 @@ public:
enum VistaState { VistaAero, VistaBasic, Classic, Dirty };
static VistaState vistaState();
static int titleBarSize() { return frameSize() + captionSize(); }
- static int topPadding() { return 8; }
- static int topOffset() { return titleBarSize() + (vistaState() == VistaAero ? 13 : 3); }
-
+ static int topPadding() { // padding under text
+ return int(QStyleHelper::dpiScaled(
+ QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS7 ? 4 : 6));
+ }
+ static int topOffset() {
+ static int aeroOffset = QSysInfo::WindowsVersion >= QSysInfo::WV_WINDOWS7 ?
+ QStyleHelper::dpiScaled(4) : QStyleHelper::dpiScaled(13);
+ return (titleBarSize() + (vistaState() == VistaAero ? aeroOffset : 3)); }
private:
static HFONT getCaptionFont(HANDLE hTheme);
bool drawTitleText(QPainter *painter, const QString &text, const QRect &rect, HDC hdc);
@@ -111,11 +117,10 @@ private:
static int frameSize() { return GetSystemMetrics(SM_CYSIZEFRAME); }
static int captionSize() { return GetSystemMetrics(SM_CYCAPTION); }
- static int backButtonSize() { return 31; } // ### should be queried from back button itself
+ static int backButtonSize() { return int(QStyleHelper::dpiScaled(30)); }
static int iconSize() { return 16; } // Standard Aero
- static int padding() { return 7; } // Standard Aero
- static int leftMargin() { return backButtonSize() + padding(); }
static int glowSize() { return 10; }
+ int leftMargin() { return backButton_->isVisible() ? backButtonSize() + iconSpacing : 0; }
int titleOffset();
bool resolveSymbols();
@@ -139,6 +144,10 @@ private:
QRect rtTitle;
QWizard *wizard;
QVistaBackButton *backButton_;
+
+ int titleBarOffset; // Extra spacing above the text
+ int iconSpacing; // Space between button and icon
+ int textSpacing; // Space between icon and text
};
diff --git a/src/gui/graphicsview/qgraphicsgridlayout.cpp b/src/gui/graphicsview/qgraphicsgridlayout.cpp
index 83db3ec..062b5ac 100644
--- a/src/gui/graphicsview/qgraphicsgridlayout.cpp
+++ b/src/gui/graphicsview/qgraphicsgridlayout.cpp
@@ -94,14 +94,13 @@ public:
#endif
};
+Q_GLOBAL_STATIC(QWidget, globalStyleInfoWidget);
+
QLayoutStyleInfo QGraphicsGridLayoutPrivate::styleInfo() const
{
- static QWidget *wid = 0;
- if (!wid)
- wid = new QWidget;
QGraphicsItem *item = parentItem();
QStyle *style = (item && item->isWidget()) ? static_cast<QGraphicsWidget*>(item)->style() : QApplication::style();
- return QLayoutStyleInfo(style, wid);
+ return QLayoutStyleInfo(style, globalStyleInfoWidget());
}
/*!
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 74c51f4..bf36d9b 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -3258,6 +3258,8 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim
}
// Update the child focus chain.
+ if (scene && scene->focusItem())
+ scene->focusItem()->d_ptr->clearSubFocus();
f->d_ptr->setSubFocus();
// Update the scene's focus item.
@@ -5511,6 +5513,9 @@ void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem)
// Update focus child chain. Stop at panels, or if this item
// is hidden, stop at the first item with a visible parent.
QGraphicsItem *parent = rootItem ? rootItem : q_ptr;
+ if (parent->panel() != q_ptr->panel())
+ return;
+
do {
// Clear any existing ancestor's subFocusItem.
if (parent != q_ptr && parent->d_ptr->subFocusItem) {
@@ -7635,9 +7640,9 @@ int QGraphicsItemPrivate::children_count(QDeclarativeListProperty<QGraphicsObjec
QGraphicsObject *QGraphicsItemPrivate::children_at(QDeclarativeListProperty<QGraphicsObject> *list, int index)
{
QGraphicsItemPrivate *d = QGraphicsItemPrivate::get(static_cast<QGraphicsObject *>(list->object));
- if (index >= 0 && index < d->children.count())
+ if (index >= 0 && index < d->children.count())
return d->children.at(index)->toGraphicsObject();
- else
+ else
return 0;
}
diff --git a/src/gui/graphicsview/qgraphicslinearlayout.cpp b/src/gui/graphicsview/qgraphicslinearlayout.cpp
index b828722..37408ef 100644
--- a/src/gui/graphicsview/qgraphicslinearlayout.cpp
+++ b/src/gui/graphicsview/qgraphicslinearlayout.cpp
@@ -171,14 +171,13 @@ int QGraphicsLinearLayoutPrivate::gridColumn(int index) const
return int(qMin(uint(index), uint(engine.columnCount())));
}
+Q_GLOBAL_STATIC(QWidget, globalStyleInfoWidget)
+
QLayoutStyleInfo QGraphicsLinearLayoutPrivate::styleInfo() const
{
- static QWidget *wid = 0;
- if (!wid)
- wid = new QWidget;
QGraphicsItem *item = parentItem();
QStyle *style = (item && item->isWidget()) ? static_cast<QGraphicsWidget*>(item)->style() : QApplication::style();
- return QLayoutStyleInfo(style, wid);
+ return QLayoutStyleInfo(style, globalStyleInfoWidget());
}
/*!
diff --git a/src/gui/graphicsview/qgraphicswidget_p.cpp b/src/gui/graphicsview/qgraphicswidget_p.cpp
index 28070da..f7850ca 100644
--- a/src/gui/graphicsview/qgraphicswidget_p.cpp
+++ b/src/gui/graphicsview/qgraphicswidget_p.cpp
@@ -761,7 +761,7 @@ void QGraphicsWidgetPrivate::fixFocusChainBeforeReparenting(QGraphicsWidget *new
QGraphicsWidget *firstOld = 0;
bool wasPreviousNew = true;
-
+
while (w != q) {
bool isCurrentNew = q->isAncestorOf(w);
if (isCurrentNew) {
@@ -796,7 +796,7 @@ void QGraphicsWidgetPrivate::fixFocusChainBeforeReparenting(QGraphicsWidget *new
newScene = newParent->scene();
if (oldScene && newScene != oldScene)
- oldScene->d_func()->tabFocusFirst = firstOld;
+ oldScene->d_func()->tabFocusFirst = (firstOld && firstOld->scene() == oldScene) ? firstOld : 0;
QGraphicsItem *topLevelItem = newParent ? newParent->topLevelItem() : 0;
QGraphicsWidget *topLevel = 0;
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index dede9d0..41f1904 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -77,3 +77,129 @@ symbian {
DEPLOYMENT = partial_upgrade $$DEPLOYMENT
}
+contains(QMAKE_MAC_XARCH, no) {
+ DEFINES += QT_NO_MAC_XARCH
+} else {
+ mmx:DEFINES += QT_HAVE_MMX
+ 3dnow:DEFINES += QT_HAVE_3DNOW
+ sse:DEFINES += QT_HAVE_SSE QT_HAVE_MMXEXT
+ sse2:DEFINES += QT_HAVE_SSE2
+ iwmmxt:DEFINES += QT_HAVE_IWMMXT
+
+ win32-g++*|!win32:!*-icc* {
+ mmx {
+ mmx_compiler.commands = $$QMAKE_CXX -c -Winline
+
+ mac {
+ mmx_compiler.commands += -Xarch_i386 -mmmx
+ mmx_compiler.commands += -Xarch_x86_64 -mmmx
+ } else {
+ mmx_compiler.commands += -mmmx
+ }
+
+ mmx_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ mmx_compiler.dependency_type = TYPE_C
+ mmx_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ mmx_compiler.input = MMX_SOURCES
+ mmx_compiler.variable_out = OBJECTS
+ mmx_compiler.name = compiling[mmx] ${QMAKE_FILE_IN}
+ silent:mmx_compiler.commands = @echo compiling[mmx] ${QMAKE_FILE_IN} && $$mmx_compiler.commands
+ QMAKE_EXTRA_COMPILERS += mmx_compiler
+ }
+ 3dnow {
+ mmx3dnow_compiler.commands = $$QMAKE_CXX -c -Winline
+
+ mac {
+ mmx3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -mmmx
+ mmx3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -mmmx
+ } else {
+ mmx3dnow_compiler.commands += -m3dnow -mmmx
+ }
+
+ mmx3dnow_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ mmx3dnow_compiler.dependency_type = TYPE_C
+ mmx3dnow_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ mmx3dnow_compiler.input = MMX3DNOW_SOURCES
+ mmx3dnow_compiler.variable_out = OBJECTS
+ mmx3dnow_compiler.name = compiling[mmx3dnow] ${QMAKE_FILE_IN}
+ silent:mmx3dnow_compiler.commands = @echo compiling[mmx3dnow] ${QMAKE_FILE_IN} && $$mmx3dnow_compiler.commands
+ QMAKE_EXTRA_COMPILERS += mmx3dnow_compiler
+ sse {
+ sse3dnow_compiler.commands = $$QMAKE_CXX -c -Winline
+
+ mac {
+ sse3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -msse
+ sse3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -msse
+ } else {
+ sse3dnow_compiler.commands += -m3dnow -msse
+ }
+
+ sse3dnow_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ sse3dnow_compiler.dependency_type = TYPE_C
+ sse3dnow_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ sse3dnow_compiler.input = SSE3DNOW_SOURCES
+ sse3dnow_compiler.variable_out = OBJECTS
+ sse3dnow_compiler.name = compiling[sse3dnow] ${QMAKE_FILE_IN}
+ silent:sse3dnow_compiler.commands = @echo compiling[sse3dnow] ${QMAKE_FILE_IN} && $$sse3dnow_compiler.commands
+ QMAKE_EXTRA_COMPILERS += sse3dnow_compiler
+ }
+ }
+ sse {
+ sse_compiler.commands = $$QMAKE_CXX -c -Winline
+
+ mac {
+ sse_compiler.commands += -Xarch_i386 -msse
+ sse_compiler.commands += -Xarch_x86_64 -msse
+ } else {
+ sse_compiler.commands += -msse
+ }
+
+ sse_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ sse_compiler.dependency_type = TYPE_C
+ sse_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ sse_compiler.input = SSE_SOURCES
+ sse_compiler.variable_out = OBJECTS
+ sse_compiler.name = compiling[sse] ${QMAKE_FILE_IN}
+ silent:sse_compiler.commands = @echo compiling[sse] ${QMAKE_FILE_IN} && $$sse_compiler.commands
+ QMAKE_EXTRA_COMPILERS += sse_compiler
+ }
+ sse2 {
+ sse2_compiler.commands = $$QMAKE_CXX -c -Winline
+
+ mac {
+ sse2_compiler.commands += -Xarch_i386 -msse2
+ sse2_compiler.commands += -Xarch_x86_64 -msse2
+ } else {
+ sse2_compiler.commands += -msse2
+ }
+
+ sse2_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ sse2_compiler.dependency_type = TYPE_C
+ sse2_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ sse2_compiler.input = SSE2_SOURCES
+ sse2_compiler.variable_out = OBJECTS
+ sse2_compiler.name = compiling[sse2] ${QMAKE_FILE_IN}
+ silent:sse2_compiler.commands = @echo compiling[sse2] ${QMAKE_FILE_IN} && $$sse2_compiler.commands
+ QMAKE_EXTRA_COMPILERS += sse2_compiler
+ }
+ iwmmxt {
+ iwmmxt_compiler.commands = $$QMAKE_CXX -c -Winline
+ iwmmxt_compiler.commands += -mcpu=iwmmxt
+ iwmmxt_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
+ iwmmxt_compiler.dependency_type = TYPE_C
+ iwmmxt_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
+ iwmmxt_compiler.input = IWMMXT_SOURCES
+ iwmmxt_compiler.variable_out = OBJECTS
+ iwmmxt_compiler.name = compiling[iwmmxt] ${QMAKE_FILE_IN}
+ silent:iwmmxt_compiler.commands = @echo compiling[iwmmxt] ${QMAKE_FILE_IN} && $$iwmmxt_compiler.commands
+ QMAKE_EXTRA_COMPILERS += iwmmxt_compiler
+ }
+ } else {
+ mmx: SOURCES += $$MMX_SOURCES
+ 3dnow: SOURCES += $$MMX3DNOW_SOURCES
+ 3dnow:sse: SOURCES += $$SSE3DNOW_SOURCES
+ sse: SOURCES += $$SSE_SOURCES
+ sse2: SOURCES += $$SSE2_SOURCES
+ iwmmxt: SOURCES += $$IWMMXT_SOURCES
+ }
+}
diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri
index 9f0c87e..3a02d56 100644
--- a/src/gui/image/image.pri
+++ b/src/gui/image/image.pri
@@ -92,3 +92,6 @@ contains(QT_CONFIG, jpeg):include($$PWD/qjpeghandler.pri)
contains(QT_CONFIG, mng):include($$PWD/qmnghandler.pri)
contains(QT_CONFIG, tiff):include($$PWD/qtiffhandler.pri)
contains(QT_CONFIG, gif):include($$PWD/qgifhandler.pri)
+
+# SIMD
+SSE2_SOURCES += image/qimage_sse2.cpp
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index 79f266d..e5930ac 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -58,6 +58,7 @@
#include <private/qmemrotate_p.h>
#include <private/qpixmapdata_p.h>
#include <private/qimagescale_p.h>
+#include <private/qsimd_p.h>
#include <qhash.h>
@@ -209,7 +210,7 @@ QImageData * QImageData::create(const QSize &size, QImage::Format format, int nu
break;
}
- const int bytes_per_line = ((width * depth + 31) >> 5) << 2; // bytes per scanline (must be multiple of 8)
+ const int bytes_per_line = ((width * depth + 31) >> 5) << 2; // bytes per scanline (must be multiple of 4)
// sanity check for potential overflows
if (INT_MAX/depth < width
@@ -3630,7 +3631,7 @@ static const Image_Converter converter_map[QImage::NImageFormats][QImage::NImage
} // Format_ARGB4444_Premultiplied
};
-static const InPlace_Image_Converter inplace_converter_map[QImage::NImageFormats][QImage::NImageFormats] =
+static InPlace_Image_Converter inplace_converter_map[QImage::NImageFormats][QImage::NImageFormats] =
{
{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
@@ -3727,6 +3728,19 @@ static const InPlace_Image_Converter inplace_converter_map[QImage::NImageFormats
} // Format_ARGB4444_Premultiplied
};
+void qInitImageConversions()
+{
+ const uint features = qDetectCPUFeatures();
+ Q_UNUSED(features);
+
+#ifdef QT_HAVE_SSE2
+ if (features & SSE2) {
+ extern bool convert_ARGB_to_ARGB_PM_inplace_sse2(QImageData *data, Qt::ImageConversionFlags);
+ inplace_converter_map[QImage::Format_ARGB32][QImage::Format_ARGB32_Premultiplied] = convert_ARGB_to_ARGB_PM_inplace_sse2;
+ }
+#endif
+}
+
/*!
Returns a copy of the image in the given \a format.
diff --git a/src/gui/image/qimage_p.h b/src/gui/image/qimage_p.h
index f1a0c47..c687448 100644
--- a/src/gui/image/qimage_p.h
+++ b/src/gui/image/qimage_p.h
@@ -63,6 +63,8 @@
QT_BEGIN_NAMESPACE
+class QImageWriter;
+
struct Q_GUI_EXPORT QImageData { // internal image data
QImageData();
~QImageData();
@@ -108,6 +110,8 @@ struct Q_GUI_EXPORT QImageData { // internal image data
QPaintEngine *paintEngine;
};
+void qInitImageConversions();
+
QT_END_NAMESPACE
#endif
diff --git a/src/gui/image/qimage_sse2.cpp b/src/gui/image/qimage_sse2.cpp
new file mode 100644
index 0000000..82d49a6
--- /dev/null
+++ b/src/gui/image/qimage_sse2.cpp
@@ -0,0 +1,109 @@
+/****************************************************************************
+**
+** 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 QtGui 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 "qimage.h"
+#include <private/qimage_p.h>
+#include <private/qsimd_p.h>
+#include <private/qdrawhelper_p.h>
+#include <private/qdrawingprimitive_sse2_p.h>
+
+#ifdef QT_HAVE_SSE2
+
+QT_BEGIN_NAMESPACE
+
+bool convert_ARGB_to_ARGB_PM_inplace_sse2(QImageData *data, Qt::ImageConversionFlags)
+{
+ Q_ASSERT(data->format == QImage::Format_ARGB32);
+
+ // extra pixels on each line
+ const int spare = data->width & 3;
+ // width in pixels of the pad at the end of each line
+ const int pad = (data->bytes_per_line >> 2) - data->width;
+ const int iter = data->width >> 2;
+ int height = data->height;
+
+ const __m128i alphaMask = _mm_set1_epi32(0xff000000);
+ const __m128i nullVector = _mm_setzero_si128();
+ const __m128i half = _mm_set1_epi16(0x80);
+ const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+
+ __m128i *d = reinterpret_cast<__m128i*>(data->data);
+ while (height--) {
+ const __m128i *end = d + iter;
+
+ for (; d != end; ++d) {
+ const __m128i srcVector = _mm_loadu_si128(d);
+ const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask);
+ if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) {
+ // opaque, data is unchanged
+ } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) == 0xffff) {
+ // fully transparent
+ _mm_storeu_si128(d, nullVector);
+ } else {
+ __m128i alphaChannel = _mm_srli_epi32(srcVector, 24);
+ alphaChannel = _mm_or_si128(alphaChannel, _mm_slli_epi32(alphaChannel, 16));
+
+ __m128i result;
+ BYTE_MUL_SSE2(result, srcVector, alphaChannel, colorMask, half);
+ result = _mm_or_si128(_mm_andnot_si128(alphaMask, result), srcVectorAlpha);
+ _mm_storeu_si128(d, result);
+ }
+ }
+
+ QRgb *p = reinterpret_cast<QRgb*>(d);
+ QRgb *pe = p+spare;
+ for (; p != pe; ++p) {
+ if (*p < 0x00ffffff)
+ *p = 0;
+ else if (*p < 0xff000000)
+ *p = PREMUL(*p);
+ }
+
+ d = reinterpret_cast<__m128i*>(p+pad);
+ }
+
+ data->format = QImage::Format_ARGB32_Premultiplied;
+ return true;
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_HAVE_SSE2
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 4fb93fc..97499f3 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -1363,7 +1363,7 @@ bool QAbstractItemView::dragEnabled() const
Note that the model used needs to provide support for drag and drop operations.
- \sa setDragDropMode() {Using Drag and Drop with Item Views}
+ \sa setDragDropMode() {Using drag & drop with item views}
*/
/*!
diff --git a/src/gui/itemviews/qfileiconprovider.cpp b/src/gui/itemviews/qfileiconprovider.cpp
index 5dbd1f0..4748f89 100644
--- a/src/gui/itemviews/qfileiconprovider.cpp
+++ b/src/gui/itemviews/qfileiconprovider.cpp
@@ -100,69 +100,80 @@ public:
QIcon getMacIcon(const QFileInfo &fi) const;
#endif
QFileIconProvider *q_ptr;
- QString homePath;
+ const QString homePath;
private:
- QIcon file;
- QIcon fileLink;
- QIcon directory;
- QIcon directoryLink;
- QIcon harddisk;
- QIcon floppy;
- QIcon cdrom;
- QIcon ram;
- QIcon network;
- QIcon computer;
- QIcon desktop;
- QIcon trashcan;
- QIcon generic;
- QIcon home;
+ mutable QIcon file;
+ mutable QIcon fileLink;
+ mutable QIcon directory;
+ mutable QIcon directoryLink;
+ mutable QIcon harddisk;
+ mutable QIcon floppy;
+ mutable QIcon cdrom;
+ mutable QIcon ram;
+ mutable QIcon network;
+ mutable QIcon computer;
+ mutable QIcon desktop;
+ mutable QIcon trashcan;
+ mutable QIcon generic;
+ mutable QIcon home;
};
-QFileIconProviderPrivate::QFileIconProviderPrivate()
+QFileIconProviderPrivate::QFileIconProviderPrivate() :
+ homePath(QDir::home().absolutePath())
{
- QStyle *style = QApplication::style();
- file = style->standardIcon(QStyle::SP_FileIcon);
- directory = style->standardIcon(QStyle::SP_DirIcon);
- fileLink = style->standardIcon(QStyle::SP_FileLinkIcon);
- directoryLink = style->standardIcon(QStyle::SP_DirLinkIcon);
- harddisk = style->standardIcon(QStyle::SP_DriveHDIcon);
- floppy = style->standardIcon(QStyle::SP_DriveFDIcon);
- cdrom = style->standardIcon(QStyle::SP_DriveCDIcon);
- network = style->standardIcon(QStyle::SP_DriveNetIcon);
- computer = style->standardIcon(QStyle::SP_ComputerIcon);
- desktop = style->standardIcon(QStyle::SP_DesktopIcon);
- trashcan = style->standardIcon(QStyle::SP_TrashIcon);
- home = style->standardIcon(QStyle::SP_DirHomeIcon);
- homePath = QDir::home().absolutePath();
}
QIcon QFileIconProviderPrivate::getIcon(QStyle::StandardPixmap name) const
{
switch (name) {
case QStyle::SP_FileIcon:
+ if (file.isNull())
+ file = QApplication::style()->standardIcon(name);
return file;
case QStyle::SP_FileLinkIcon:
+ if (fileLink.isNull())
+ fileLink = QApplication::style()->standardIcon(name);
return fileLink;
case QStyle::SP_DirIcon:
+ if (directory.isNull())
+ directory = QApplication::style()->standardIcon(name);
return directory;
case QStyle::SP_DirLinkIcon:
+ if (directoryLink.isNull())
+ directoryLink = QApplication::style()->standardIcon(name);
return directoryLink;
case QStyle::SP_DriveHDIcon:
+ if (harddisk.isNull())
+ harddisk = QApplication::style()->standardIcon(name);
return harddisk;
case QStyle::SP_DriveFDIcon:
+ if (floppy.isNull())
+ floppy = QApplication::style()->standardIcon(name);
return floppy;
case QStyle::SP_DriveCDIcon:
+ if (cdrom.isNull())
+ cdrom = QApplication::style()->standardIcon(name);
return cdrom;
case QStyle::SP_DriveNetIcon:
+ if (network.isNull())
+ network = QApplication::style()->standardIcon(name);
return network;
case QStyle::SP_ComputerIcon:
+ if (computer.isNull())
+ computer = QApplication::style()->standardIcon(name);
return computer;
case QStyle::SP_DesktopIcon:
+ if (desktop.isNull())
+ desktop = QApplication::style()->standardIcon(name);
return desktop;
case QStyle::SP_TrashIcon:
+ if (trashcan.isNull())
+ trashcan = QApplication::style()->standardIcon(name);
return trashcan;
case QStyle::SP_DirHomeIcon:
+ if (home.isNull())
+ home = QApplication::style()->standardIcon(name);
return home;
default:
return QIcon();
diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp
index d984721..aaf479f 100644
--- a/src/gui/kernel/qapplication.cpp
+++ b/src/gui/kernel/qapplication.cpp
@@ -902,6 +902,7 @@ QApplication::QApplication(Display *dpy, int &argc, char **argv,
#endif // Q_WS_X11
extern void qInitDrawhelperAsm();
+extern void qInitImageConversions();
extern int qRegisterGuiVariant();
extern int qUnregisterGuiVariant();
#ifndef QT_NO_STATEMACHINE
@@ -959,6 +960,8 @@ void QApplicationPrivate::initialize()
// Set up which span functions should be used in raster engine...
qInitDrawhelperAsm();
+ // and QImage conversion functions
+ qInitImageConversions();
#ifndef QT_NO_WHEELEVENT
QApplicationPrivate::wheel_scroll_lines = 3;
diff --git a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
index 5dcf613..7a9dc70 100644
--- a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
+++ b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
@@ -196,7 +196,6 @@ static void cleanupCocoaApplicationDelegate()
qAppInstance()->quit();
startedQuit = false;
}
- return NSTerminateNow;
}
if (qtPrivate->threadData->eventLoops.size() == 0) {
diff --git a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
index 8652816..6795149 100644
--- a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
+++ b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h
@@ -85,6 +85,8 @@ QT_END_NAMESPACE
- (BOOL)canBecomeKeyWindow
{
QWidget *widget = [self QT_MANGLE_NAMESPACE(qt_qwidget)];
+ if (!widget)
+ return NO; // This should happen only for qt_root_win
bool isToolTip = (widget->windowType() == Qt::ToolTip);
bool isPopup = (widget->windowType() == Qt::Popup);
@@ -94,6 +96,8 @@ QT_END_NAMESPACE
- (BOOL)canBecomeMainWindow
{
QWidget *widget = [self QT_MANGLE_NAMESPACE(qt_qwidget)];
+ if (!widget)
+ return NO; // This should happen only for qt_root_win
bool isToolTip = (widget->windowType() == Qt::ToolTip);
bool isPopup = (widget->windowType() == Qt::Popup);
diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm
index 5c90e2e..1935531 100644
--- a/src/gui/kernel/qcocoaview_mac.mm
+++ b/src/gui/kernel/qcocoaview_mac.mm
@@ -269,6 +269,28 @@ static int qCocoaViewCount = 0;
dropData = new QCocoaDropData(dropPasteboard);
}
+- (void)changeDraggingCursor:(NSDragOperation)newOperation
+{
+ static SEL action = nil;
+ static bool operationSupported = false;
+ if (action == nil) {
+ action = NSSelectorFromString(@"operationNotAllowedCursor");
+ if ([NSCursor respondsToSelector:action]) {
+ operationSupported = true;
+ }
+ }
+ if (operationSupported) {
+ NSCursor *notAllowedCursor = [NSCursor performSelector:action];
+ bool isNotAllowedCursor = ([NSCursor currentCursor] == notAllowedCursor);
+ if (newOperation == NSDragOperationNone && !isNotAllowedCursor) {
+ [notAllowedCursor push];
+ } else if (newOperation != NSDragOperationNone && isNotAllowedCursor) {
+ [notAllowedCursor pop];
+ }
+
+ }
+}
+
- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender
{
// NB: This function is called from QCoocaWindow/QCocoaPanel rather than directly
@@ -300,6 +322,7 @@ static int qCocoaViewCount = 0;
if (!qDEEvent.isAccepted()) {
// widget is not interested in this drag, so ignore this drop data.
[self removeDropData];
+ [self changeDraggingCursor:NSDragOperationNone];
return NSDragOperationNone;
} else {
// save the mouse position, used by draggingExited handler.
@@ -321,6 +344,7 @@ static int qCocoaViewCount = 0;
nsActions = QT_PREPEND_NAMESPACE(qt_mac_mapDropAction)(qDMEvent.dropAction());
}
QT_PREPEND_NAMESPACE(qt_mac_copy_answer_rect)(qDMEvent);
+ [self changeDraggingCursor:nsActions];
return nsActions;
}
}
@@ -335,16 +359,21 @@ static int qCocoaViewCount = 0;
if (dragEnterSequence != [sender draggingSequenceNumber])
[self draggingEntered:sender];
// drag enter event was rejected, so ignore the move event.
- if (dropData == 0)
+ if (dropData == 0) {
+ [self changeDraggingCursor:NSDragOperationNone];
return NSDragOperationNone;
+ }
// return last value, if we are still in the answerRect.
NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
NSDragOperation nsActions = [sender draggingSourceOperationMask];
QPoint posDrag(localPoint.x, localPoint.y);
if (qt_mac_mouse_inside_answer_rect(posDrag)
- && QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastOperation) == nsActions)
- return QT_PREPEND_NAMESPACE(qt_mac_mapDropActions)(QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastAction));
+ && QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastOperation) == nsActions) {
+ NSDragOperation operation = QT_PREPEND_NAMESPACE(qt_mac_mapDropActions)(QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastAction));
+ [self changeDraggingCursor:operation];
+ return operation;
+ }
// send drag move event to the widget
QT_PREPEND_NAMESPACE(qt_mac_dnd_answer_rec.lastOperation) = nsActions;
Qt::DropActions qtAllowed = QT_PREPEND_NAMESPACE(qt_mac_mapNSDragOperations)(nsActions);
@@ -373,6 +402,7 @@ static int qCocoaViewCount = 0;
qDMEvent.setDropAction(Qt::IgnoreAction);
}
qt_mac_copy_answer_rect(qDMEvent);
+ [self changeDraggingCursor:operation];
return operation;
}
@@ -388,6 +418,8 @@ static int qCocoaViewCount = 0;
QApplication::sendEvent(qwidget, &de);
[self removeDropData];
}
+ [self changeDraggingCursor:NSDragOperationEvery];
+
}
- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
diff --git a/src/gui/kernel/qcocoaview_mac_p.h b/src/gui/kernel/qcocoaview_mac_p.h
index 33aaa24..b6b63ca 100644
--- a/src/gui/kernel/qcocoaview_mac_p.h
+++ b/src/gui/kernel/qcocoaview_mac_p.h
@@ -106,6 +106,7 @@ Q_GUI_EXPORT
- (void) qt_clearQWidget;
- (BOOL)qt_leftButtonIsRightButton;
- (void)qt_setLeftButtonIsRightButton:(BOOL)isSwapped;
+- (void)changeDraggingCursor:(NSDragOperation)newOperation;
+ (DnDParams*)currentMouseEvent;
@end
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index e57ec77..c788711 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -4389,6 +4389,13 @@ void QWidgetPrivate::setGeometry_sys_helper(int x, int y, int w, int h, bool isM
data.window_state = data.window_state & ~Qt::WindowMaximized;
const bool visible = q->isVisible();
+ // Apply size restrictions, applicable for Windows & Widgets.
+ if (QWExtra *extra = extraData()) {
+ w = qMin(w, extra->maxw);
+ h = qMin(h, extra->maxh);
+ w = qMax(w, extra->minw);
+ h = qMax(h, extra->minh);
+ }
data.crect = QRect(x, y, w, h);
if (realWindow) {
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index 07aabc9..4023f65 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -202,154 +202,17 @@ x11|embedded {
DEFINES += QT_NO_CUPS QT_NO_LPR
}
-contains(QMAKE_MAC_XARCH, no) {
- DEFINES += QT_NO_MAC_XARCH
-} else:if(mmx|3dnow|sse|sse2|iwmmxt) {
+if(mmx|3dnow|sse|sse2|iwmmxt) {
HEADERS += painting/qdrawhelper_x86_p.h \
painting/qdrawhelper_mmx_p.h \
- painting/qdrawhelper_sse_p.h
- mmx {
- DEFINES += QT_HAVE_MMX
- MMX_SOURCES += painting/qdrawhelper_mmx.cpp
- }
- 3dnow {
- DEFINES += QT_HAVE_3DNOW
- MMX3DNOW_SOURCES += painting/qdrawhelper_mmx3dnow.cpp
- sse {
- SSE3DNOW_SOURCES += painting/qdrawhelper_sse3dnow.cpp
- }
- }
- sse {
- DEFINES += QT_HAVE_SSE
- SSE_SOURCES += painting/qdrawhelper_sse.cpp
-
- DEFINES += QT_HAVE_MMXEXT
- }
- sse2 {
- DEFINES += QT_HAVE_SSE2
- SSE2_SOURCES += painting/qdrawhelper_sse2.cpp
- }
- iwmmxt {
- DEFINES += QT_HAVE_IWMMXT
- IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp
- }
-
- win32-g++*|!win32:!*-icc* {
- mmx {
- mmx_compiler.commands = $$QMAKE_CXX -c -Winline
-
- mac {
- mmx_compiler.commands += -Xarch_i386 -mmmx
- mmx_compiler.commands += -Xarch_x86_64 -mmmx
- } else {
- mmx_compiler.commands += -mmmx
- }
-
- mmx_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- mmx_compiler.dependency_type = TYPE_C
- mmx_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- mmx_compiler.input = MMX_SOURCES
- mmx_compiler.variable_out = OBJECTS
- mmx_compiler.name = compiling[mmx] ${QMAKE_FILE_IN}
- silent:mmx_compiler.commands = @echo compiling[mmx] ${QMAKE_FILE_IN} && $$mmx_compiler.commands
- QMAKE_EXTRA_COMPILERS += mmx_compiler
- }
- 3dnow {
- mmx3dnow_compiler.commands = $$QMAKE_CXX -c -Winline
-
- mac {
- mmx3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -mmmx
- mmx3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -mmmx
- } else {
- mmx3dnow_compiler.commands += -m3dnow -mmmx
- }
-
- mmx3dnow_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- mmx3dnow_compiler.dependency_type = TYPE_C
- mmx3dnow_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- mmx3dnow_compiler.input = MMX3DNOW_SOURCES
- mmx3dnow_compiler.variable_out = OBJECTS
- mmx3dnow_compiler.name = compiling[mmx3dnow] ${QMAKE_FILE_IN}
- silent:mmx3dnow_compiler.commands = @echo compiling[mmx3dnow] ${QMAKE_FILE_IN} && $$mmx3dnow_compiler.commands
- QMAKE_EXTRA_COMPILERS += mmx3dnow_compiler
- sse {
- sse3dnow_compiler.commands = $$QMAKE_CXX -c -Winline
-
- mac {
- sse3dnow_compiler.commands += -Xarch_i386 -m3dnow -Xarch_i386 -msse
- sse3dnow_compiler.commands += -Xarch_x86_64 -m3dnow -Xarch_x86_64 -msse
- } else {
- sse3dnow_compiler.commands += -m3dnow -msse
- }
-
- sse3dnow_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- sse3dnow_compiler.dependency_type = TYPE_C
- sse3dnow_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- sse3dnow_compiler.input = SSE3DNOW_SOURCES
- sse3dnow_compiler.variable_out = OBJECTS
- sse3dnow_compiler.name = compiling[sse3dnow] ${QMAKE_FILE_IN}
- silent:sse3dnow_compiler.commands = @echo compiling[sse3dnow] ${QMAKE_FILE_IN} && $$sse3dnow_compiler.commands
- QMAKE_EXTRA_COMPILERS += sse3dnow_compiler
- }
- }
- sse {
- sse_compiler.commands = $$QMAKE_CXX -c -Winline
-
- mac {
- sse_compiler.commands += -Xarch_i386 -msse
- sse_compiler.commands += -Xarch_x86_64 -msse
- } else {
- sse_compiler.commands += -msse
- }
-
- sse_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- sse_compiler.dependency_type = TYPE_C
- sse_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- sse_compiler.input = SSE_SOURCES
- sse_compiler.variable_out = OBJECTS
- sse_compiler.name = compiling[sse] ${QMAKE_FILE_IN}
- silent:sse_compiler.commands = @echo compiling[sse] ${QMAKE_FILE_IN} && $$sse_compiler.commands
- QMAKE_EXTRA_COMPILERS += sse_compiler
- }
- sse2 {
- sse2_compiler.commands = $$QMAKE_CXX -c -Winline
-
- mac {
- sse2_compiler.commands += -Xarch_i386 -msse2
- sse2_compiler.commands += -Xarch_x86_64 -msse2
- } else {
- sse2_compiler.commands += -msse2
- }
-
- sse2_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- sse2_compiler.dependency_type = TYPE_C
- sse2_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- sse2_compiler.input = SSE2_SOURCES
- sse2_compiler.variable_out = OBJECTS
- sse2_compiler.name = compiling[sse2] ${QMAKE_FILE_IN}
- silent:sse2_compiler.commands = @echo compiling[sse2] ${QMAKE_FILE_IN} && $$sse2_compiler.commands
- QMAKE_EXTRA_COMPILERS += sse2_compiler
- }
- iwmmxt {
- iwmmxt_compiler.commands = $$QMAKE_CXX -c -Winline
- iwmmxt_compiler.commands += -mcpu=iwmmxt
- iwmmxt_compiler.commands += $(CXXFLAGS) $(INCPATH) ${QMAKE_FILE_IN} -o ${QMAKE_FILE_OUT}
- iwmmxt_compiler.dependency_type = TYPE_C
- iwmmxt_compiler.output = ${QMAKE_VAR_OBJECTS_DIR}${QMAKE_FILE_BASE}$${first(QMAKE_EXT_OBJ)}
- iwmmxt_compiler.input = IWMMXT_SOURCES
- iwmmxt_compiler.variable_out = OBJECTS
- iwmmxt_compiler.name = compiling[iwmmxt] ${QMAKE_FILE_IN}
- silent:iwmmxt_compiler.commands = @echo compiling[iwmmxt] ${QMAKE_FILE_IN} && $$iwmmxt_compiler.commands
- QMAKE_EXTRA_COMPILERS += iwmmxt_compiler
- }
- } else {
- mmx: SOURCES += $$MMX_SOURCES
- 3dnow: SOURCES += $$MMX3DNOW_SOURCES
- 3dnow:sse: SOURCES += $$SSE3DNOW_SOURCES
- sse: SOURCES += $$SSE_SOURCES
- sse2: SOURCES += $$SSE2_SOURCES
- iwmmxt: SOURCES += $$IWMMXT_SOURCES
- }
+ painting/qdrawhelper_sse_p.h \
+ painting/qdrawingprimitive_sse2_p.h
+ MMX_SOURCES += painting/qdrawhelper_mmx.cpp
+ MMX3DNOW_SOURCES += painting/qdrawhelper_mmx3dnow.cpp
+ SSE3DNOW_SOURCES += painting/qdrawhelper_sse3dnow.cpp
+ SSE_SOURCES += painting/qdrawhelper_sse.cpp
+ SSE2_SOURCES += painting/qdrawhelper_sse2.cpp
+ IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp
}
x11 {
diff --git a/src/gui/painting/qdrawhelper_sse2.cpp b/src/gui/painting/qdrawhelper_sse2.cpp
index 6cd8688..346e177 100644
--- a/src/gui/painting/qdrawhelper_sse2.cpp
+++ b/src/gui/painting/qdrawhelper_sse2.cpp
@@ -43,176 +43,12 @@
#ifdef QT_HAVE_SSE2
+#include <private/qsimd_p.h>
+#include <private/qdrawingprimitive_sse2_p.h>
#include <private/qpaintengine_raster_p.h>
-#ifdef QT_LINUXBASE
-// this is an evil hack - the posix_memalign declaration in LSB
-// is wrong - see http://bugs.linuxbase.org/show_bug.cgi?id=2431
-# define posix_memalign _lsb_hack_posix_memalign
-# include <emmintrin.h>
-# undef posix_memalign
-#else
-# include <emmintrin.h>
-#endif
-
QT_BEGIN_NAMESPACE
-/*
- * Multiply the components of pixelVector by alphaChannel
- * Each 32bits components of alphaChannel must be in the form 0x00AA00AA
- * colorMask must have 0x00ff00ff on each 32 bits component
- * half must have the value 128 (0x80) for each 32 bits compnent
- */
-#define BYTE_MUL_SSE2(result, pixelVector, alphaChannel, colorMask, half) \
-{ \
- /* 1. separate the colors in 2 vectors so each color is on 16 bits \
- (in order to be multiplied by the alpha \
- each 32 bit of dstVectorAG are in the form 0x00AA00GG \
- each 32 bit of dstVectorRB are in the form 0x00RR00BB */\
- __m128i pixelVectorAG = _mm_srli_epi16(pixelVector, 8); \
- __m128i pixelVectorRB = _mm_and_si128(pixelVector, colorMask); \
- \
- /* 2. multiply the vectors by the alpha channel */\
- pixelVectorAG = _mm_mullo_epi16(pixelVectorAG, alphaChannel); \
- pixelVectorRB = _mm_mullo_epi16(pixelVectorRB, alphaChannel); \
- \
- /* 3. devide by 255, that's the tricky part. \
- we do it like for BYTE_MUL(), with bit shift: X/255 ~= (X + X/256 + rounding)/256 */ \
- /** so first (X + X/256 + rounding) */\
- pixelVectorRB = _mm_add_epi16(pixelVectorRB, _mm_srli_epi16(pixelVectorRB, 8)); \
- pixelVectorRB = _mm_add_epi16(pixelVectorRB, half); \
- pixelVectorAG = _mm_add_epi16(pixelVectorAG, _mm_srli_epi16(pixelVectorAG, 8)); \
- pixelVectorAG = _mm_add_epi16(pixelVectorAG, half); \
- \
- /** second devide by 256 */\
- pixelVectorRB = _mm_srli_epi16(pixelVectorRB, 8); \
- /** for AG, we could >> 8 to divide followed by << 8 to put the \
- bytes in the correct position. By masking instead, we execute \
- only one instruction */\
- pixelVectorAG = _mm_andnot_si128(colorMask, pixelVectorAG); \
- \
- /* 4. combine the 2 pairs of colors */ \
- result = _mm_or_si128(pixelVectorAG, pixelVectorRB); \
-}
-
-/*
- * Each 32bits components of alphaChannel must be in the form 0x00AA00AA
- * oneMinusAlphaChannel must be 255 - alpha for each 32 bits component
- * colorMask must have 0x00ff00ff on each 32 bits component
- * half must have the value 128 (0x80) for each 32 bits compnent
- */
-#define INTERPOLATE_PIXEL_255_SSE2(result, srcVector, dstVector, alphaChannel, oneMinusAlphaChannel, colorMask, half) { \
- /* interpolate AG */\
- __m128i srcVectorAG = _mm_srli_epi16(srcVector, 8); \
- __m128i dstVectorAG = _mm_srli_epi16(dstVector, 8); \
- __m128i srcVectorAGalpha = _mm_mullo_epi16(srcVectorAG, alphaChannel); \
- __m128i dstVectorAGoneMinusAlphalpha = _mm_mullo_epi16(dstVectorAG, oneMinusAlphaChannel); \
- __m128i finalAG = _mm_add_epi16(srcVectorAGalpha, dstVectorAGoneMinusAlphalpha); \
- finalAG = _mm_add_epi16(finalAG, _mm_srli_epi16(finalAG, 8)); \
- finalAG = _mm_add_epi16(finalAG, half); \
- finalAG = _mm_andnot_si128(colorMask, finalAG); \
- \
- /* interpolate RB */\
- __m128i srcVectorRB = _mm_and_si128(srcVector, colorMask); \
- __m128i dstVectorRB = _mm_and_si128(dstVector, colorMask); \
- __m128i srcVectorRBalpha = _mm_mullo_epi16(srcVectorRB, alphaChannel); \
- __m128i dstVectorRBoneMinusAlphalpha = _mm_mullo_epi16(dstVectorRB, oneMinusAlphaChannel); \
- __m128i finalRB = _mm_add_epi16(srcVectorRBalpha, dstVectorRBoneMinusAlphalpha); \
- finalRB = _mm_add_epi16(finalRB, _mm_srli_epi16(finalRB, 8)); \
- finalRB = _mm_add_epi16(finalRB, half); \
- finalRB = _mm_srli_epi16(finalRB, 8); \
- \
- /* combine */\
- result = _mm_or_si128(finalAG, finalRB); \
-}
-
-// Basically blend src over dst with the const alpha defined as constAlphaVector.
-// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
-//const __m128i nullVector = _mm_set1_epi32(0);
-//const __m128i half = _mm_set1_epi16(0x80);
-//const __m128i one = _mm_set1_epi16(0xff);
-//const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
-//const __m128i alphaMask = _mm_set1_epi32(0xff000000);
-//
-// The computation being done is:
-// result = s + d * (1-alpha)
-// with shortcuts if fully opaque or fully transparent.
-#define BLEND_SOURCE_OVER_ARGB32_SSE2(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \
- int x = 0; \
- for (; x < length-3; x += 4) { \
- const __m128i srcVector = _mm_loadu_si128((__m128i *)&src[x]); \
- const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \
- if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \
- /* all opaque */ \
- _mm_storeu_si128((__m128i *)&dst[x], srcVector); \
- } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \
- /* not fully transparent */ \
- /* extract the alpha channel on 2 x 16 bits */ \
- /* so we have room for the multiplication */ \
- /* each 32 bits will be in the form 0x00AA00AA */ \
- /* with A being the 1 - alpha */ \
- __m128i alphaChannel = _mm_srli_epi32(srcVector, 24); \
- alphaChannel = _mm_or_si128(alphaChannel, _mm_slli_epi32(alphaChannel, 16)); \
- alphaChannel = _mm_sub_epi16(one, alphaChannel); \
- \
- const __m128i dstVector = _mm_loadu_si128((__m128i *)&dst[x]); \
- __m128i destMultipliedByOneMinusAlpha; \
- BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
- \
- /* result = s + d * (1-alpha) */\
- const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
- _mm_storeu_si128((__m128i *)&dst[x], result); \
- } \
- } \
- for (; x < length; ++x) { \
- uint s = src[x]; \
- if (s >= 0xff000000) \
- dst[x] = s; \
- else if (s != 0) \
- dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \
- } \
-}
-
-// Basically blend src over dst with the const alpha defined as constAlphaVector.
-// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
-//const __m128i nullVector = _mm_set1_epi32(0);
-//const __m128i half = _mm_set1_epi16(0x80);
-//const __m128i one = _mm_set1_epi16(0xff);
-//const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
-//
-// The computation being done is:
-// dest = (s + d * sia) * ca + d * cia
-// = s * ca + d * (sia * ca + cia)
-// = s * ca + d * (1 - sa*ca)
-#define BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2(dst, src, length, nullVector, half, one, colorMask, constAlphaVector) \
-{ \
- int x = 0; \
- for (; x < length-3; x += 4) { \
- __m128i srcVector = _mm_loadu_si128((__m128i *)&src[x]); \
- if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVector, nullVector)) != 0xffff) { \
- BYTE_MUL_SSE2(srcVector, srcVector, constAlphaVector, colorMask, half); \
-\
- __m128i alphaChannel = _mm_srli_epi32(srcVector, 24); \
- alphaChannel = _mm_or_si128(alphaChannel, _mm_slli_epi32(alphaChannel, 16)); \
- alphaChannel = _mm_sub_epi16(one, alphaChannel); \
- \
- const __m128i dstVector = _mm_loadu_si128((__m128i *)&dst[x]); \
- __m128i destMultipliedByOneMinusAlpha; \
- BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
- \
- const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
- _mm_storeu_si128((__m128i *)&dst[x], result); \
- } \
- } \
- for (; x < length; ++x) { \
- quint32 s = src[x]; \
- if (s != 0) { \
- s = BYTE_MUL(s, const_alpha); \
- dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \
- } \
- } \
-}
-
void qt_blend_argb32_on_argb32_sse2(uchar *destPixels, int dbpl,
const uchar *srcPixels, int sbpl,
int w, int h,
diff --git a/src/gui/painting/qdrawingprimitive_sse2_p.h b/src/gui/painting/qdrawingprimitive_sse2_p.h
new file mode 100644
index 0000000..3c96946
--- /dev/null
+++ b/src/gui/painting/qdrawingprimitive_sse2_p.h
@@ -0,0 +1,222 @@
+/****************************************************************************
+**
+** 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 QtGui 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 QDRAWINGPRIMITIVE_SSE2_P_H
+#define QDRAWINGPRIMITIVE_SSE2_P_H
+
+#include <private/qsimd_p.h>
+
+#ifdef QT_HAVE_SSE2
+
+//
+// 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.
+//
+
+QT_BEGIN_NAMESPACE
+
+/*
+ * Multiply the components of pixelVector by alphaChannel
+ * Each 32bits components of alphaChannel must be in the form 0x00AA00AA
+ * colorMask must have 0x00ff00ff on each 32 bits component
+ * half must have the value 128 (0x80) for each 32 bits compnent
+ */
+#define BYTE_MUL_SSE2(result, pixelVector, alphaChannel, colorMask, half) \
+{ \
+ /* 1. separate the colors in 2 vectors so each color is on 16 bits \
+ (in order to be multiplied by the alpha \
+ each 32 bit of dstVectorAG are in the form 0x00AA00GG \
+ each 32 bit of dstVectorRB are in the form 0x00RR00BB */\
+ __m128i pixelVectorAG = _mm_srli_epi16(pixelVector, 8); \
+ __m128i pixelVectorRB = _mm_and_si128(pixelVector, colorMask); \
+ \
+ /* 2. multiply the vectors by the alpha channel */\
+ pixelVectorAG = _mm_mullo_epi16(pixelVectorAG, alphaChannel); \
+ pixelVectorRB = _mm_mullo_epi16(pixelVectorRB, alphaChannel); \
+ \
+ /* 3. devide by 255, that's the tricky part. \
+ we do it like for BYTE_MUL(), with bit shift: X/255 ~= (X + X/256 + rounding)/256 */ \
+ /** so first (X + X/256 + rounding) */\
+ pixelVectorRB = _mm_add_epi16(pixelVectorRB, _mm_srli_epi16(pixelVectorRB, 8)); \
+ pixelVectorRB = _mm_add_epi16(pixelVectorRB, half); \
+ pixelVectorAG = _mm_add_epi16(pixelVectorAG, _mm_srli_epi16(pixelVectorAG, 8)); \
+ pixelVectorAG = _mm_add_epi16(pixelVectorAG, half); \
+ \
+ /** second devide by 256 */\
+ pixelVectorRB = _mm_srli_epi16(pixelVectorRB, 8); \
+ /** for AG, we could >> 8 to divide followed by << 8 to put the \
+ bytes in the correct position. By masking instead, we execute \
+ only one instruction */\
+ pixelVectorAG = _mm_andnot_si128(colorMask, pixelVectorAG); \
+ \
+ /* 4. combine the 2 pairs of colors */ \
+ result = _mm_or_si128(pixelVectorAG, pixelVectorRB); \
+}
+
+/*
+ * Each 32bits components of alphaChannel must be in the form 0x00AA00AA
+ * oneMinusAlphaChannel must be 255 - alpha for each 32 bits component
+ * colorMask must have 0x00ff00ff on each 32 bits component
+ * half must have the value 128 (0x80) for each 32 bits compnent
+ */
+#define INTERPOLATE_PIXEL_255_SSE2(result, srcVector, dstVector, alphaChannel, oneMinusAlphaChannel, colorMask, half) { \
+ /* interpolate AG */\
+ __m128i srcVectorAG = _mm_srli_epi16(srcVector, 8); \
+ __m128i dstVectorAG = _mm_srli_epi16(dstVector, 8); \
+ __m128i srcVectorAGalpha = _mm_mullo_epi16(srcVectorAG, alphaChannel); \
+ __m128i dstVectorAGoneMinusAlphalpha = _mm_mullo_epi16(dstVectorAG, oneMinusAlphaChannel); \
+ __m128i finalAG = _mm_add_epi16(srcVectorAGalpha, dstVectorAGoneMinusAlphalpha); \
+ finalAG = _mm_add_epi16(finalAG, _mm_srli_epi16(finalAG, 8)); \
+ finalAG = _mm_add_epi16(finalAG, half); \
+ finalAG = _mm_andnot_si128(colorMask, finalAG); \
+ \
+ /* interpolate RB */\
+ __m128i srcVectorRB = _mm_and_si128(srcVector, colorMask); \
+ __m128i dstVectorRB = _mm_and_si128(dstVector, colorMask); \
+ __m128i srcVectorRBalpha = _mm_mullo_epi16(srcVectorRB, alphaChannel); \
+ __m128i dstVectorRBoneMinusAlphalpha = _mm_mullo_epi16(dstVectorRB, oneMinusAlphaChannel); \
+ __m128i finalRB = _mm_add_epi16(srcVectorRBalpha, dstVectorRBoneMinusAlphalpha); \
+ finalRB = _mm_add_epi16(finalRB, _mm_srli_epi16(finalRB, 8)); \
+ finalRB = _mm_add_epi16(finalRB, half); \
+ finalRB = _mm_srli_epi16(finalRB, 8); \
+ \
+ /* combine */\
+ result = _mm_or_si128(finalAG, finalRB); \
+}
+
+// Basically blend src over dst with the const alpha defined as constAlphaVector.
+// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
+//const __m128i nullVector = _mm_set1_epi32(0);
+//const __m128i half = _mm_set1_epi16(0x80);
+//const __m128i one = _mm_set1_epi16(0xff);
+//const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+//const __m128i alphaMask = _mm_set1_epi32(0xff000000);
+//
+// The computation being done is:
+// result = s + d * (1-alpha)
+// with shortcuts if fully opaque or fully transparent.
+#define BLEND_SOURCE_OVER_ARGB32_SSE2(dst, src, length, nullVector, half, one, colorMask, alphaMask) { \
+ int x = 0; \
+ for (; x < length-3; x += 4) { \
+ const __m128i srcVector = _mm_loadu_si128((__m128i *)&src[x]); \
+ const __m128i srcVectorAlpha = _mm_and_si128(srcVector, alphaMask); \
+ if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, alphaMask)) == 0xffff) { \
+ /* all opaque */ \
+ _mm_storeu_si128((__m128i *)&dst[x], srcVector); \
+ } else if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVectorAlpha, nullVector)) != 0xffff) { \
+ /* not fully transparent */ \
+ /* extract the alpha channel on 2 x 16 bits */ \
+ /* so we have room for the multiplication */ \
+ /* each 32 bits will be in the form 0x00AA00AA */ \
+ /* with A being the 1 - alpha */ \
+ __m128i alphaChannel = _mm_srli_epi32(srcVector, 24); \
+ alphaChannel = _mm_or_si128(alphaChannel, _mm_slli_epi32(alphaChannel, 16)); \
+ alphaChannel = _mm_sub_epi16(one, alphaChannel); \
+ \
+ const __m128i dstVector = _mm_loadu_si128((__m128i *)&dst[x]); \
+ __m128i destMultipliedByOneMinusAlpha; \
+ BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
+ \
+ /* result = s + d * (1-alpha) */\
+ const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
+ _mm_storeu_si128((__m128i *)&dst[x], result); \
+ } \
+ } \
+ for (; x < length; ++x) { \
+ uint s = src[x]; \
+ if (s >= 0xff000000) \
+ dst[x] = s; \
+ else if (s != 0) \
+ dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \
+ } \
+}
+
+// Basically blend src over dst with the const alpha defined as constAlphaVector.
+// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as:
+//const __m128i nullVector = _mm_set1_epi32(0);
+//const __m128i half = _mm_set1_epi16(0x80);
+//const __m128i one = _mm_set1_epi16(0xff);
+//const __m128i colorMask = _mm_set1_epi32(0x00ff00ff);
+//
+// The computation being done is:
+// dest = (s + d * sia) * ca + d * cia
+// = s * ca + d * (sia * ca + cia)
+// = s * ca + d * (1 - sa*ca)
+#define BLEND_SOURCE_OVER_ARGB32_WITH_CONST_ALPHA_SSE2(dst, src, length, nullVector, half, one, colorMask, constAlphaVector) \
+{ \
+ int x = 0; \
+ for (; x < length-3; x += 4) { \
+ __m128i srcVector = _mm_loadu_si128((__m128i *)&src[x]); \
+ if (_mm_movemask_epi8(_mm_cmpeq_epi32(srcVector, nullVector)) != 0xffff) { \
+ BYTE_MUL_SSE2(srcVector, srcVector, constAlphaVector, colorMask, half); \
+\
+ __m128i alphaChannel = _mm_srli_epi32(srcVector, 24); \
+ alphaChannel = _mm_or_si128(alphaChannel, _mm_slli_epi32(alphaChannel, 16)); \
+ alphaChannel = _mm_sub_epi16(one, alphaChannel); \
+ \
+ const __m128i dstVector = _mm_loadu_si128((__m128i *)&dst[x]); \
+ __m128i destMultipliedByOneMinusAlpha; \
+ BYTE_MUL_SSE2(destMultipliedByOneMinusAlpha, dstVector, alphaChannel, colorMask, half); \
+ \
+ const __m128i result = _mm_add_epi8(srcVector, destMultipliedByOneMinusAlpha); \
+ _mm_storeu_si128((__m128i *)&dst[x], result); \
+ } \
+ } \
+ for (; x < length; ++x) { \
+ quint32 s = src[x]; \
+ if (s != 0) { \
+ s = BYTE_MUL(s, const_alpha); \
+ dst[x] = s + BYTE_MUL(dst[x], qAlpha(~s)); \
+ } \
+ } \
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_HAVE_SSE2
+
+#endif // QDRAWINGPRIMITIVE_SSE2_P_H
diff --git a/src/gui/styles/qstyle.cpp b/src/gui/styles/qstyle.cpp
index 4cfa93f..687e587 100644
--- a/src/gui/styles/qstyle.cpp
+++ b/src/gui/styles/qstyle.cpp
@@ -2421,9 +2421,10 @@ QT_BEGIN_INCLUDE_NAMESPACE
#include <QDebug>
QT_END_INCLUDE_NAMESPACE
+#if !defined(QT_NO_DEBUG_STREAM)
QDebug operator<<(QDebug debug, QStyle::State state)
{
-#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM)
+#if !defined(QT_NO_DEBUG)
debug << "QStyle::State(";
QStringList states;
@@ -2458,6 +2459,7 @@ QDebug operator<<(QDebug debug, QStyle::State state)
#endif
return debug;
}
+#endif
/*!
\since 4.6
diff --git a/src/gui/styles/qstyle.h b/src/gui/styles/qstyle.h
index 439d626..439901a 100644
--- a/src/gui/styles/qstyle.h
+++ b/src/gui/styles/qstyle.h
@@ -878,7 +878,9 @@ private:
Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::State)
Q_DECLARE_OPERATORS_FOR_FLAGS(QStyle::SubControls)
+#if !defined(QT_NO_DEBUG_STREAM)
Q_GUI_EXPORT QDebug operator<<(QDebug debug, QStyle::State state);
+#endif
QT_END_NAMESPACE
diff --git a/src/gui/styles/qstyleoption.cpp b/src/gui/styles/qstyleoption.cpp
index c057a2b..4780edf 100644
--- a/src/gui/styles/qstyleoption.cpp
+++ b/src/gui/styles/qstyleoption.cpp
@@ -5419,9 +5419,10 @@ QStyleHintReturnVariant::QStyleHintReturnVariant() : QStyleHintReturn(Version, T
Returns a T or 0 depending on the type of \a hint.
*/
+#if !defined(QT_NO_DEBUG_STREAM)
QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType)
{
-#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM)
+#if !defined(QT_NO_DEBUG)
switch (optionType) {
case QStyleOption::SO_Default:
debug << "SO_Default"; break;
@@ -5488,7 +5489,7 @@ QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType)
QDebug operator<<(QDebug debug, const QStyleOption &option)
{
-#if !defined(QT_NO_DEBUG) && !defined(QT_NO_DEBUG_STREAM)
+#if !defined(QT_NO_DEBUG)
debug << "QStyleOption(";
debug << QStyleOption::OptionType(option.type);
debug << ',' << (option.direction == Qt::RightToLeft ? "RightToLeft" : "LeftToRight");
@@ -5498,5 +5499,6 @@ QDebug operator<<(QDebug debug, const QStyleOption &option)
#endif
return debug;
}
+#endif
QT_END_NAMESPACE
diff --git a/src/gui/styles/qstyleoption.h b/src/gui/styles/qstyleoption.h
index 95de8d5..e79d9a4 100644
--- a/src/gui/styles/qstyleoption.h
+++ b/src/gui/styles/qstyleoption.h
@@ -958,8 +958,10 @@ T qstyleoption_cast(QStyleHintReturn *hint)
return 0;
}
+#if !defined(QT_NO_DEBUG_STREAM)
Q_GUI_EXPORT QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType);
Q_GUI_EXPORT QDebug operator<<(QDebug debug, const QStyleOption &option);
+#endif
QT_END_NAMESPACE
diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp
index c229242..3fe98e1 100644
--- a/src/gui/text/qfont.cpp
+++ b/src/gui/text/qfont.cpp
@@ -1266,6 +1266,15 @@ QFont::StyleHint QFont::styleHint() const
\value OldEnglish the font matcher prefers decorative fonts.
\value Decorative is a synonym for \c OldEnglish.
+ \value Monospace the font matcher prefers fonts that map to the
+ CSS generic font-family 'monospace'.
+
+ \value Fantasy the font matcher prefers fonts that map to the
+ CSS generic font-family 'fantasy'.
+
+ \value Cursive the font matcher prefers fonts that map to the
+ CSS generic font-family 'cursive'.
+
\value System the font matcher prefers system fonts.
*/
diff --git a/src/gui/text/qfont.h b/src/gui/text/qfont.h
index 6f62424..2cc41e1 100644
--- a/src/gui/text/qfont.h
+++ b/src/gui/text/qfont.h
@@ -72,7 +72,10 @@ public:
Courier, TypeWriter = Courier,
OldEnglish, Decorative = OldEnglish,
System,
- AnyStyle
+ AnyStyle,
+ Cursive,
+ Monospace,
+ Fantasy
};
enum StyleStrategy {
diff --git a/src/gui/text/qfont_mac.cpp b/src/gui/text/qfont_mac.cpp
index 93985ab..0bc8ca2 100644
--- a/src/gui/text/qfont_mac.cpp
+++ b/src/gui/text/qfont_mac.cpp
@@ -136,8 +136,14 @@ QString QFont::defaultFamily() const
return QString::fromLatin1("Times New Roman");
case QFont::Courier:
return QString::fromLatin1("Courier New");
+ case QFont::Monospace:
+ return QString::fromLatin1("Courier");
case QFont::Decorative:
return QString::fromLatin1("Bookman Old Style");
+ case QFont::Cursive:
+ return QString::fromLatin1("Apple Chancery");
+ case QFont::Fantasy:
+ return QString::fromLatin1("Papyrus");
case QFont::Helvetica:
case QFont::System:
default:
diff --git a/src/gui/text/qfont_qws.cpp b/src/gui/text/qfont_qws.cpp
index 51af1e1..72f8c37 100644
--- a/src/gui/text/qfont_qws.cpp
+++ b/src/gui/text/qfont_qws.cpp
@@ -108,6 +108,7 @@ QString QFont::defaultFamily() const
case QFont::Times:
return QString::fromLatin1("times");
case QFont::Courier:
+ case QFont::Monospace:
return QString::fromLatin1("courier");
case QFont::Decorative:
return QString::fromLatin1("old english");
diff --git a/src/gui/text/qfont_win.cpp b/src/gui/text/qfont_win.cpp
index a9610f7..fa45ae1 100644
--- a/src/gui/text/qfont_win.cpp
+++ b/src/gui/text/qfont_win.cpp
@@ -148,9 +148,14 @@ QString QFont::defaultFamily() const
case QFont::Times:
return QString::fromLatin1("Times New Roman");
case QFont::Courier:
+ case QFont::Monospace:
return QString::fromLatin1("Courier New");
case QFont::Decorative:
return QString::fromLatin1("Bookman Old Style");
+ case QFont::Cursive:
+ return QString::fromLatin1("Comic Sans MS");
+ case QFont::Fantasy:
+ return QString::fromLatin1("Impact");
case QFont::Helvetica:
return QString::fromLatin1("Arial");
case QFont::System:
diff --git a/src/gui/text/qfont_x11.cpp b/src/gui/text/qfont_x11.cpp
index 39127dc..92e2326 100644
--- a/src/gui/text/qfont_x11.cpp
+++ b/src/gui/text/qfont_x11.cpp
@@ -281,6 +281,15 @@ QString QFont::defaultFamily() const
case QFont::Courier:
return QString::fromLatin1("Courier");
+ case QFont::Monospace:
+ return QString::fromLatin1("Courier New");
+
+ case QFont::Cursive:
+ return QString::fromLatin1("Comic Sans MS");
+
+ case QFont::Fantasy:
+ return QString::fromLatin1("Impact");
+
case QFont::Decorative:
return QString::fromLatin1("Old English");
diff --git a/src/gui/text/qfontengine_s60_p.h b/src/gui/text/qfontengine_s60_p.h
index beeb4cc..d65f13b 100644
--- a/src/gui/text/qfontengine_s60_p.h
+++ b/src/gui/text/qfontengine_s60_p.h
@@ -54,7 +54,7 @@
//
#include "qconfig.h"
-#include "qfontengine_p.h"
+#include <private/qfontengine_p.h>
#include "qsize.h"
#include <openfont.h>
@@ -134,6 +134,7 @@ public:
private:
friend class QFontPrivate;
+ friend class QSymbianVGFontGlyphCache;
QFixed glyphAdvance(HB_Glyph glyph) const;
CFont *fontWithSize(qreal size) const;
diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp
index a9caa6b..769ab2f 100644
--- a/src/gui/text/qtextcursor.cpp
+++ b/src/gui/text/qtextcursor.cpp
@@ -64,7 +64,8 @@ enum {
QTextCursorPrivate::QTextCursorPrivate(QTextDocumentPrivate *p)
: priv(p), x(0), position(0), anchor(0), adjusted_anchor(0),
- currentCharFormat(-1), visualNavigation(false), keepPositionOnInsert(false)
+ currentCharFormat(-1), visualNavigation(false), keepPositionOnInsert(false),
+ changed(false)
{
priv->addCursor(this);
}
@@ -80,6 +81,7 @@ QTextCursorPrivate::QTextCursorPrivate(const QTextCursorPrivate &rhs)
currentCharFormat = rhs.currentCharFormat;
visualNavigation = rhs.visualNavigation;
keepPositionOnInsert = rhs.keepPositionOnInsert;
+ changed = rhs.changed;
priv->addCursor(this);
}
@@ -1281,7 +1283,7 @@ void QTextCursor::setVisualNavigation(bool b)
/*!
\since 4.7
- Sets the visual x position for vertical cursor movements.
+ Sets the visual x position for vertical cursor movements to \a x.
The vertical movement x position is cleared automatically when the cursor moves horizontally, and kept
unchanged when the cursor moves vertically. The mechanism allows the cursor to move up and down on a
@@ -1333,8 +1335,8 @@ bool QTextCursor::keepPositionOnInsert() const
Defines whether the cursor should keep its current position when text gets inserted at the current position of the
cursor.
- If \b is true, the cursor keeps its current position when text gets inserted at the positing of the cursor.
- If \b is false, the cursor moves along with the inserted text.
+ If \a b is true, the cursor keeps its current position when text gets inserted at the positing of the cursor.
+ If \a b is false, the cursor moves along with the inserted text.
The default is false.
diff --git a/src/gui/text/qtextcursor_p.h b/src/gui/text/qtextcursor_p.h
index 4e36b95..4b3262f 100644
--- a/src/gui/text/qtextcursor_p.h
+++ b/src/gui/text/qtextcursor_p.h
@@ -114,6 +114,7 @@ public:
int currentCharFormat;
uint visualNavigation : 1;
uint keepPositionOnInsert : 1;
+ uint changed : 1;
};
QT_END_NAMESPACE
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index e0386f1..195dc28 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -583,11 +583,11 @@ void QTextDocument::setDefaultTextOption(const QTextOption &option)
void QTextDocument::markContentsDirty(int from, int length)
{
Q_D(QTextDocument);
- if (!d->inContentsChange)
- d->beginEditBlock();
d->documentChange(from, length);
- if (!d->inContentsChange)
- d->endEditBlock();
+ if (!d->inContentsChange) {
+ d->lout->documentChanged(d->docChangeFrom, d->docChangeOldLength, d->docChangeLength);
+ d->docChangeFrom = -1;
+ }
}
/*!
diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp
index f3cd481..7b3f985 100644
--- a/src/gui/text/qtextdocument_p.cpp
+++ b/src/gui/text/qtextdocument_p.cpp
@@ -205,6 +205,7 @@ QTextDocumentPrivate::QTextDocumentPrivate()
undoEnabled = true;
inContentsChange = false;
+ blockCursorAdjustment = false;
defaultTextOption.setTabStop(80); // same as in qtextengine.cpp
defaultTextOption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
@@ -234,17 +235,17 @@ void QTextDocumentPrivate::init()
void QTextDocumentPrivate::clear()
{
Q_Q(QTextDocument);
- for (int i = 0; i < cursors.count(); ++i) {
- cursors.at(i)->setPosition(0);
- cursors.at(i)->currentCharFormat = -1;
- cursors.at(i)->anchor = 0;
- cursors.at(i)->adjusted_anchor = 0;
+
+ foreach (QTextCursorPrivate *curs, cursors) {
+ curs->setPosition(0);
+ curs->currentCharFormat = -1;
+ curs->anchor = 0;
+ curs->adjusted_anchor = 0;
}
QList<QTextCursorPrivate *>oldCursors = cursors;
QT_TRY{
cursors.clear();
- changedCursors.clear();
QMap<int, QTextObject *>::Iterator objectIt = objects.begin();
while (objectIt != objects.end()) {
@@ -287,8 +288,8 @@ void QTextDocumentPrivate::clear()
QTextDocumentPrivate::~QTextDocumentPrivate()
{
- for (int i = 0; i < cursors.count(); ++i)
- cursors.at(i)->priv = 0;
+ foreach (QTextCursorPrivate *curs, cursors)
+ curs->priv = 0;
cursors.clear();
undoState = 0;
undoEnabled = true;
@@ -669,7 +670,14 @@ void QTextDocumentPrivate::remove(int pos, int length, QTextUndoCommand::Operati
{
if (length == 0)
return;
+ blockCursorAdjustment = true;
move(pos, -1, length, op);
+ blockCursorAdjustment = false;
+ foreach (QTextCursorPrivate *curs, cursors) {
+ if (curs->adjustPosition(pos, -length, op) == QTextCursorPrivate::CursorMoved) {
+ curs->changed = true;
+ }
+ }
}
void QTextDocumentPrivate::setCharFormat(int pos, int length, const QTextCharFormat &newFormat, FormatChangeMode mode)
@@ -1221,10 +1229,15 @@ void QTextDocumentPrivate::finishEdit()
}
}
- while (!changedCursors.isEmpty()) {
- QTextCursorPrivate *curs = changedCursors.takeFirst();
- emit q->cursorPositionChanged(QTextCursor(curs));
+ QList<QTextCursor> changedCursors;
+ foreach (QTextCursorPrivate *curs, cursors) {
+ if (curs->changed) {
+ curs->changed = false;
+ changedCursors.append(QTextCursor(curs));
+ }
}
+ foreach (const QTextCursor &cursor, changedCursors)
+ emit q->cursorPositionChanged(cursor);
contentsChanged();
@@ -1266,11 +1279,13 @@ void QTextDocumentPrivate::adjustDocumentChangesAndCursors(int from, int addedOr
if (!editBlock)
++revision;
- for (int i = 0; i < cursors.size(); ++i) {
- QTextCursorPrivate *curs = cursors.at(i);
- if (curs->adjustPosition(from, addedOrRemoved, op) == QTextCursorPrivate::CursorMoved) {
- if (!changedCursors.contains(curs))
- changedCursors.append(curs);
+ if (blockCursorAdjustment) {
+ ; // postpone, will be called again from QTextDocumentPrivate::remove()
+ } else {
+ foreach (QTextCursorPrivate *curs, cursors) {
+ if (curs->adjustPosition(from, addedOrRemoved, op) == QTextCursorPrivate::CursorMoved) {
+ curs->changed = true;
+ }
}
}
@@ -1693,8 +1708,8 @@ bool QTextDocumentPrivate::ensureMaximumBlockCount()
void QTextDocumentPrivate::aboutToRemoveCell(int from, int to)
{
Q_ASSERT(from <= to);
- for (int i = 0; i < cursors.size(); ++i)
- cursors.at(i)->aboutToRemoveCell(from, to);
+ foreach (QTextCursorPrivate *curs, cursors)
+ curs->aboutToRemoveCell(from, to);
}
QT_END_NAMESPACE
diff --git a/src/gui/text/qtextdocument_p.h b/src/gui/text/qtextdocument_p.h
index d1bd698..b46d01c 100644
--- a/src/gui/text/qtextdocument_p.h
+++ b/src/gui/text/qtextdocument_p.h
@@ -277,7 +277,7 @@ public:
void documentChange(int from, int length);
inline void addCursor(QTextCursorPrivate *c) { cursors.append(c); }
- inline void removeCursor(QTextCursorPrivate *c) { cursors.removeAll(c); changedCursors.removeAll(c); }
+ inline void removeCursor(QTextCursorPrivate *c) { cursors.removeAll(c); }
QTextFrame *frameAt(int pos) const;
QTextFrame *rootFrame() const;
@@ -329,8 +329,7 @@ private:
BlockMap blocks;
int initialBlockCharFormatIndex;
- QList<QTextCursorPrivate*> cursors;
- QList<QTextCursorPrivate*> changedCursors;
+ QList<QTextCursorPrivate *> cursors;
QMap<int, QTextObject *> objects;
QMap<QUrl, QVariant> resources;
QMap<QUrl, QVariant> cachedResources;
@@ -346,6 +345,7 @@ public:
int maximumBlockCount;
uint needsEnsureMaximumBlockCount : 1;
uint inContentsChange : 1;
+ uint blockCursorAdjustment : 1;
QSizeF pageSize;
QString title;
QString url;
diff --git a/src/gui/text/qtextoption.cpp b/src/gui/text/qtextoption.cpp
index 8f31e46..9eeec0b 100644
--- a/src/gui/text/qtextoption.cpp
+++ b/src/gui/text/qtextoption.cpp
@@ -392,7 +392,12 @@ QList<QTextOption::Tab> QTextOption::tabs() const
/*!
\fn Tab::Tab(qreal pos, TabType tabType, QChar delim = QChar())
- Creates a tab with the given position, tab type, and (for DelimiterTab) delimiter
+
+ Creates a tab with the given position, tab type, and delimiter
+ (\a pos, \a tabType, \a delim).
+
+ \note \a delim is only used when \a tabType is DelimiterTab.
+
\since 4.7
*/
diff --git a/src/gui/text/qtexttable.cpp b/src/gui/text/qtexttable.cpp
index 5100176..e3985ce 100644
--- a/src/gui/text/qtexttable.cpp
+++ b/src/gui/text/qtexttable.cpp
@@ -754,19 +754,39 @@ void QTextTable::insertColumns(int pos, int num)
QTextFormatCollection *c = p->formatCollection();
p->beginEditBlock();
+ QList<int> extendedSpans;
for (int i = 0; i < d->nRows; ++i) {
int cell;
if (i == d->nRows - 1 && pos == d->nCols)
cell = d->fragment_end;
else
cell = d->grid[i*d->nCols + pos];
- QTextDocumentPrivate::FragmentIterator it(&p->fragmentMap(), cell);
- QTextCharFormat fmt = c->charFormat(it->format);
if (pos > 0 && pos < d->nCols && cell == d->grid[i*d->nCols + pos - 1]) {
// cell spans the insertion place, extend it
- fmt.setTableCellColumnSpan(fmt.tableCellColumnSpan() + num);
- p->setCharFormat(it.position(), 1, fmt);
+ if (!extendedSpans.contains(cell)) {
+ QTextDocumentPrivate::FragmentIterator it(&p->fragmentMap(), cell);
+ QTextCharFormat fmt = c->charFormat(it->format);
+ fmt.setTableCellColumnSpan(fmt.tableCellColumnSpan() + num);
+ p->setCharFormat(it.position(), 1, fmt);
+ d->dirty = true;
+ extendedSpans << cell;
+ }
} else {
+ /* If the next cell is spanned from the row above, we need to find the right position
+ to insert to */
+ if (i > 0 && pos < d->nCols && cell == d->grid[(i-1) * d->nCols + pos]) {
+ int gridIndex = i*d->nCols + pos;
+ const int gridEnd = d->nRows * d->nCols - 1;
+ while (gridIndex < gridEnd && cell == d->grid[gridIndex]) {
+ ++gridIndex;
+ }
+ if (gridIndex == gridEnd)
+ cell = d->fragment_end;
+ else
+ cell = d->grid[gridIndex];
+ }
+ QTextDocumentPrivate::FragmentIterator it(&p->fragmentMap(), cell);
+ QTextCharFormat fmt = c->charFormat(it->format);
fmt.setTableCellRowSpan(1);
fmt.setTableCellColumnSpan(1);
Q_ASSERT(fmt.objectIndex() == objectIndex());
diff --git a/src/gui/util/qcompleter.cpp b/src/gui/util/qcompleter.cpp
index 1abc2d9..04d6de9 100644
--- a/src/gui/util/qcompleter.cpp
+++ b/src/gui/util/qcompleter.cpp
@@ -154,6 +154,7 @@
#include "QtGui/qevent.h"
#include "QtGui/qheaderview.h"
#include "QtGui/qdesktopwidget.h"
+#include "QtGui/qlineedit.h"
QT_BEGIN_NAMESPACE
@@ -920,8 +921,9 @@ void QCompleterPrivate::showPopup(const QRect& rect)
void QCompleterPrivate::_q_fileSystemModelDirectoryLoaded(const QString &path)
{
Q_Q(QCompleter);
+ QLineEdit *lineEdit = qobject_cast<QLineEdit *>(widget);
//the path given by QFileSystemModel does not end with /
- if (!q->completionPrefix().isEmpty() && q->completionPrefix() != path + QLatin1Char('/'))
+ if (lineEdit && !lineEdit->text().isEmpty() && !q->completionPrefix().isEmpty() && q->completionPrefix() != path + QLatin1Char('/'))
q->complete();
}
diff --git a/src/imports/gestures/qdeclarativegesturearea.cpp b/src/imports/gestures/qdeclarativegesturearea.cpp
index e5647bd..243ba0f 100644
--- a/src/imports/gestures/qdeclarativegesturearea.cpp
+++ b/src/imports/gestures/qdeclarativegesturearea.cpp
@@ -130,7 +130,7 @@ public:
GestureArea is an invisible item: it is never painted.
- \sa Gesture, MouseArea, {declarative/touchinteraction/gestures}{Gestures example}
+ \sa MouseArea, {declarative/touchinteraction/gestures}{Gestures example}
*/
/*!
diff --git a/src/imports/particles/qdeclarativeparticles.cpp b/src/imports/particles/qdeclarativeparticles.cpp
index 630c068..8fe8a9f 100644
--- a/src/imports/particles/qdeclarativeparticles.cpp
+++ b/src/imports/particles/qdeclarativeparticles.cpp
@@ -158,6 +158,11 @@ void QDeclarativeParticleMotion::destroy(QDeclarativeParticle &particle)
\brief The ParticleMotionLinear object moves particles linearly.
\sa Particles
+
+ This is the default motion, and moves the particles according to the
+ properties specified in the Particles element.
+
+ It has no further properties.
*/
/*!
@@ -178,6 +183,13 @@ void QDeclarativeParticleMotionLinear::advance(QDeclarativeParticle &p, int inte
\since 4.7
\brief The ParticleMotionGravity object moves particles towards a point.
+ This motion attracts the particles to the specified point with the specified acceleration.
+ To mimic earth gravity, set yattractor to -6360000 and acceleration to 9.8.
+
+ The defaults are all 0, not earth gravity, and so no motion will occur without setting
+ at least the acceleration property.
+
+
\sa Particles
*/
@@ -186,6 +198,7 @@ void QDeclarativeParticleMotionLinear::advance(QDeclarativeParticle &p, int inte
\class QDeclarativeParticleMotionGravity
\ingroup group_effects
\brief The QDeclarativeParticleMotionGravity class moves the particles towards a point.
+
*/
/*!
@@ -305,14 +318,14 @@ Rectangle {
*/
/*!
- \qmlproperty real QDeclarativeParticleMotionWander::xvariance
- \qmlproperty real QDeclarativeParticleMotionWander::yvariance
+ \qmlproperty real ParticleMotionWander::xvariance
+ \qmlproperty real ParticleMotionWander::yvariance
These properties set the amount to wander in the x and y directions.
*/
/*!
- \qmlproperty real QDeclarativeParticleMotionWander::pace
+ \qmlproperty real ParticleMotionWander::pace
This property holds how quickly the paricles will move from side to side.
*/
@@ -437,7 +450,7 @@ public:
, lifeSpanDev(1000), fadeInDur(200), fadeOutDur(300)
, angle(0), angleDev(0), velocity(0), velocityDev(0), emissionCarry(0.)
, addParticleTime(0), addParticleCount(0), lastAdvTime(0)
- , motion(0), pendingPixmapCache(false), clock(this)
+ , motion(0), clock(this)
{
}
@@ -456,7 +469,7 @@ public:
void updateOpacity(QDeclarativeParticle &p, int age);
QUrl url;
- QPixmap image;
+ QDeclarativePixmap image;
int count;
int emissionRate;
qreal emissionVariance;
@@ -475,7 +488,6 @@ public:
QDeclarativeParticleMotion *motion;
QDeclarativeParticlesPainter *paintItem;
- bool pendingPixmapCache;
QList<QPair<int, int> > bursts;//countLeft, emissionRate pairs
QList<QDeclarativeParticle> particles;
@@ -709,9 +721,6 @@ QDeclarativeParticles::QDeclarativeParticles(QDeclarativeItem *parent)
QDeclarativeParticles::~QDeclarativeParticles()
{
- Q_D(QDeclarativeParticles);
- if (d->pendingPixmapCache)
- QDeclarativePixmapCache::cancel(d->url, this);
}
/*!
@@ -732,10 +741,8 @@ QUrl QDeclarativeParticles::source() const
void QDeclarativeParticles::imageLoaded()
{
Q_D(QDeclarativeParticles);
- d->pendingPixmapCache = false;
- QString errorString;
- if (QDeclarativePixmapCache::get(d->url, &d->image, &errorString)==QDeclarativePixmapReply::Error)
- qmlInfo(this) << errorString;
+ if (d->image.isError())
+ qmlInfo(this) << d->image.error();
d->paintItem->updateSize();
d->paintItem->update();
}
@@ -747,27 +754,20 @@ void QDeclarativeParticles::setSource(const QUrl &name)
if ((d->url.isEmpty() == name.isEmpty()) && name == d->url)
return;
- if (d->pendingPixmapCache) {
- QDeclarativePixmapCache::cancel(d->url, this);
- d->pendingPixmapCache = false;
- }
if (name.isEmpty()) {
d->url = name;
- d->image = QPixmap();
+ d->image.clear(this);
d->paintItem->updateSize();
d->paintItem->update();
} else {
d->url = name;
Q_ASSERT(!name.isRelative());
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(d->url, &d->image, &errorString);
- if (status != QDeclarativePixmapReply::Ready && status != QDeclarativePixmapReply::Error) {
- QDeclarativePixmapReply *reply = QDeclarativePixmapCache::request(qmlEngine(this), d->url);
- connect(reply, SIGNAL(finished()), this, SLOT(imageLoaded()));
- d->pendingPixmapCache = true;
+ d->image.load(qmlEngine(this), d->url);
+ if (d->image.isLoading()) {
+ d->image.connectFinished(this, SLOT(imageLoaded()));
} else {
- if (status == QDeclarativePixmapReply::Error)
- qmlInfo(this) << errorString;
+ if (d->image.isError())
+ qmlInfo(this) << d->image.error();
//### unify with imageLoaded
d->paintItem->updateSize();
d->paintItem->update();
@@ -1245,7 +1245,7 @@ void QDeclarativeParticles::burst(int count, int emissionRate)
void QDeclarativeParticlesPainter::updateSize()
{
- if (!d->_componentComplete)
+ if (!d->componentComplete)
return;
const int parentX = parentItem()->x();
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 1afabec..9e2b85e 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -286,13 +286,8 @@ bool QHttpNetworkConnectionPrivate::handleAuthenticateChallenge(QAbstractSocket
resend = false;
//create the response header to be used with QAuthenticatorPrivate.
- QHttpResponseHeader responseHeader;
QList<QPair<QByteArray, QByteArray> > fields = reply->header();
- QList<QPair<QByteArray, QByteArray> >::const_iterator it = fields.constBegin();
- while (it != fields.constEnd()) {
- responseHeader.addValue(QString::fromLatin1(it->first), QString::fromUtf8(it->second));
- it++;
- }
+
//find out the type of authentication protocol requested.
QAuthenticatorPrivate::Method authMethod = reply->d_func()->authenticationMethod(isProxy);
if (authMethod != QAuthenticatorPrivate::None) {
@@ -310,7 +305,7 @@ bool QHttpNetworkConnectionPrivate::handleAuthenticateChallenge(QAbstractSocket
if (auth->isNull())
auth->detach();
QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(*auth);
- priv->parseHttpResponse(responseHeader, isProxy);
+ priv->parseHttpResponse(fields, isProxy);
if (priv->phase == QAuthenticatorPrivate::Done) {
if ((isProxy && pendingProxyAuthSignal) ||(!isProxy && pendingAuthSignal)) {
diff --git a/src/network/access/qnetworkaccesshttpbackend.cpp b/src/network/access/qnetworkaccesshttpbackend.cpp
index a6c5c02..f617244 100644
--- a/src/network/access/qnetworkaccesshttpbackend.cpp
+++ b/src/network/access/qnetworkaccesshttpbackend.cpp
@@ -944,10 +944,10 @@ bool QNetworkAccessHttpBackend::sendCacheContents(const QNetworkCacheMetaData &m
checkForRedirect(status);
- emit metaDataChanged();
-
- // invoke this asynchronously, else Arora/QtDemoBrowser don't like cached downloads
- // see task 250221 / 251801
+ // This needs to be emitted in the event loop because it can be reached at
+ // the direct code path of qnam.get(...) before the user has a chance
+ // to connect any signals.
+ QMetaObject::invokeMethod(this, "metaDataChanged", Qt::QueuedConnection);
qRegisterMetaType<QIODevice*>("QIODevice*");
QMetaObject::invokeMethod(this, "writeDownstreamData", Qt::QueuedConnection, Q_ARG(QIODevice*, contents));
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index 911eadc..fa592c2 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -215,7 +215,7 @@ QT_BEGIN_NAMESPACE
\since 4.7
- \value AuthenticationReuseControlAttribute
+ \value AuthenticationReuseAttribute
Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic)
Indicates whether to use cached authorization credentials in the request,
if available. If this is set to QNetworkRequest::Manual and the authentication
@@ -230,6 +230,14 @@ QT_BEGIN_NAMESPACE
\since 4.7
+ \omitvalue MaximumDownloadBufferSizeAttribute
+ \since 4.7
+ \internal
+
+ \omitvalue DownloadBufferAttribute
+ \since 4.7
+ \internal
+
\value User
Special type. Additional information can be passed in
QVariants with types ranging from User to UserMax. The default
diff --git a/src/network/access/qnetworkrequest.h b/src/network/access/qnetworkrequest.h
index d2945c4..cdadf0f 100644
--- a/src/network/access/qnetworkrequest.h
+++ b/src/network/access/qnetworkrequest.h
@@ -82,6 +82,8 @@ public:
CookieLoadControlAttribute,
AuthenticationReuseAttribute,
CookieSaveControlAttribute,
+ MaximumDownloadBufferSizeAttribute, // internal
+ DownloadBufferAttribute, // internal
User = 1000,
UserMax = 32767
diff --git a/src/network/kernel/qauthenticator.cpp b/src/network/kernel/qauthenticator.cpp
index e4023c8..d61c686 100644
--- a/src/network/kernel/qauthenticator.cpp
+++ b/src/network/kernel/qauthenticator.cpp
@@ -50,6 +50,8 @@
#include <qdatastream.h>
#include <qendian.h>
#include <qstring.h>
+#include <qdatetime.h>
+
QT_BEGIN_NAMESPACE
@@ -83,6 +85,44 @@ static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phas
Note that, in particular, NTLM version 2 is not supported.
+ \section1 Options
+
+ In addition to the username and password required for authentication, a
+ QAuthenticator object can also contain additional options. The
+ options() function can be used to query incoming options sent by
+ the server; the setOption() function can
+ be used to set outgoing options, to be processed by the authenticator
+ calculation. The options accepted and provided depend on the authentication
+ type (see method()).
+
+ The following tables list known incoming options as well as accepted
+ outgoing options. The list of incoming options is not exhaustive, since
+ servers may include additional information at any time. The list of
+ outgoing options is exhaustive, however, and no unknown options will be
+ treated or sent back to the server.
+
+ \section2 Basic
+
+ \table
+ \header \o Option \o Direction \o Description
+ \row \o \tt{realm} \o Incoming \o Contains the realm of the authentication, the same as realm()
+ \endtable
+
+ The Basic authentication mechanism supports no outgoing options.
+
+ \section2 NTLM version 1
+
+ The NTLM authentication mechanism currently supports no incoming or outgoing options.
+
+ \section2 Digest-MD5
+
+ \table
+ \header \o Option \o Direction \o Description
+ \row \o \tt{realm} \o Incoming \o Contains the realm of the authentication, the same as realm()
+ \endtable
+
+ The Digest-MD5 authentication mechanism supports no outgoing options.
+
\sa QSslSocket
*/
@@ -138,7 +178,8 @@ bool QAuthenticator::operator==(const QAuthenticator &other) const
return d->user == other.d->user
&& d->password == other.d->password
&& d->realm == other.d->realm
- && d->method == other.d->method;
+ && d->method == other.d->method
+ && d->options == other.d->options;
}
/*!
@@ -162,7 +203,18 @@ QString QAuthenticator::user() const
void QAuthenticator::setUser(const QString &user)
{
detach();
- d->user = user;
+
+ int separatorPosn = 0;
+ separatorPosn = user.indexOf(QLatin1String("\\"));
+
+ if (separatorPosn == -1) {
+ //No domain name present
+ d->user = user;
+ } else {
+ //domain name is present
+ d->realm = user.left(separatorPosn);
+ d->user = user.mid(separatorPosn+1);
+ }
}
/*!
@@ -205,9 +257,49 @@ QString QAuthenticator::realm() const
return d ? d->realm : QString();
}
+/*!
+ \since 4.7
+ Returns the value related to option \a opt if it was set by the server.
+ See \l{QAuthenticator#Options} for more information on incoming options.
+ If option \a opt isn't found, an invalid QVariant will be returned.
+
+ \sa options(), QAuthenticator#Options
+*/
+QVariant QAuthenticator::option(const QString &opt) const
+{
+ return d ? d->options.value(opt) : QVariant();
+}
/*!
- returns true if the authenticator is null.
+ \since 4.7
+ Returns all incoming options set in this QAuthenticator object by parsing
+ the server reply. See \l{QAuthenticator#Options} for more information
+ on incoming options.
+
+ \sa option(), QAuthenticator#Options
+*/
+QVariantHash QAuthenticator::options() const
+{
+ return d ? d->options : QVariantHash();
+}
+
+/*!
+ \since 4.7
+
+ Sets the outgoing option \a opt to value \a value.
+ See \l{QAuthenticator#Options} for more information on outgoing options.
+
+ \sa options(), option(), QAuthenticator#Options
+*/
+void QAuthenticator::setOption(const QString &opt, const QVariant &value)
+{
+ detach();
+ d->options.insert(opt, value);
+}
+
+
+/*!
+ Returns true if the authenticator is null.
*/
bool QAuthenticator::isNull() const
{
@@ -228,7 +320,20 @@ QAuthenticatorPrivate::QAuthenticatorPrivate()
#ifndef QT_NO_HTTP
void QAuthenticatorPrivate::parseHttpResponse(const QHttpResponseHeader &header, bool isProxy)
{
- QList<QPair<QString, QString> > values = header.values();
+ const QList<QPair<QString, QString> > values = header.values();
+ QList<QPair<QByteArray, QByteArray> > rawValues;
+
+ QList<QPair<QString, QString> >::const_iterator it, end;
+ for (it = values.constBegin(), end = values.constEnd(); it != end; ++it)
+ rawValues.append(qMakePair(it->first.toLatin1(), it->second.toUtf8()));
+
+ // continue in byte array form
+ parseHttpResponse(rawValues, isProxy);
+}
+#endif
+
+void QAuthenticatorPrivate::parseHttpResponse(const QList<QPair<QByteArray, QByteArray> > &values, bool isProxy)
+{
const char *search = isProxy ? "proxy-authenticate" : "www-authenticate";
method = None;
@@ -242,38 +347,40 @@ void QAuthenticatorPrivate::parseHttpResponse(const QHttpResponseHeader &header,
authentication parameters.
*/
- QString headerVal;
+ QByteArray headerVal;
for (int i = 0; i < values.size(); ++i) {
- const QPair<QString, QString> &current = values.at(i);
- if (current.first.toLower() != QLatin1String(search))
+ const QPair<QByteArray, QByteArray> &current = values.at(i);
+ if (current.first.toLower() != search)
continue;
- QString str = current.second;
- if (method < Basic && str.startsWith(QLatin1String("Basic"), Qt::CaseInsensitive)) {
- method = Basic; headerVal = str.mid(6);
- } else if (method < Ntlm && str.startsWith(QLatin1String("NTLM"), Qt::CaseInsensitive)) {
+ QByteArray str = current.second.toLower();
+ if (method < Basic && str.startsWith("basic")) {
+ method = Basic;
+ headerVal = current.second.mid(6);
+ } else if (method < Ntlm && str.startsWith("ntlm")) {
method = Ntlm;
- headerVal = str.mid(5);
- } else if (method < DigestMd5 && str.startsWith(QLatin1String("Digest"), Qt::CaseInsensitive)) {
+ headerVal = current.second.mid(5);
+ } else if (method < DigestMd5 && str.startsWith("digest")) {
method = DigestMd5;
- headerVal = str.mid(7);
+ headerVal = current.second.mid(7);
}
}
- challenge = headerVal.trimmed().toLatin1();
+ challenge = headerVal.trimmed();
QHash<QByteArray, QByteArray> options = parseDigestAuthenticationChallenge(challenge);
switch(method) {
case Basic:
- realm = QString::fromLatin1(options.value("realm"));
+ if(realm.isEmpty())
+ this->options[QLatin1String("realm")] = realm = QString::fromLatin1(options.value("realm"));
if (user.isEmpty())
phase = Done;
break;
case Ntlm:
// #### extract from header
- realm.clear();
break;
case DigestMd5: {
- realm = QString::fromLatin1(options.value("realm"));
+ if(realm.isEmpty())
+ this->options[QLatin1String("realm")] = realm = QString::fromLatin1(options.value("realm"));
if (options.value("stale").toLower() == "true")
phase = Start;
if (user.isEmpty())
@@ -286,7 +393,6 @@ void QAuthenticatorPrivate::parseHttpResponse(const QHttpResponseHeader &header,
phase = Invalid;
}
}
-#endif
QByteArray QAuthenticatorPrivate::calculateResponse(const QByteArray &requestMethod, const QByteArray &path)
{
@@ -661,6 +767,20 @@ QByteArray QAuthenticatorPrivate::digestMd5Response(const QByteArray &challenge,
*/
#define NTLMSSP_NEGOTIATE_56 0x80000000
+/*
+ * AvId values
+ */
+#define AVTIMESTAMP 7
+
+//#define NTLMV1_CLIENT
+
+
+//************************Global variables***************************
+
+const int blockSize = 64; //As per RFC2104 Block-size is 512 bits
+const int nDigestLen = 16; //Trunctaion Length of the Hmac-Md5 digest
+const quint8 respversion = 1;
+const quint8 hirespversion = 1;
/* usage:
// fill up ctx with what we know.
@@ -803,6 +923,7 @@ public:
// extracted
QString targetNameStr, targetInfoStr;
+ QByteArray targetInfoBuff;
};
@@ -818,6 +939,7 @@ public:
// extracted
QByteArray lmResponseBuf, ntlmResponseBuf;
QString domainStr, userStr, workstationStr, sessionKeyStr;
+ QByteArray v2Hash;
};
@@ -899,7 +1021,7 @@ static QString qStringFromUcs2Le(const QByteArray& src)
return QString((const QChar *)src.data(), src.size()/2);
}
-
+#ifdef NTLMV1_CLIENT
static QByteArray qEncodeNtlmResponse(const QAuthenticatorPrivate *ctx, const QNtlmPhase2Block& ch)
{
QCryptographicHash md4(QCryptographicHash::Md4);
@@ -941,7 +1063,232 @@ static QByteArray qEncodeLmResponse(const QAuthenticatorPrivate *ctx, const QNtl
hash.fill(0);
return rc;
}
+#endif
+
+/*********************************************************************
+* Function Name: qEncodeHmacMd5
+* Params:
+* key: Type - QByteArray
+* - It is the Authentication key
+* message: Type - QByteArray
+* - This is the actual message which will be encoded
+* using HMacMd5 hash algorithm
+*
+* Return Value:
+* hmacDigest: Type - QByteArray
+*
+* Description:
+* This function will be used to encode the input message using
+* HMacMd5 hash algorithm.
+*
+* As per the RFC2104 the HMacMd5 algorithm can be specified
+* ---------------------------------------
+* MD5(K XOR opad, MD5(K XOR ipad, text))
+* ---------------------------------------
+*
+*********************************************************************/
+QByteArray qEncodeHmacMd5(QByteArray &key, const QByteArray &message)
+{
+ Q_ASSERT_X(!(message.isEmpty()),"qEncodeHmacMd5", "Empty message check");
+ Q_ASSERT_X(!(key.isEmpty()),"qEncodeHmacMd5", "Empty key check");
+
+ QCryptographicHash hash(QCryptographicHash::Md5);
+ QByteArray hMsg;
+
+ QByteArray iKeyPad(blockSize, 0x36);
+ QByteArray oKeyPad(blockSize, 0x5c);
+
+ hash.reset();
+ // Adjust the key length to blockSize
+
+ if(blockSize < key.length()) {
+ hash.addData(key);
+ key = hash.result(); //MD5 will always return 16 bytes length output
+ }
+
+ //Key will be <= 16 or 20 bytes as hash function (MD5 or SHA hash algorithms)
+ //key size can be max of Block size only
+ key = key.leftJustified(blockSize,0,true);
+
+ //iKeyPad, oKeyPad and key are all of same size "blockSize"
+
+ //xor of iKeyPad with Key and store the result into iKeyPad
+ for(int i = 0; i<key.size();i++) {
+ iKeyPad[i] = key[i]^iKeyPad[i];
+ }
+
+ //xor of oKeyPad with Key and store the result into oKeyPad
+ for(int i = 0; i<key.size();i++) {
+ oKeyPad[i] = key[i]^oKeyPad[i];
+ }
+
+ iKeyPad.append(message); // (K0 xor ipad) || text
+
+ hash.reset();
+ hash.addData(iKeyPad);
+ hMsg = hash.result();
+ //Digest gen after pass-1: H((K0 xor ipad)||text)
+
+ QByteArray hmacDigest;
+ oKeyPad.append(hMsg);
+ hash.reset();
+ hash.addData(oKeyPad);
+ hmacDigest = hash.result();
+ // H((K0 xor opad )|| H((K0 xor ipad) || text))
+
+ /*hmacDigest should not be less than half the length of the HMAC output
+ (to match the birthday attack bound) and not less than 80 bits
+ (a suitable lower bound on the number of bits that need to be
+ predicted by an attacker).
+ Refer RFC 2104 for more details on truncation part */
+
+ /*MD5 hash always returns 16 byte digest only and HMAC-MD5 spec
+ (RFC 2104) also says digest length should be 16 bytes*/
+ return hmacDigest;
+}
+
+static QByteArray qCreatev2Hash(const QAuthenticatorPrivate *ctx,
+ QNtlmPhase3Block *phase3)
+{
+ Q_ASSERT(phase3 != 0);
+ // since v2 Hash is need for both NTLMv2 and LMv2 it is calculated
+ // only once and stored and reused
+ if(phase3->v2Hash.size() == 0) {
+ QCryptographicHash md4(QCryptographicHash::Md4);
+ QByteArray passUnicode = qStringAsUcs2Le(ctx->password);
+ md4.addData(passUnicode.data(), passUnicode.size());
+
+ QByteArray hashKey = md4.result();
+ Q_ASSERT(hashKey.size() == 16);
+ // Assuming the user and domain is always unicode in challenge
+ QByteArray message =
+ qStringAsUcs2Le(ctx->user.toUpper()) +
+ qStringAsUcs2Le(ctx->realm);
+
+ phase3->v2Hash = qEncodeHmacMd5(hashKey, message);
+ }
+ return phase3->v2Hash;
+}
+
+static QByteArray clientChallenge(const QAuthenticatorPrivate *ctx)
+{
+ Q_ASSERT(ctx->cnonce.size() >= 8);
+ QByteArray clientCh = ctx->cnonce.right(8);
+ return clientCh;
+}
+
+// caller has to ensure a valid targetInfoBuff
+static bool qExtractServerTime(const QByteArray& targetInfoBuff,
+ quint64 *serverTime)
+{
+ Q_ASSERT(serverTime != 0);
+ bool retValue = false;
+ QDataStream ds(targetInfoBuff);
+ ds.setByteOrder(QDataStream::LittleEndian);
+
+ quint16 avId;
+ quint16 avLen;
+
+ ds >> avId;
+ ds >> avLen;
+ while(avId != 0) {
+ if(avId == AVTIMESTAMP) {
+ QByteArray timeArray(avLen, 0);
+ //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;
+}
+
+static QByteArray qEncodeNtlmv2Response(const QAuthenticatorPrivate *ctx,
+ const QNtlmPhase2Block& ch,
+ QNtlmPhase3Block *phase3)
+{
+ Q_ASSERT(phase3 != 0);
+ // return value stored in phase3
+ qCreatev2Hash(ctx, phase3);
+
+ QByteArray temp;
+ QDataStream ds(&temp, QIODevice::WriteOnly);
+ ds.setByteOrder(QDataStream::LittleEndian);
+
+ ds << respversion;
+ ds << hirespversion;
+ //Reserved
+ QByteArray reserved1(6, 0);
+ ds.writeRawData(reserved1.constData(), reserved1.size());
+
+ quint64 time = 0;
+
+ //if server sends time, use it instead of current time
+ if(!(ch.targetInfo.len && qExtractServerTime(ch.targetInfoBuff, &time))) {
+ QDateTime currentTime(QDate::currentDate(),
+ QTime::currentTime(), Qt::UTC);
+
+ // number of seconds between 1601 and epoc(1970)
+ // 369 years, 89 leap years
+ // ((369 * 365) + 89) * 24 * 3600 = 11644473600
+
+ time = Q_UINT64_C(currentTime.toTime_t() + 11644473600);
+
+ // represented as 100 nano seconds
+ time = Q_UINT64_C(time * 10000000);
+ }
+ ds << time;
+
+ //8 byte client challenge
+ QByteArray clientCh = clientChallenge(ctx);
+ ds.writeRawData(clientCh.constData(), clientCh.size());
+
+ //Reserved
+ QByteArray reserved2(4, 0);
+ ds.writeRawData(reserved2.constData(), reserved2.size());
+
+ if (ch.targetInfo.len > 0) {
+ ds.writeRawData(ch.targetInfoBuff.constData(),
+ ch.targetInfoBuff.size());
+ }
+
+ //Reserved
+ QByteArray reserved3(4, 0);
+ ds.writeRawData(reserved3.constData(), reserved3.size());
+
+ QByteArray message((const char*)ch.challenge, sizeof(ch.challenge));
+ message.append(temp);
+
+ QByteArray ntChallengeResp = qEncodeHmacMd5(phase3->v2Hash, message);
+ ntChallengeResp.append(temp);
+
+ return ntChallengeResp;
+}
+
+static QByteArray qEncodeLmv2Response(const QAuthenticatorPrivate *ctx,
+ const QNtlmPhase2Block& ch,
+ QNtlmPhase3Block *phase3)
+{
+ Q_ASSERT(phase3 != 0);
+ // return value stored in phase3
+ qCreatev2Hash(ctx, phase3);
+
+ QByteArray message((const char*)ch.challenge, sizeof(ch.challenge));
+ QByteArray clientCh = clientChallenge(ctx);
+
+ message.append(clientCh);
+
+ QByteArray lmChallengeResp = qEncodeHmacMd5(phase3->v2Hash, message);
+ lmChallengeResp.append(clientCh);
+
+ return lmChallengeResp;
+}
static bool qNtlmDecodePhase2(const QByteArray& data, QNtlmPhase2Block& ch)
{
@@ -976,7 +1323,10 @@ static bool qNtlmDecodePhase2(const QByteArray& data, QNtlmPhase2Block& ch)
}
if (ch.targetInfo.len > 0) {
- // UNUSED right now
+ if (ch.targetInfo.len + ch.targetInfo.offset > (unsigned)data.size())
+ return false;
+
+ ch.targetInfoBuff = data.mid(ch.targetInfo.offset, ch.targetInfo.len);
}
return true;
@@ -996,7 +1346,8 @@ static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phas
bool unicode = ch.flags & NTLMSSP_NEGOTIATE_UNICODE;
- ctx->realm = ch.targetNameStr;
+ if(ctx->realm.isEmpty())
+ ctx->realm = ch.targetNameStr;
pb.flags = NTLMSSP_NEGOTIATE_NTLM;
if (unicode)
@@ -1010,6 +1361,7 @@ static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phas
offset = qEncodeNtlmString(pb.domain, offset, ctx->realm, unicode);
pb.domainStr = ctx->realm;
+
offset = qEncodeNtlmString(pb.user, offset, ctx->user, unicode);
pb.userStr = ctx->user;
@@ -1017,11 +1369,23 @@ static QByteArray qNtlmPhase3(QAuthenticatorPrivate *ctx, const QByteArray& phas
pb.workstationStr = ctx->workstation;
// Get LM response
+#ifdef NTLMV1_CLIENT
pb.lmResponseBuf = qEncodeLmResponse(ctx, ch);
+#else
+ if (ch.targetInfo.len > 0) {
+ pb.lmResponseBuf = QByteArray();
+ } else {
+ pb.lmResponseBuf = qEncodeLmv2Response(ctx, ch, &pb);
+ }
+#endif
offset = qEncodeNtlmBuffer(pb.lmResponse, offset, pb.lmResponseBuf);
// Get NTLM response
+#ifdef NTLMV1_CLIENT
pb.ntlmResponseBuf = qEncodeNtlmResponse(ctx, ch);
+#else
+ pb.ntlmResponseBuf = qEncodeNtlmv2Response(ctx, ch, &pb);
+#endif
offset = qEncodeNtlmBuffer(pb.ntlmResponse, offset, pb.ntlmResponseBuf);
diff --git a/src/network/kernel/qauthenticator.h b/src/network/kernel/qauthenticator.h
index 13ce593..983b7c0 100644
--- a/src/network/kernel/qauthenticator.h
+++ b/src/network/kernel/qauthenticator.h
@@ -43,6 +43,7 @@
#define QAUTHENTICATOR_H
#include <QtCore/qstring.h>
+#include <QtCore/qvariant.h>
QT_BEGIN_HEADER
@@ -73,6 +74,10 @@ public:
QString realm() const;
+ QVariant option(const QString &opt) const;
+ QVariantHash options() const;
+ void setOption(const QString &opt, const QVariant &value);
+
bool isNull() const;
void detach();
private:
diff --git a/src/network/kernel/qauthenticator_p.h b/src/network/kernel/qauthenticator_p.h
index e9ce9ac..1096601 100644
--- a/src/network/kernel/qauthenticator_p.h
+++ b/src/network/kernel/qauthenticator_p.h
@@ -57,12 +57,13 @@
#include <qbytearray.h>
#include <qstring.h>
#include <qauthenticator.h>
+#include <qvariant.h>
QT_BEGIN_NAMESPACE
class QHttpResponseHeader;
-class QAuthenticatorPrivate
+class Q_AUTOTEST_EXPORT QAuthenticatorPrivate
{
public:
enum Method { None, Basic, Plain, Login, Ntlm, CramMd5, DigestMd5 };
@@ -71,7 +72,7 @@ public:
QAtomicInt ref;
QString user;
QString password;
- QHash<QByteArray, QByteArray> options;
+ QVariantHash options;
Method method;
QString realm;
QByteArray challenge;
@@ -102,6 +103,7 @@ public:
#ifndef QT_NO_HTTP
void parseHttpResponse(const QHttpResponseHeader &, bool isProxy);
#endif
+ void parseHttpResponse(const QList<QPair<QByteArray, QByteArray> >&, bool isProxy);
};
diff --git a/src/network/kernel/qhostaddress.cpp b/src/network/kernel/qhostaddress.cpp
index 5ae3acc..0bacf90 100644
--- a/src/network/kernel/qhostaddress.cpp
+++ b/src/network/kernel/qhostaddress.cpp
@@ -428,9 +428,9 @@ void QNetmaskAddress::setPrefixLength(QAbstractSocket::NetworkLayerProtocol prot
QHostAddress is normally used with the QTcpSocket, QTcpServer,
and QUdpSocket to connect to a host or to set up a server.
- A host address is set with setAddress(), checked for its type
- using isIPv4Address() or isIPv6Address(), and retrieved with
- toIPv4Address(), toIPv6Address(), or toString().
+ A host address is set with setAddress(), and retrieved with
+ toIPv4Address(), toIPv6Address(), or toString(). You can check the
+ type with protocol().
\note Please note that QHostAddress does not do DNS lookups.
QHostInfo is needed for that.
@@ -679,7 +679,8 @@ void QHostAddress::setAddress(const struct sockaddr *sockaddr)
For example, if the address is 127.0.0.1, the returned value is
2130706433 (i.e. 0x7f000001).
- This value is only valid if isIp4Addr() returns true.
+ This value is only valid if the Protocol() is
+ \l{QAbstractSocket::}{IPv4Protocol}.
\sa toString()
*/
@@ -704,7 +705,8 @@ QAbstractSocket::NetworkLayerProtocol QHostAddress::protocol() const
\snippet doc/src/snippets/code/src_network_kernel_qhostaddress.cpp 0
- This value is only valid if isIPv6Address() returns true.
+ This value is only valid if the protocol() is
+ \l{QAbstractSocket::}{IPv6Protocol}.
\sa toString()
*/
diff --git a/src/network/kernel/qnetworkproxy_mac.cpp b/src/network/kernel/qnetworkproxy_mac.cpp
index 1e22212..4139a7e 100644
--- a/src/network/kernel/qnetworkproxy_mac.cpp
+++ b/src/network/kernel/qnetworkproxy_mac.cpp
@@ -157,8 +157,10 @@ QList<QNetworkProxy> macQueryInternal(const QNetworkProxyQuery &query)
return result; // failed
}
- if (isHostExcluded(dict, query.peerHostName()))
+ if (isHostExcluded(dict, query.peerHostName())) {
+ CFRelease(dict);
return result; // no proxy for this host
+ }
// is there a PAC enabled? If so, use it first.
CFNumberRef pacEnabled;
@@ -222,6 +224,7 @@ QList<QNetworkProxy> macQueryInternal(const QNetworkProxyQuery &query)
result << https;
}
+ CFRelease(dict);
return result;
}
diff --git a/src/network/socket/qtcpserver.cpp b/src/network/socket/qtcpserver.cpp
index 55f926d..0640c7c 100644
--- a/src/network/socket/qtcpserver.cpp
+++ b/src/network/socket/qtcpserver.cpp
@@ -577,7 +577,7 @@ void QTcpServer::incomingConnection(int socketDescriptor)
/*!
This function is called by QTcpServer::incomingConnection()
- to add a socket to the list of pending incoming connections.
+ to add the \a socket to the list of pending incoming connections.
\note Don't forget to call this member from reimplemented
incomingConnection() if you do not want to break the
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index 809e8aa..f73068e 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -574,7 +574,7 @@ void QSslSocket::setProtocol(QSsl::SslProtocol protocol)
certificate is valid.
The default mode is AutoVerifyPeer, which tells QSslSocket to use
- VerifyPeer for clients, QueryPeer for clients.
+ VerifyPeer for clients and QueryPeer for servers.
\sa setPeerVerifyMode(), peerVerifyDepth(), mode()
*/
@@ -594,7 +594,7 @@ QSslSocket::PeerVerifyMode QSslSocket::peerVerifyMode() const
certificate is valid.
The default mode is AutoVerifyPeer, which tells QSslSocket to use
- VerifyPeer for clients, QueryPeer for clients.
+ VerifyPeer for clients and QueryPeer for servers.
Setting this mode after encryption has started has no effect on the
current connection.
@@ -1849,7 +1849,7 @@ QList<QSslCipher> QSslSocketPrivate::defaultCiphers()
*/
QList<QSslCipher> QSslSocketPrivate::supportedCiphers()
{
- QSslSocketPrivate::ensureCertsAndCiphersLoaded();
+ QSslSocketPrivate::ensureInitialized();
QMutexLocker locker(&globalData()->mutex);
return globalData()->supportedCiphers;
}
@@ -1879,7 +1879,7 @@ void QSslSocketPrivate::setDefaultSupportedCiphers(const QList<QSslCipher> &ciph
*/
QList<QSslCertificate> QSslSocketPrivate::defaultCaCertificates()
{
- QSslSocketPrivate::ensureCertsAndCiphersLoaded();
+ QSslSocketPrivate::ensureInitialized();
QMutexLocker locker(&globalData()->mutex);
return globalData()->config->caCertificates;
}
@@ -1962,7 +1962,7 @@ void QSslConfigurationPrivate::setDefaultConfiguration(const QSslConfiguration &
*/
void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPrivate *ptr)
{
- QSslSocketPrivate::ensureCertsAndCiphersLoaded();
+ QSslSocketPrivate::ensureInitialized();
QMutexLocker locker(&globalData()->mutex);
const QSslConfigurationPrivate *global = globalData()->config.constData();
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index b602b29..c297eea 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -74,9 +74,8 @@
QT_BEGIN_NAMESPACE
-bool QSslSocketPrivate::s_initialized = false;
-QBasicAtomicInt QSslSocketPrivate::s_CertsAndCiphersLoaded;
-Q_GLOBAL_STATIC(QMutex, s_CertsAndCiphersLoadedMutex);
+bool QSslSocketPrivate::s_libraryLoaded = false;
+bool QSslSocketPrivate::s_loadedCiphersAndCerts = false;
// Useful defines
#define SSL_ERRORSTR() QString::fromLocal8Bit(q_ERR_error_string(q_ERR_get_error(), NULL))
@@ -171,7 +170,7 @@ QSslSocketBackendPrivate::QSslSocketBackendPrivate()
session(0)
{
// Calls SSL_library_init().
- ensureCertsAndCiphersLoaded();
+ ensureInitialized();
}
QSslSocketBackendPrivate::~QSslSocketBackendPrivate()
@@ -200,7 +199,7 @@ QSslCipher QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(SSL_CIPHER *ciph
ciph.d->protocol = QSsl::SslV2;
else if (protoString == QLatin1String("TLSv1"))
ciph.d->protocol = QSsl::TlsV1;
-
+
if (descriptionList.at(2).startsWith(QLatin1String("Kx=")))
ciph.d->keyExchangeMethod = descriptionList.at(2).mid(3);
if (descriptionList.at(3).startsWith(QLatin1String("Au=")))
@@ -368,7 +367,7 @@ init_context:
// Set verification depth.
if (configuration.peerVerifyDepth != 0)
q_SSL_CTX_set_verify_depth(ctx, configuration.peerVerifyDepth);
-
+
// Create and initialize SSL session
if (!(ssl = q_SSL_new(ctx))) {
// ### Bad error code
@@ -422,18 +421,18 @@ void QSslSocketPrivate::deinitialize()
bool QSslSocketPrivate::supportsSsl()
{
- return ensureInitialized();
+ return ensureLibraryLoaded();
}
-bool QSslSocketPrivate::ensureInitialized()
+bool QSslSocketPrivate::ensureLibraryLoaded()
{
if (!q_resolveOpenSslSymbols())
return false;
// Check if the library itself needs to be initialized.
QMutexLocker locker(openssl_locks()->initLock());
- if (!s_initialized) {
- s_initialized = true;
+ if (!s_libraryLoaded) {
+ s_libraryLoaded = true;
// Initialize OpenSSL.
q_CRYPTO_set_id_callback(id_function);
@@ -474,25 +473,15 @@ bool QSslSocketPrivate::ensureInitialized()
return true;
}
-/*!
- \internal
-
- Declared static in QSslSocketPrivate, makes sure the SSL libraries have
- been initialized.
-*/
-
-void QSslSocketPrivate::ensureCertsAndCiphersLoaded()
+void QSslSocketPrivate::ensureCiphersAndCertsLoaded()
{
- // use double-checked locking to speed up this function
- if (s_CertsAndCiphersLoaded)
+ QMutexLocker locker(openssl_locks()->initLock());
+ if (s_loadedCiphersAndCerts)
return;
+ s_loadedCiphersAndCerts = true;
- QMutexLocker locker(s_CertsAndCiphersLoadedMutex());
- if (s_CertsAndCiphersLoaded)
- return;
+ resetDefaultCiphers();
- if (!supportsSsl())
- return;
//load symbols needed to receive certificates from system store
#if defined(Q_OS_MAC)
QLibrary securityLib("/System/Library/Frameworks/Security.framework/Versions/Current/Security");
@@ -528,12 +517,22 @@ void QSslSocketPrivate::ensureCertsAndCiphersLoaded()
qWarning("could not load crypt32 library"); // should never happen
}
#endif
- resetDefaultCiphers();
setDefaultCaCertificates(systemCaCertificates());
- // we need to make sure that s_CertsAndCiphersLoaded is executed after the library loading above
- // (the compiler/processor might reorder instructions otherwise)
- if (!s_CertsAndCiphersLoaded.testAndSetRelease(0, 1))
- Q_ASSERT_X(false, "certificate store", "certificate store has already been initialized!");
+}
+
+/*!
+ \internal
+
+ Declared static in QSslSocketPrivate, makes sure the SSL libraries have
+ been initialized.
+*/
+
+void QSslSocketPrivate::ensureInitialized()
+{
+ if (!supportsSsl())
+ return;
+
+ ensureCiphersAndCertsLoaded();
}
/*!
@@ -618,6 +617,11 @@ void QCertificateRetriever::retrieveNextCertificate()
void QCertificateRetriever::RunL()
{
+ QT_TRYCATCH_LEAVING(run());
+}
+
+void QCertificateRetriever::run()
+{
switch (state) {
case Initializing:
list();
@@ -820,7 +824,7 @@ void QSslSocketBackendPrivate::transmit()
bool transmitting;
do {
transmitting = false;
-
+
// If the connection is secure, we can transfer data from the write
// buffer (in plain text) to the write BIO through SSL_write.
if (connectionEncrypted && !writeBuffer.isEmpty()) {
@@ -967,8 +971,20 @@ void QSslSocketBackendPrivate::transmit()
#endif
plainSocket->disconnectFromHost();
break;
+ case SSL_ERROR_SYSCALL: // some IO error
+ case SSL_ERROR_SSL: // error in the SSL library
+ // we do not know exactly what the error is, nor whether we can recover from it,
+ // so just return to prevent an endless loop in the outer "while" statement
+ q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(SSL_ERRORSTR()));
+ q->setSocketError(QAbstractSocket::UnknownSocketError);
+ emit q->error(QAbstractSocket::UnknownSocketError);
+ return;
default:
- // ### Handle errors better.
+ // SSL_ERROR_WANT_CONNECT, SSL_ERROR_WANT_ACCEPT: can only happen with a
+ // BIO_s_connect() or BIO_s_accept(), which we do not call.
+ // SSL_ERROR_WANT_X509_LOOKUP: can only happen with a
+ // SSL_CTX_set_client_cert_cb(), which we do not call.
+ // So this default case should never be triggered.
q->setErrorString(QSslSocket::tr("Error while reading: %1").arg(SSL_ERRORSTR()));
q->setSocketError(QAbstractSocket::UnknownSocketError);
emit q->error(QAbstractSocket::UnknownSocketError);
@@ -1102,17 +1118,16 @@ bool QSslSocketBackendPrivate::startHandshake()
QString peerName = (verificationPeerName.isEmpty () ? q->peerName() : verificationPeerName);
QString commonName = configuration.peerCertificate.subjectInfo(QSslCertificate::CommonName);
- QRegExp regexp(commonName, Qt::CaseInsensitive, QRegExp::Wildcard);
- if (!regexp.exactMatch(peerName)) {
+ if (!isMatchingHostname(commonName.toLower(), peerName.toLower())) {
bool matched = false;
foreach (const QString &altName, configuration.peerCertificate
.alternateSubjectNames().values(QSsl::DnsEntry)) {
- regexp.setPattern(altName);
- if (regexp.exactMatch(peerName)) {
+ if (isMatchingHostname(altName.toLower(), peerName.toLower())) {
matched = true;
break;
}
}
+
if (!matched) {
// No matches in common names or alternate names.
QSslError error(QSslError::HostNameMismatch, configuration.peerCertificate);
@@ -1242,4 +1257,39 @@ QList<QSslCertificate> QSslSocketBackendPrivate::STACKOFX509_to_QSslCertificates
return certificates;
}
+bool QSslSocketBackendPrivate::isMatchingHostname(const QString &cn, const QString &hostname)
+{
+ int wildcard = cn.indexOf(QLatin1Char('*'));
+
+ // Check this is a wildcard cert, if not then just compare the strings
+ if (wildcard < 0)
+ return cn == hostname;
+
+ int firstCnDot = cn.indexOf(QLatin1Char('.'));
+ int secondCnDot = cn.indexOf(QLatin1Char('.'), firstCnDot+1);
+
+ // Check at least 3 components
+ if ((-1 == secondCnDot) || (secondCnDot+1 >= cn.length()))
+ return false;
+
+ // Check * is last character of 1st component (ie. there's a following .)
+ if (wildcard+1 != firstCnDot)
+ return false;
+
+ // Check only one star
+ if (cn.lastIndexOf(QLatin1Char('*')) != wildcard)
+ return false;
+
+ // Check characters preceding * (if any) match
+ if (wildcard && (hostname.leftRef(wildcard) != cn.leftRef(wildcard)))
+ return false;
+
+ // Check characters following first . match
+ if (hostname.midRef(hostname.indexOf(QLatin1Char('.'))) != cn.midRef(firstCnDot))
+ return false;
+
+ // Ok, I guess this was a wildcard CN and the hostname matches.
+ return true;
+}
+
QT_END_NAMESPACE
diff --git a/src/network/ssl/qsslsocket_openssl_p.h b/src/network/ssl/qsslsocket_openssl_p.h
index e41320d..7a4e6b6 100644
--- a/src/network/ssl/qsslsocket_openssl_p.h
+++ b/src/network/ssl/qsslsocket_openssl_p.h
@@ -116,6 +116,7 @@ public:
static QSslCipher QSslCipher_from_SSL_CIPHER(SSL_CIPHER *cipher);
static QList<QSslCertificate> STACKOFX509_to_QSslCertificates(STACK_OF(X509) *x509);
+ Q_AUTOTEST_EXPORT static bool isMatchingHostname(const QString &cn, const QString &hostname);
};
#if defined(Q_OS_SYMBIAN)
@@ -161,6 +162,7 @@ private:
virtual void RunL();
virtual void DoCancel();
+ void run();
void list();
void retrieveNextCertificate();
diff --git a/src/network/ssl/qsslsocket_p.h b/src/network/ssl/qsslsocket_p.h
index b474175..72b3ef7 100644
--- a/src/network/ssl/qsslsocket_p.h
+++ b/src/network/ssl/qsslsocket_p.h
@@ -63,7 +63,6 @@
#include <QtCore/qstringlist.h>
#include <private/qringbuffer_p.h>
-#include <QtCore/QMutex>
QT_BEGIN_NAMESPACE
@@ -114,8 +113,7 @@ public:
QString verificationPeerName;
static bool supportsSsl();
- static bool ensureInitialized();
- static void ensureCertsAndCiphersLoaded();
+ static void ensureInitialized();
static void deinitialize();
static QList<QSslCipher> defaultCiphers();
static QList<QSslCipher> supportedCiphers();
@@ -163,8 +161,11 @@ public:
virtual QSslCipher sessionCipher() const = 0;
private:
- static bool s_initialized;
- static QBasicAtomicInt s_CertsAndCiphersLoaded;
+ static bool ensureLibraryLoaded();
+ static void ensureCiphersAndCertsLoaded();
+
+ static bool s_libraryLoaded;
+ static bool s_loadedCiphersAndCerts;
};
QT_END_NAMESPACE
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index ee49a3d..d3f6a29 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -1128,7 +1128,7 @@ void QGL2PaintEngineEx::fill(const QVectorPath &path, const QBrush &brush)
d->fill(path);
}
-extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp
+extern Q_GUI_EXPORT bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp
void QGL2PaintEngineEx::stroke(const QVectorPath &path, const QPen &pen)
diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
index 5371c5e..410cf21 100644
--- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
+++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
@@ -276,11 +276,6 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph)
}
}
-int QGLTextureGlyphCache::glyphMargin() const
-{
- return 1;
-}
-
int QGLTextureGlyphCache::glyphPadding() const
{
return 1;
diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
index 84e9021..6bcd655 100644
--- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
+++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl_p.h
@@ -72,7 +72,6 @@ public:
virtual void createTextureData(int width, int height);
virtual void resizeTextureData(int width, int height);
virtual void fillTexture(const Coord &c, glyph_t glyph);
- virtual int glyphMargin() const;
virtual int glyphPadding() const;
inline GLuint texture() const { return m_texture; }
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index fc28a73..2fa33bf 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -1334,6 +1334,10 @@ QGLFormat::OpenGLVersionFlags Q_AUTOTEST_EXPORT qOpenGLVersionFlagsFromString(co
\value OpenGL_Version_3_2 OpenGL version 3.2 or higher is present.
+ \value OpenGL_Version_3_3 OpenGL version 3.3 or higher is present.
+
+ \value OpenGL_Version_4_0 OpenGL version 4.0 or higher is present.
+
\value OpenGL_ES_CommonLite_Version_1_0 OpenGL ES version 1.0 Common Lite or higher is present.
\value OpenGL_ES_Common_Version_1_0 OpenGL ES version 1.0 Common or higher is present.
@@ -5037,8 +5041,9 @@ void QGLWidget::deleteTexture(QMacCompatGLuint id)
/*!
\since 4.4
- Calls the corresponding QGLContext::drawTexture() on
- this widget's context.
+ Calls the corresponding QGLContext::drawTexture() with
+ \a target, \a textureId, and \a textureTarget for this
+ widget's context.
*/
void QGLWidget::drawTexture(const QRectF &target, GLuint textureId, GLenum textureTarget)
{
@@ -5058,8 +5063,9 @@ void QGLWidget::drawTexture(const QRectF &target, QMacCompatGLuint textureId, QM
/*!
\since 4.4
- Calls the corresponding QGLContext::drawTexture() on
- this widget's context.
+ Calls the corresponding QGLContext::drawTexture() with
+ \a point, \a textureId, and \a textureTarget for this
+ widget's context.
*/
void QGLWidget::drawTexture(const QPointF &point, GLuint textureId, GLenum textureTarget)
{
diff --git a/src/openvg/openvg.pro b/src/openvg/openvg.pro
index 883f0f3..eb60331 100644
--- a/src/openvg/openvg.pro
+++ b/src/openvg/openvg.pro
@@ -17,7 +17,8 @@ HEADERS += \
qpixmapdata_vg_p.h \
qpixmapfilter_vg_p.h \
qvgcompositionhelper_p.h \
- qvgimagepool_p.h
+ qvgimagepool_p.h \
+ qvgfontglyphcache_p.h
SOURCES += \
qpaintengine_vg.cpp \
qpixmapdata_vg.cpp \
@@ -33,7 +34,11 @@ contains(QT_CONFIG, egl) {
qwindowsurface_vgegl.cpp
}
-symbian: DEFINES += QVG_RECREATE_ON_SIZE_CHANGE QVG_BUFFER_SCROLLING
+symbian {
+ DEFINES += QVG_RECREATE_ON_SIZE_CHANGE QVG_BUFFER_SCROLLING
+ SOURCES += \
+ qvg_symbian.cpp
+}
include(../qbase.pri)
diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
index 4b22d5e..4992ef5 100644
--- a/src/openvg/qpaintengine_vg.cpp
+++ b/src/openvg/qpaintengine_vg.cpp
@@ -44,6 +44,7 @@
#include "qpixmapfilter_vg_p.h"
#include "qvgcompositionhelper_p.h"
#include "qvgimagepool_p.h"
+#include "qvgfontglyphcache_p.h"
#if !defined(QT_NO_EGL)
#include <QtGui/private/qeglcontext_p.h>
#include "qwindowsurface_vgegl_p.h"
@@ -80,24 +81,6 @@ Q_DECL_IMPORT extern int qt_defaultDpiY();
class QVGPaintEnginePrivate;
-class QVGFontGlyphCache
-{
-public:
- QVGFontGlyphCache();
- ~QVGFontGlyphCache();
-
- void cacheGlyphs(QVGPaintEnginePrivate *d, QFontEngine *fontEngine, const glyph_t *g, int count);
-
- void setScaleFromText(const QFont &font, QFontEngine *fontEngine);
-
- VGFont font;
- VGfloat scaleX;
- VGfloat scaleY;
-
- uint cachedGlyphsMask[256 / 32];
- QSet<glyph_t> cachedGlyphs;
-};
-
typedef QHash<QFontEngine*, QVGFontGlyphCache*> QVGFontCache;
#endif
@@ -3289,6 +3272,7 @@ QVGFontGlyphCache::QVGFontGlyphCache()
{
font = vgCreateFont(0);
scaleX = scaleY = 0.0;
+ invertedGlyphs = false;
memset(cachedGlyphsMask, 0, sizeof(cachedGlyphsMask));
}
@@ -3423,7 +3407,11 @@ void QVGPaintEngine::drawStaticTextItem(QStaticTextItem *textItem)
if (it != d->fontCache.constEnd()) {
glyphCache = it.value();
} else {
+#ifdef Q_OS_SYMBIAN
+ glyphCache = new QSymbianVGFontGlyphCache();
+#else
glyphCache = new QVGFontGlyphCache();
+#endif
if (glyphCache->font == VG_INVALID_HANDLE) {
qWarning("QVGPaintEngine::drawTextItem: OpenVG fonts are not supported by the OpenVG engine");
delete glyphCache;
@@ -3443,6 +3431,11 @@ void QVGPaintEngine::drawStaticTextItem(QStaticTextItem *textItem)
#if defined(QVG_NO_IMAGE_GLYPHS)
glyphTransform.scale(glyphCache->scaleX, glyphCache->scaleY);
#endif
+
+ // Some glyph caches can create the VGImage upright
+ if (glyphCache->invertedGlyphs)
+ glyphTransform.scale(1, -1);
+
d->setTransform(VG_MATRIX_GLYPH_USER_TO_SURFACE, glyphTransform);
// Add the glyphs from the text item into the glyph cache.
diff --git a/src/openvg/qpaintengine_vg_p.h b/src/openvg/qpaintengine_vg_p.h
index 33c49ba..75cf053 100644
--- a/src/openvg/qpaintengine_vg_p.h
+++ b/src/openvg/qpaintengine_vg_p.h
@@ -172,7 +172,6 @@ private:
bool clearRect(const QRectF &rect, const QColor &color);
};
-
QT_END_NAMESPACE
#endif
diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp
index a4afc95..cb413d0 100644
--- a/src/openvg/qpixmapdata_vg.cpp
+++ b/src/openvg/qpixmapdata_vg.cpp
@@ -48,15 +48,6 @@
#include "qvg_p.h"
#include "qvgimagepool_p.h"
-#if defined(Q_OS_SYMBIAN)
-#include <private/qt_s60_p.h>
-#include <fbs.h>
-#endif
-#ifdef QT_SYMBIAN_SUPPORTS_SGIMAGE
-#include <sgresource/sgimage.h>
-typedef VGImage (*pfnVgCreateEGLImageTargetKHR)(VGeglImageKHR);
-#endif // QT_SYMBIAN_SUPPORTS_SGIMAGE
-
QT_BEGIN_NAMESPACE
static int qt_vg_pixmap_serial = 0;
@@ -421,254 +412,4 @@ Q_OPENVG_EXPORT VGImage qPixmapToVGImage(const QPixmap& pixmap)
return VG_INVALID_HANDLE;
}
-#if defined(Q_OS_SYMBIAN)
-
-static CFbsBitmap* createBlitCopy(CFbsBitmap* bitmap)
-{
- CFbsBitmap *copy = q_check_ptr(new CFbsBitmap);
- if(!copy)
- return 0;
-
- if (copy->Create(bitmap->SizeInPixels(), bitmap->DisplayMode()) != KErrNone) {
- delete copy;
- copy = 0;
-
- return 0;
- }
-
- CFbsBitmapDevice* bitmapDevice = 0;
- CFbsBitGc *bitmapGc = 0;
- QT_TRAP_THROWING(bitmapDevice = CFbsBitmapDevice::NewL(copy));
- QT_TRAP_THROWING(bitmapGc = CFbsBitGc::NewL());
- bitmapGc->Activate(bitmapDevice);
-
- bitmapGc->BitBlt(TPoint(), bitmap);
-
- delete bitmapGc;
- delete bitmapDevice;
-
- return copy;
-}
-
-void QVGPixmapData::cleanup()
-{
- is_null = w = h = 0;
- recreate = false;
- source = QImage();
-}
-
-void QVGPixmapData::fromNativeType(void* pixmap, NativeType type)
-{
- if (type == QPixmapData::SgImage && pixmap) {
-#if defined(QT_SYMBIAN_SUPPORTS_SGIMAGE) && !defined(QT_NO_EGL)
- RSgImage *sgImage = reinterpret_cast<RSgImage*>(pixmap);
-
- destroyImages();
- prevSize = QSize();
-
- TInt err = 0;
-
- RSgDriver driver;
- err = driver.Open();
- if (err != KErrNone) {
- cleanup();
- return;
- }
-
- if (sgImage->IsNull()) {
- cleanup();
- driver.Close();
- return;
- }
-
- TSgImageInfo sgImageInfo;
- err = sgImage->GetInfo(sgImageInfo);
- if (err != KErrNone) {
- cleanup();
- driver.Close();
- return;
- }
-
- pfnVgCreateEGLImageTargetKHR vgCreateEGLImageTargetKHR = (pfnVgCreateEGLImageTargetKHR) eglGetProcAddress("vgCreateEGLImageTargetKHR");
-
- if (eglGetError() != EGL_SUCCESS || !(QEgl::hasExtension("EGL_KHR_image") || QEgl::hasExtension("EGL_KHR_image_pixmap")) || !vgCreateEGLImageTargetKHR) {
- cleanup();
- driver.Close();
- return;
- }
-
- const EGLint KEglImageAttribs[] = {EGL_IMAGE_PRESERVED_SYMBIAN, EGL_TRUE, EGL_NONE};
- EGLImageKHR eglImage = QEgl::eglCreateImageKHR(QEgl::display(),
- EGL_NO_CONTEXT,
- EGL_NATIVE_PIXMAP_KHR,
- (EGLClientBuffer)sgImage,
- (EGLint*)KEglImageAttribs);
-
- if (eglGetError() != EGL_SUCCESS) {
- cleanup();
- driver.Close();
- return;
- }
-
- vgImage = vgCreateEGLImageTargetKHR(eglImage);
- if (vgGetError() != VG_NO_ERROR) {
- cleanup();
- QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
- driver.Close();
- return;
- }
-
- w = sgImageInfo.iSizeInPixels.iWidth;
- h = sgImageInfo.iSizeInPixels.iHeight;
- d = 32; // We always use ARGB_Premultiplied for VG pixmaps.
- is_null = (w <= 0 || h <= 0);
- source = QImage();
- recreate = false;
- prevSize = QSize(w, h);
- setSerialNumber(++qt_vg_pixmap_serial);
- // release stuff
- QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
- driver.Close();
-#endif
- } else if (type == QPixmapData::FbsBitmap) {
- CFbsBitmap *bitmap = reinterpret_cast<CFbsBitmap*>(pixmap);
-
- bool deleteSourceBitmap = false;
-
-#ifdef Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE
-
- // Rasterize extended bitmaps
-
- TUid extendedBitmapType = bitmap->ExtendedBitmapType();
- if (extendedBitmapType != KNullUid) {
- bitmap = createBlitCopy(bitmap);
- deleteSourceBitmap = true;
- }
-#endif
-
- if (bitmap->IsCompressedInRAM()) {
- bitmap = createBlitCopy(bitmap);
- deleteSourceBitmap = true;
- }
-
- TDisplayMode displayMode = bitmap->DisplayMode();
- QImage::Format format = qt_TDisplayMode2Format(displayMode);
-
- TSize size = bitmap->SizeInPixels();
-
- bitmap->BeginDataAccess();
- uchar *bytes = (uchar*)bitmap->DataAddress();
- QImage img = QImage(bytes, size.iWidth, size.iHeight, format);
- img = img.copy();
- bitmap->EndDataAccess();
-
- if(displayMode == EGray2) {
- //Symbian thinks set pixels are white/transparent, Qt thinks they are foreground/solid
- //So invert mono bitmaps so that masks work correctly.
- img.invertPixels();
- } else if(displayMode == EColor16M) {
- img = img.rgbSwapped(); // EColor16M is BGR
- }
-
- fromImage(img, Qt::AutoColor);
-
- if(deleteSourceBitmap)
- delete bitmap;
- }
-}
-
-void* QVGPixmapData::toNativeType(NativeType type)
-{
- if (type == QPixmapData::SgImage) {
-#if defined(QT_SYMBIAN_SUPPORTS_SGIMAGE) && !defined(QT_NO_EGL)
- toVGImage();
-
- if (!isValid() || vgImage == VG_INVALID_HANDLE)
- return 0;
-
- TInt err = 0;
-
- RSgDriver driver;
- err = driver.Open();
- if (err != KErrNone)
- return 0;
-
- TSgImageInfo sgInfo;
- sgInfo.iPixelFormat = EUidPixelFormatARGB_8888_PRE;
- sgInfo.iSizeInPixels.SetSize(w, h);
- sgInfo.iUsage = ESgUsageBitOpenVgImage | ESgUsageBitOpenVgSurface;
-
- RSgImage *sgImage = q_check_ptr(new RSgImage());
- err = sgImage->Create(sgInfo, NULL, NULL);
- if (err != KErrNone) {
- driver.Close();
- return 0;
- }
-
- pfnVgCreateEGLImageTargetKHR vgCreateEGLImageTargetKHR = (pfnVgCreateEGLImageTargetKHR) eglGetProcAddress("vgCreateEGLImageTargetKHR");
-
- if (eglGetError() != EGL_SUCCESS || !(QEgl::hasExtension("EGL_KHR_image") || QEgl::hasExtension("EGL_KHR_image_pixmap")) || !vgCreateEGLImageTargetKHR) {
- driver.Close();
- return 0;
- }
-
- const EGLint KEglImageAttribs[] = {EGL_IMAGE_PRESERVED_SYMBIAN, EGL_TRUE, EGL_NONE};
- EGLImageKHR eglImage = QEgl::eglCreateImageKHR(QEgl::display(),
- EGL_NO_CONTEXT,
- EGL_NATIVE_PIXMAP_KHR,
- (EGLClientBuffer)sgImage,
- (EGLint*)KEglImageAttribs);
- if (eglGetError() != EGL_SUCCESS) {
- sgImage->Close();
- driver.Close();
- return 0;
- }
-
- VGImage dstVgImage = vgCreateEGLImageTargetKHR(eglImage);
- if (vgGetError() != VG_NO_ERROR) {
- QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
- sgImage->Close();
- driver.Close();
- return 0;
- }
-
- vgCopyImage(dstVgImage, 0, 0,
- vgImage, 0, 0,
- w, h, VG_FALSE);
-
- if (vgGetError() != VG_NO_ERROR) {
- sgImage->Close();
- sgImage = 0;
- }
- // release stuff
- vgDestroyImage(dstVgImage);
- QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
- driver.Close();
- return reinterpret_cast<void*>(sgImage);
-#endif
- } else if (type == QPixmapData::FbsBitmap) {
- CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap);
-
- if (bitmap) {
- if (bitmap->Create(TSize(source.width(), source.height()),
- EColor16MAP) == KErrNone) {
- const uchar *sptr = source.constBits();
- bitmap->BeginDataAccess();
-
- uchar *dptr = (uchar*)bitmap->DataAddress();
- Mem::Copy(dptr, sptr, source.byteCount());
-
- bitmap->EndDataAccess();
- } else {
- delete bitmap;
- bitmap = 0;
- }
- }
-
- return reinterpret_cast<void*>(bitmap);
- }
- return 0;
-}
-#endif //Q_OS_SYMBIAN
-
QT_END_NAMESPACE
diff --git a/src/openvg/qvg_symbian.cpp b/src/openvg/qvg_symbian.cpp
new file mode 100644
index 0000000..0e6e773
--- /dev/null
+++ b/src/openvg/qvg_symbian.cpp
@@ -0,0 +1,398 @@
+/****************************************************************************
+**
+** 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 QtGui 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 "qpixmapdata_vg_p.h"
+#include "qvgfontglyphcache_p.h"
+#include <private/qt_s60_p.h>
+
+#include <fbs.h>
+#include <bitdev.h>
+
+#ifdef QT_SYMBIAN_SUPPORTS_SGIMAGE
+# include <sgresource/sgimage.h>
+# ifdef SYMBIAN_FBSERV_GLYPHDATA // defined in fbs.h
+# define QT_SYMBIAN_HARDWARE_GLYPH_CACHE
+# include <graphics/fbsglyphdataiterator.h>
+# include <private/qfontengine_s60_p.h>
+# endif
+#endif
+
+QT_BEGIN_NAMESPACE
+
+typedef VGImage (*_vgCreateEGLImageTargetKHR)(VGeglImageKHR);
+static _vgCreateEGLImageTargetKHR qt_vgCreateEGLImageTargetKHR = 0;
+
+namespace QVG
+{
+ VGImage vgCreateEGLImageTargetKHR(VGeglImageKHR eglImage);
+}
+
+VGImage QVG::vgCreateEGLImageTargetKHR(VGeglImageKHR eglImage)
+{
+ if (!qt_vgCreateEGLImageTargetKHR && QEgl::hasExtension("EGL_KHR_image"))
+ qt_vgCreateEGLImageTargetKHR = (_vgCreateEGLImageTargetKHR) eglGetProcAddress("vgCreateEGLImageTargetKHR");
+
+ return qt_vgCreateEGLImageTargetKHR ? qt_vgCreateEGLImageTargetKHR(eglImage) : 0;
+}
+
+extern int qt_vg_pixmap_serial;
+
+static CFbsBitmap* createBlitCopy(CFbsBitmap* bitmap)
+{
+ CFbsBitmap *copy = q_check_ptr(new CFbsBitmap);
+ if(!copy)
+ return 0;
+
+ if (copy->Create(bitmap->SizeInPixels(), bitmap->DisplayMode()) != KErrNone) {
+ delete copy;
+ copy = 0;
+
+ return 0;
+ }
+
+ CFbsBitmapDevice* bitmapDevice = 0;
+ CFbsBitGc *bitmapGc = 0;
+ QT_TRAP_THROWING(bitmapDevice = CFbsBitmapDevice::NewL(copy));
+ QT_TRAP_THROWING(bitmapGc = CFbsBitGc::NewL());
+ bitmapGc->Activate(bitmapDevice);
+
+ bitmapGc->BitBlt(TPoint(), bitmap);
+
+ delete bitmapGc;
+ delete bitmapDevice;
+
+ return copy;
+}
+
+#ifdef QT_SYMBIAN_SUPPORTS_SGIMAGE
+static VGImage sgImageToVGImage(QEglContext *context, const RSgImage &sgImage)
+{
+ // when "0" used as argument then
+ // default display, context are used
+ if (!context)
+ context = qt_vg_create_context(0, QInternal::Pixmap);
+
+ VGImage vgImage = VG_INVALID_HANDLE;
+
+ TInt err = 0;
+
+ RSgDriver driver;
+ err = driver.Open();
+ if (err != KErrNone) {
+ return vgImage;
+ }
+
+ if (sgImage.IsNull()) {
+ driver.Close();
+ return vgImage;
+ }
+
+ TSgImageInfo sgImageInfo;
+ err = sgImage.GetInfo(sgImageInfo);
+ if (err != KErrNone) {
+ driver.Close();
+ return vgImage;
+ }
+
+ const EGLint KEglImageAttribs[] = {EGL_IMAGE_PRESERVED_SYMBIAN, EGL_TRUE, EGL_NONE};
+ EGLImageKHR eglImage = QEgl::eglCreateImageKHR(QEgl::display(),
+ EGL_NO_CONTEXT,
+ EGL_NATIVE_PIXMAP_KHR,
+ (EGLClientBuffer)&sgImage,
+ (EGLint*)KEglImageAttribs);
+
+ if (!eglImage || eglGetError() != EGL_SUCCESS) {
+ driver.Close();
+ return vgImage;
+ }
+
+ vgImage = QVG::vgCreateEGLImageTargetKHR(eglImage);
+ if (!vgImage || vgGetError() != VG_NO_ERROR) {
+ QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
+ driver.Close();
+ return vgImage;
+ }
+
+ //setSerialNumber(++qt_vg_pixmap_serial);
+ // release stuff
+ QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
+ driver.Close();
+ return vgImage;
+}
+#endif
+
+void QVGPixmapData::cleanup()
+{
+ is_null = w = h = 0;
+ recreate = false;
+ source = QImage();
+}
+
+void QVGPixmapData::fromNativeType(void* pixmap, NativeType type)
+{
+ if (type == QPixmapData::SgImage && pixmap) {
+#if defined(QT_SYMBIAN_SUPPORTS_SGIMAGE) && !defined(QT_NO_EGL)
+ RSgImage *sgImage = reinterpret_cast<RSgImage*>(pixmap);
+ destroyImages();
+ prevSize = QSize();
+
+ VGImage vgImage = sgImageToVGImage(context, *sgImage);
+ if (vgImage != VG_INVALID_HANDLE) {
+ w = vgGetParameteri(vgImage, VG_IMAGE_WIDTH);
+ h = vgGetParameteri(vgImage, VG_IMAGE_HEIGHT);
+ d = 32; // We always use ARGB_Premultiplied for VG pixmaps.
+ }
+
+ is_null = (w <= 0 || h <= 0);
+ source = QImage(); // vgGetImageSubData() some day?
+ recreate = false;
+ prevSize = QSize(w, h);
+ //setSerialNumber(++qt_vg_pixmap_serial);
+#endif
+ } else if (type == QPixmapData::FbsBitmap) {
+ CFbsBitmap *bitmap = reinterpret_cast<CFbsBitmap*>(pixmap);
+
+ bool deleteSourceBitmap = false;
+
+#ifdef Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE
+
+ // Rasterize extended bitmaps
+
+ TUid extendedBitmapType = bitmap->ExtendedBitmapType();
+ if (extendedBitmapType != KNullUid) {
+ bitmap = createBlitCopy(bitmap);
+ deleteSourceBitmap = true;
+ }
+#endif
+
+ if (bitmap->IsCompressedInRAM()) {
+ bitmap = createBlitCopy(bitmap);
+ deleteSourceBitmap = true;
+ }
+
+ TDisplayMode displayMode = bitmap->DisplayMode();
+ QImage::Format format = qt_TDisplayMode2Format(displayMode);
+
+ TSize size = bitmap->SizeInPixels();
+
+ bitmap->BeginDataAccess();
+ uchar *bytes = (uchar*)bitmap->DataAddress();
+ QImage img = QImage(bytes, size.iWidth, size.iHeight, format);
+ img = img.copy();
+ bitmap->EndDataAccess();
+
+ if(displayMode == EGray2) {
+ //Symbian thinks set pixels are white/transparent, Qt thinks they are foreground/solid
+ //So invert mono bitmaps so that masks work correctly.
+ img.invertPixels();
+ } else if(displayMode == EColor16M) {
+ img = img.rgbSwapped(); // EColor16M is BGR
+ }
+
+ fromImage(img, Qt::AutoColor);
+
+ if(deleteSourceBitmap)
+ delete bitmap;
+ }
+}
+
+void* QVGPixmapData::toNativeType(NativeType type)
+{
+ if (type == QPixmapData::SgImage) {
+#if defined(QT_SYMBIAN_SUPPORTS_SGIMAGE) && !defined(QT_NO_EGL)
+ toVGImage();
+
+ if (!isValid() || vgImage == VG_INVALID_HANDLE)
+ return 0;
+
+ TInt err = 0;
+
+ RSgDriver driver;
+ err = driver.Open();
+ if (err != KErrNone)
+ return 0;
+
+ TSgImageInfo sgInfo;
+ sgInfo.iPixelFormat = EUidPixelFormatARGB_8888_PRE;
+ sgInfo.iSizeInPixels.SetSize(w, h);
+ sgInfo.iUsage = ESgUsageBitOpenVgImage | ESgUsageBitOpenVgSurface;
+
+ RSgImage *sgImage = q_check_ptr(new RSgImage());
+ err = sgImage->Create(sgInfo, NULL, NULL);
+ if (err != KErrNone) {
+ driver.Close();
+ return 0;
+ }
+
+ const EGLint KEglImageAttribs[] = {EGL_IMAGE_PRESERVED_SYMBIAN, EGL_TRUE, EGL_NONE};
+ EGLImageKHR eglImage = QEgl::eglCreateImageKHR(QEgl::display(),
+ EGL_NO_CONTEXT,
+ EGL_NATIVE_PIXMAP_KHR,
+ (EGLClientBuffer)sgImage,
+ (EGLint*)KEglImageAttribs);
+ if (!eglImage || eglGetError() != EGL_SUCCESS) {
+ sgImage->Close();
+ driver.Close();
+ return 0;
+ }
+
+ VGImage dstVgImage = QVG::vgCreateEGLImageTargetKHR(eglImage);
+ if (!dstVgImage || vgGetError() != VG_NO_ERROR) {
+ QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
+ sgImage->Close();
+ driver.Close();
+ return 0;
+ }
+
+ vgCopyImage(dstVgImage, 0, 0,
+ vgImage, 0, 0,
+ w, h, VG_FALSE);
+
+ if (vgGetError() != VG_NO_ERROR) {
+ sgImage->Close();
+ sgImage = 0;
+ }
+ // release stuff
+ vgDestroyImage(dstVgImage);
+ QEgl::eglDestroyImageKHR(QEgl::display(), eglImage);
+ driver.Close();
+ return reinterpret_cast<void*>(sgImage);
+#endif
+ } else if (type == QPixmapData::FbsBitmap) {
+ CFbsBitmap *bitmap = q_check_ptr(new CFbsBitmap);
+
+ if (bitmap) {
+ if (bitmap->Create(TSize(source.width(), source.height()),
+ EColor16MAP) == KErrNone) {
+ const uchar *sptr = const_cast<const QImage&>(source).bits();
+ bitmap->BeginDataAccess();
+
+ uchar *dptr = (uchar*)bitmap->DataAddress();
+ Mem::Copy(dptr, sptr, source.byteCount());
+
+ bitmap->EndDataAccess();
+ } else {
+ delete bitmap;
+ bitmap = 0;
+ }
+ }
+
+ return reinterpret_cast<void*>(bitmap);
+ }
+ return 0;
+}
+
+QSymbianVGFontGlyphCache::QSymbianVGFontGlyphCache() : QVGFontGlyphCache()
+{
+#ifdef QT_SYMBIAN_HARDWARE_GLYPH_CACHE
+ invertedGlyphs = true;
+#endif
+}
+
+void QSymbianVGFontGlyphCache::cacheGlyphs(QVGPaintEnginePrivate *d,
+ QFontEngine *fontEngine,
+ const glyph_t *g, int count)
+{
+#ifdef QT_SYMBIAN_HARDWARE_GLYPH_CACHE
+ QFontEngineS60 *s60fontEngine = static_cast<QFontEngineS60*>(fontEngine);
+ if (s60fontEngine->m_activeFont->TypeUid() != KCFbsFontUid)
+ return QVGFontGlyphCache::cacheGlyphs(d, fontEngine, g, count);
+
+ QVector<glyph_t> uncachedGlyphs;
+ while (count-- > 0) {
+ // Skip this glyph if we have already cached it before.
+ glyph_t glyph = *g++;
+ if (((glyph < 256) && ((cachedGlyphsMask[glyph / 32] & (1 << (glyph % 32))) != 0))
+ || cachedGlyphs.contains(glyph))
+ continue;
+ if (!uncachedGlyphs.contains(glyph))
+ uncachedGlyphs.append(glyph);
+ }
+
+ if (!uncachedGlyphs.isEmpty()) {
+ CFbsFont *cfbsFont = static_cast<CFbsFont *>(s60fontEngine->m_activeFont);
+ RFbsGlyphDataIterator iter;
+
+ int err = iter.Open(*cfbsFont, (const unsigned int*)uncachedGlyphs.constData(), uncachedGlyphs.count());
+
+ if (err == KErrNotSupported || err == KErrInUse) { // Fallback in possibly supported error cases
+ iter.Close();
+ qWarning("Falling back to default QVGFontGlyphCache");
+ return QVGFontGlyphCache::cacheGlyphs(d, fontEngine, g, count);
+ }
+
+ for (; err == KErrNone; err = iter.Next()) {
+ const unsigned int glyph = iter.GlyphCode();
+
+ const RSgImage& image = iter.Image();
+ const TOpenFontCharMetrics& metrics = iter.Metrics();
+
+ TRect glyphBounds;
+ metrics.GetHorizBounds(glyphBounds);
+ VGImage vgImage = sgImageToVGImage(0, image);
+ VGfloat origin[2];
+ VGfloat escapement[2];
+ origin[0] = -glyphBounds.iTl.iX;
+ origin[1] = glyphBounds.iBr.iY;
+ escapement[0] = 0;
+ escapement[1] = 0;
+ vgSetGlyphToImage(font, glyph, vgImage, origin, escapement);
+ vgDestroyImage(vgImage);
+
+ // Add to cache
+ if (glyph < 256)
+ cachedGlyphsMask[glyph / 32] |= (1 << (glyph % 32));
+ else
+ cachedGlyphs.insert(glyph);
+ }
+ iter.Close();
+
+ if (err == KErrNoMemory || err == KErrNoGraphicsMemory)
+ qWarning("Not enough memory to cache glyph");
+ else if (err != KErrNotFound)
+ qWarning("Received error %d from glyph cache", err);
+ }
+#else
+ QVGFontGlyphCache::cacheGlyphs(d, fontEngine, g, count);
+#endif
+}
+
+QT_END_NAMESPACE
diff --git a/src/openvg/qvgfontglyphcache_p.h b/src/openvg/qvgfontglyphcache_p.h
new file mode 100644
index 0000000..b32a873
--- /dev/null
+++ b/src/openvg/qvgfontglyphcache_p.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** 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 QtOpenVG 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 QVGFONTGLYPHCACHE_H
+#define QVGFONTGLYPHCACHE_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/qvarlengtharray.h>
+#include <QtGui/private/qfontengine_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QVGPaintEnginePrivate;
+
+class QVGFontGlyphCache
+{
+public:
+ QVGFontGlyphCache();
+ virtual ~QVGFontGlyphCache();
+
+ virtual void cacheGlyphs(QVGPaintEnginePrivate *d,
+ QFontEngine *fontEngine,
+ const glyph_t *g, int count);
+ void setScaleFromText(const QFont &font, QFontEngine *fontEngine);
+
+ VGFont font;
+ VGfloat scaleX;
+ VGfloat scaleY;
+ bool invertedGlyphs;
+ uint cachedGlyphsMask[256 / 32];
+ QSet<glyph_t> cachedGlyphs;
+};
+
+#if defined(Q_OS_SYMBIAN)
+class QSymbianVGFontGlyphCache : public QVGFontGlyphCache
+{
+public:
+ QSymbianVGFontGlyphCache();
+ void cacheGlyphs(QVGPaintEnginePrivate *d,
+ QFontEngine *fontEngine,
+ const glyph_t *g, int count);
+};
+#endif
+
+QT_END_NAMESPACE
+
+#endif // QVGFONTGLYPHCACHE_H
diff --git a/src/plugins/bearer/bearer.pro b/src/plugins/bearer/bearer.pro
index f95e8af..6d8f7f2 100644
--- a/src/plugins/bearer/bearer.pro
+++ b/src/plugins/bearer/bearer.pro
@@ -4,7 +4,8 @@ contains(QT_CONFIG, dbus) {
contains(QT_CONFIG, icd) {
SUBDIRS += icd
} else {
- SUBDIRS += networkmanager generic
+ SUBDIRS += generic
+ !mac:SUBDIRS += connman networkmanager
}
}
diff --git a/src/plugins/bearer/connman/connman.pro b/src/plugins/bearer/connman/connman.pro
new file mode 100644
index 0000000..4be752b
--- /dev/null
+++ b/src/plugins/bearer/connman/connman.pro
@@ -0,0 +1,19 @@
+TARGET = qconnmanbearer
+include(../../qpluginbase.pri)
+
+QT = core network dbus
+
+HEADERS += qconnmanservice_linux_p.h \
+ qconnmanengine.h \
+ ../qnetworksession_impl.h \
+ ../qbearerengine_impl.h
+
+SOURCES += main.cpp \
+ qconnmanservice_linux.cpp \
+ qconnmanengine.cpp \
+ ../qnetworksession_impl.cpp
+
+QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/bearer
+target.path += $$[QT_INSTALL_PLUGINS]/bearer
+INSTALLS += target
+
diff --git a/src/plugins/bearer/connman/main.cpp b/src/plugins/bearer/connman/main.cpp
new file mode 100644
index 0000000..d483cf0
--- /dev/null
+++ b/src/plugins/bearer/connman/main.cpp
@@ -0,0 +1,93 @@
+/****************************************************************************
+**
+** 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 "qconnmanengine.h"
+
+#include <QtNetwork/private/qbearerplugin_p.h>
+
+#include <QtCore/qdebug.h>
+
+#ifndef QT_NO_BEARERMANAGEMENT
+#ifndef QT_NO_DBUS
+
+QT_BEGIN_NAMESPACE
+
+class QConnmanEnginePlugin : public QBearerEnginePlugin
+{
+public:
+ QConnmanEnginePlugin();
+ ~QConnmanEnginePlugin();
+
+ QStringList keys() const;
+ QBearerEngine *create(const QString &key) const;
+};
+
+QConnmanEnginePlugin::QConnmanEnginePlugin()
+{
+}
+
+QConnmanEnginePlugin::~QConnmanEnginePlugin()
+{
+}
+
+QStringList QConnmanEnginePlugin::keys() const
+{
+ return QStringList() << QLatin1String("connman");
+}
+
+QBearerEngine *QConnmanEnginePlugin::create(const QString &key) const
+{
+ if (key == QLatin1String("connman")) {
+ QConnmanEngine *engine = new QConnmanEngine;
+ if (engine->connmanAvailable())
+ return engine;
+ else
+ delete engine;
+ }
+ return 0;
+}
+
+Q_EXPORT_STATIC_PLUGIN(QConnmanEnginePlugin)
+Q_EXPORT_PLUGIN2(qconnmanbearer, QConnmanEnginePlugin)
+
+QT_END_NAMESPACE
+
+#endif
+#endif // QT_NO_BEARERMANAGEMENT
diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp
new file mode 100644
index 0000000..8775623
--- /dev/null
+++ b/src/plugins/bearer/connman/qconnmanengine.cpp
@@ -0,0 +1,787 @@
+/****************************************************************************
+**
+** 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 "qconnmanengine.h"
+#include "qconnmanservice_linux_p.h"
+#include "../qnetworksession_impl.h"
+
+#include <QtNetwork/private/qnetworkconfiguration_p.h>
+
+#include <QtNetwork/qnetworksession.h>
+
+#include <QtCore/qdebug.h>
+
+#include <QtDBus/QtDBus>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusReply>
+
+#ifndef QT_NO_BEARERMANAGEMENT
+#ifndef QT_NO_DBUS
+
+QT_BEGIN_NAMESPACE
+
+QConnmanEngine::QConnmanEngine(QObject *parent)
+: QBearerEngineImpl(parent),
+ connmanManager(new QConnmanManagerInterface(this))
+{
+}
+
+QConnmanEngine::~QConnmanEngine()
+{
+}
+
+bool QConnmanEngine::connmanAvailable() const
+{
+ QMutexLocker locker(&mutex);
+ return connmanManager->isValid();
+}
+
+void QConnmanEngine::initialize()
+{
+ connect(connmanManager,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(propertyChangedContext(QString,QString,QDBusVariant)));
+
+ foreach(const QString techPath, connmanManager->getTechnologies()) {
+ QConnmanTechnologyInterface *tech;
+ tech = new QConnmanTechnologyInterface(techPath, this);
+
+ connect(tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant)));
+
+ foreach(const QString devicePath,tech->getDevices()) {
+ QConnmanDeviceInterface *dev;
+ dev = new QConnmanDeviceInterface(devicePath);
+ if(!deviceMap.value(techPath).contains(devicePath)) {
+ connect(dev,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(devicePropertyChangedContext(QString,QString,QDBusVariant)));
+ deviceMap.insert(techPath,QStringList() << devicePath);
+ foreach(const QString network,dev->getNetworks()) {
+ serviceNetworks.insert(getServiceForNetwork(network),network);
+ }
+ }
+ }
+ }
+
+ // Get current list of access points.
+ getConfigurations();
+}
+
+QList<QNetworkConfigurationPrivate *> QConnmanEngine::getConfigurations()
+{
+ QMutexLocker locker(&mutex);
+ // foundConfigurations.clear();
+ getNetworkListing();
+ QList<QNetworkConfigurationPrivate *> fetchedConfigurations;
+ QNetworkConfigurationPrivate* cpPriv = 0;
+
+ for (int i = 0; i < foundConfigurations.count(); ++i) {
+ QNetworkConfigurationPrivate *config = new QNetworkConfigurationPrivate;
+ cpPriv = foundConfigurations.at(i);
+
+ config->name = cpPriv->name;
+ config->isValid = cpPriv->isValid;
+ config->id = cpPriv->id;
+ config->state = cpPriv->state;
+ config->type = cpPriv->type;
+ config->roamingSupported = cpPriv->roamingSupported;
+ config->purpose = cpPriv->purpose;
+ config->bearer = cpPriv->bearer;
+
+ fetchedConfigurations.append(config);
+ }
+ return fetchedConfigurations;
+// return foundConfigurations;
+}
+
+void QConnmanEngine::getNetworkListing()
+{
+ QMutexLocker locker(&mutex);
+ QMapIterator<QString,QStringList> i(deviceMap);
+ while(i.hasNext()) {
+ i.next();
+ QConnmanDeviceInterface dev(i.value().at(0));
+ if(dev.isValid()) {
+ foreach(const QString network,dev.getNetworks()) {
+ addNetworkConfiguration(network);
+ }
+ }
+ }
+}
+
+
+
+void QConnmanEngine::doRequestUpdate()
+{
+ connmanManager->requestScan("");
+ getConfigurations();
+ emit updateCompleted();
+}
+
+QString QConnmanEngine::getInterfaceFromId(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+ return configInterfaces.value(id);
+}
+
+bool QConnmanEngine::hasIdentifier(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+ return accessPointConfigurations.contains(id);
+}
+
+QString QConnmanEngine::bearerName(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+ QConnmanServiceInterface serv(serviceFromId(id));
+ QString connectionType = serv.getType();
+
+ if (connectionType == "ethernet")
+ return QLatin1String("Ethernet");
+ else if (connectionType == "wifi")
+ return QLatin1String("WLAN");
+ else if (connectionType == "cellular") {
+ QString mode = serv.getMode();
+ if(mode == "gprs" || mode == "edge") {
+ return QLatin1String("2G");
+ } else if(mode == "umts") {
+ return QLatin1String("WCDMA");
+ }
+ }
+ else if (connectionType == "wimax")
+ return QLatin1String("WIMAX");
+
+ return QString();
+}
+
+void QConnmanEngine::connectToId(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+ QConnmanConnectThread *thread;
+ thread = new QConnmanConnectThread(this);
+ thread->setServicePath(serviceFromId(id));
+ thread->setIdentifier(id);
+ connect(thread,SIGNAL(connectionError(QString,QBearerEngineImpl::ConnectionError)),
+ this,SIGNAL(connectionError(QString,QBearerEngineImpl::ConnectionError)));
+ thread->start();
+}
+
+void QConnmanEngine::disconnectFromId(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+ QConnmanServiceInterface serv(serviceFromId(id));
+ if(!serv.isValid()) {
+ emit connectionError(id, DisconnectionError);
+ } else {
+ serv.disconnect();
+ }
+}
+
+void QConnmanEngine::requestUpdate()
+{
+ QMutexLocker locker(&mutex);
+ QTimer::singleShot(0, this, SLOT(doRequestUpdate()));
+}
+
+QString QConnmanEngine::serviceFromId(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+ foreach(const QString service, serviceNetworks.keys()) {
+ if (id == QString::number(qHash(service)))
+ return service;
+ }
+
+ return QString();
+}
+
+QNetworkSession::State QConnmanEngine::sessionStateForId(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+
+ QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id);
+
+ if (!ptr)
+ return QNetworkSession::Invalid;
+
+ if (!ptr->isValid) {
+ return QNetworkSession::Invalid;
+
+ }
+ QString service = serviceFromId(id);
+ QConnmanServiceInterface serv(service);
+ QString servState = serv.getState();
+
+ if(serv.isFavorite() && (servState == "idle" || servState == "failure")) {
+ return QNetworkSession::Disconnected;
+ }
+
+ if(servState == "association" || servState == "configuration" || servState == "login") {
+ return QNetworkSession::Connecting;
+ }
+ if(servState == "ready" || servState == "online") {
+ return QNetworkSession::Connected;
+ }
+
+ if ((ptr->state & QNetworkConfiguration::Discovered) ==
+ QNetworkConfiguration::Discovered) {
+ return QNetworkSession::Disconnected;
+ } else if ((ptr->state & QNetworkConfiguration::Defined) == QNetworkConfiguration::Defined) {
+ return QNetworkSession::NotAvailable;
+ } else if ((ptr->state & QNetworkConfiguration::Undefined) ==
+ QNetworkConfiguration::Undefined) {
+ return QNetworkSession::NotAvailable;
+ }
+
+ return QNetworkSession::Invalid;
+}
+
+quint64 QConnmanEngine::bytesWritten(const QString &id)
+{//TODO use connman counter API
+ QMutexLocker locker(&mutex);
+ quint64 result = 0;
+ QString devFile = getInterfaceFromId(id);
+ QFile tx("/sys/class/net/"+devFile+"/statistics/tx_bytes");
+ if(tx.exists() && tx.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ QTextStream in(&tx);
+ in >> result;
+ tx.close();
+ }
+
+ return result;
+}
+
+quint64 QConnmanEngine::bytesReceived(const QString &id)
+{//TODO use connman counter API
+ QMutexLocker locker(&mutex);
+ quint64 result = 0;
+ QString devFile = getInterfaceFromId(id);
+ QFile rx("/sys/class/net/"+devFile+"/statistics/rx_bytes");
+ if(rx.exists() && rx.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ QTextStream in(&rx);
+ in >> result;
+ rx.close();
+ }
+ return result;
+}
+
+quint64 QConnmanEngine::startTime(const QString &/*id*/)
+{
+ // TODO
+ QMutexLocker locker(&mutex);
+ if (activeTime.isNull()) {
+ return 0;
+ }
+ return activeTime.secsTo(QDateTime::currentDateTime());
+}
+
+QNetworkConfigurationManager::Capabilities QConnmanEngine::capabilities() const
+{
+ return QNetworkConfigurationManager::ForcedRoaming |
+ QNetworkConfigurationManager::DataStatistics |
+ QNetworkConfigurationManager::CanStartAndStopInterfaces;
+}
+
+QNetworkSessionPrivate *QConnmanEngine::createSessionBackend()
+{
+ return new QNetworkSessionPrivateImpl;
+}
+
+QNetworkConfigurationPrivatePointer QConnmanEngine::defaultConfiguration()
+{
+ return QNetworkConfigurationPrivatePointer();
+}
+
+
+QString QConnmanEngine::getServiceForNetwork(const QString &netPath)
+{
+ QMutexLocker locker(&mutex);
+ QConnmanNetworkInterface network(netPath, this);
+ foreach(QString service,connmanManager->getServices()) {
+ QConnmanServiceInterface serv(service,this);
+ if(serv.getName() == network.getName()
+ && network.getSignalStrength() == serv.getSignalStrength()) {
+ return service;
+ }
+ }
+ return QString();
+}
+
+
+void QConnmanEngine::propertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value)
+{
+ Q_UNUSED(path);
+// qDebug() << __FUNCTION__ << path << item << value.variant();
+
+ QMutexLocker locker(&mutex);
+ if(item == "Services") {
+ QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant());
+ QStringList list = qdbus_cast<QStringList>(arg);
+
+ if(list.count() > accessPointConfigurations.count()) {
+ foreach(const QString service, list) {
+ addServiceConfiguration(service);
+ }
+ }
+ }
+
+ if(item == "Technologies") {
+ QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant());
+ QStringList newlist = qdbus_cast<QStringList>(arg);
+ if(newlist.count() > 0) {
+ QMap<QString,QConnmanTechnologyInterface *> oldtech = technologies;
+
+ foreach(const QString listPath, newlist) {
+ if(!oldtech.contains(listPath)) {
+ QConnmanTechnologyInterface *tech;
+ tech = new QConnmanTechnologyInterface(listPath,this);
+ connect(tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant)));
+ technologies.insert(listPath, tech);
+ }
+ }
+
+ foreach(const QString old, oldtech.keys()) {
+ if(!newlist.contains(old)) {
+ QConnmanTechnologyInterface *tech = oldtech.value(old);
+ disconnect(tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant)));
+
+ technologies.remove(old);
+ getNetworkListing();
+ }
+ }
+ }
+ }
+ if(item == "State") {
+// qDebug() << value.variant();
+ }
+}
+
+void QConnmanEngine::servicePropertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value)
+{
+ QMutexLocker locker(&mutex);
+ if(item == "State") {
+ configurationChange(QString::number(qHash(path)));
+
+ if(value.variant().toString() == "failure") {
+ QConnmanServiceInterface serv(path);
+ emit connectionError(QString::number(qHash(path)), ConnectError);
+ }
+ }
+}
+
+void QConnmanEngine::networkPropertyChangedContext(const QString &/*path*/,const QString &/*item*/, const QDBusVariant &/*value*/)
+{
+ QMutexLocker locker(&mutex);
+}
+
+void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const QString &item,const QDBusVariant &value)
+{
+ QMutexLocker locker(&mutex);
+ if(item == "Networks") {
+ QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant());
+ QStringList remainingNetworks = qdbus_cast<QStringList>(arg);
+ QString devicetype;
+ QMapIterator<QString,QStringList> i(deviceMap);
+ while(i.hasNext()) {
+ i.next();
+ if(i.value().contains(devpath)) {
+ devicetype = i.key().section("/",-1);
+ }
+ }
+
+ QStringList oldnetworks = knownNetworks[devicetype];
+
+ if(remainingNetworks.count() > oldnetworks.count()) {
+ foreach(const QString netPath, remainingNetworks) {
+ if(!oldnetworks.contains(netPath)) {
+ addNetworkConfiguration(netPath);
+ }
+ }
+ } else {
+ foreach(const QString netPath, oldnetworks) {
+ QString servicePath = serviceNetworks.key(netPath);
+ if(!remainingNetworks.contains(netPath)) {
+ if(servicePath.isEmpty()) {
+ removeConfiguration(QString::number(qHash(netPath)));
+ } else {
+ removeConfiguration(QString::number(qHash(servicePath)));
+ }
+ knownNetworks[devicetype].removeAll(netPath);
+ }
+ }
+ }
+ }
+}
+
+void QConnmanEngine::technologyPropertyChangedContext(const QString & path, const QString &item, const QDBusVariant &value)
+{
+ if(item == "Devices") {
+ QDBusArgument arg = qvariant_cast<QDBusArgument>(value.variant());
+ QStringList list = qdbus_cast<QStringList>(arg);
+ }
+ if(item == "State") {
+
+ if(value.variant().toString() == "available") {
+ QConnmanTechnologyInterface tech(connmanManager->getPathForTechnology(path));
+ foreach(const QString devPath, tech.getDevices()) {
+
+ if(!deviceMap.value(path).contains(devPath)) {
+ QConnmanDeviceInterface *dev;
+ dev = new QConnmanDeviceInterface(devPath,this);
+ connect(dev,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(devicePropertyChangedContext(QString,QString,QDBusVariant)));
+ deviceMap.insert(path,QStringList() << devPath);
+ }
+ }
+ }
+ if(value.variant().toString() == "offline") {
+ deviceMap.remove(path);
+ }
+ }
+}
+
+void QConnmanEngine::configurationChange(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+
+ if (accessPointConfigurations.contains(id)) {
+
+ QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id);
+
+ QString servicePath = serviceFromId(id);
+ QConnmanServiceInterface *serv;
+ serv = new QConnmanServiceInterface(servicePath);
+ QString networkName = serv->getName();
+
+ QNetworkConfiguration::StateFlags curState = getStateForService(servicePath);
+
+ ptr->mutex.lock();
+
+ if (!ptr->isValid) {
+ ptr->isValid = true;
+ }
+
+ if (ptr->name != networkName) {
+ ptr->name = networkName;
+ }
+
+ if (ptr->state != curState) {
+ ptr->state = curState;
+ }
+
+ ptr->mutex.unlock();
+
+ locker.unlock();
+ emit configurationChanged(ptr);
+ locker.relock();
+
+ }
+ locker.unlock();
+ emit updateCompleted();
+}
+
+QNetworkConfiguration::StateFlags QConnmanEngine::getStateForService(const QString &service)
+{
+ QMutexLocker locker(&mutex);
+ QConnmanServiceInterface serv(service);
+ QNetworkConfiguration::StateFlags flag = QNetworkConfiguration::Defined;
+ if(serv.isFavorite()) {
+ flag = ( flag | QNetworkConfiguration::Discovered);
+ } else {
+ flag = QNetworkConfiguration::Undefined;
+ }
+
+ if(serv.getState() == "ready" || serv.getState() == "online") {
+ flag = ( flag | QNetworkConfiguration::Active);
+ }
+
+ return flag;
+}
+
+QString QConnmanEngine::typeToBearer(const QString &type)
+{
+ QMutexLocker locker(&mutex);
+ if(type == "wifi")
+ return "WLAN";
+ if(type == "ethernet")
+ return "Ethernet";
+ if(type == "bluetooth")
+ return "Bluetooth";
+ if(type == "cellular") {
+ return "Cellular";
+ // not handled: CDMA2000 HSPA
+ }
+ if(type == "wimax")
+ return "WiMax";
+// if(type == "gps")
+// if(type == "vpn")
+
+ return "Unknown";
+}
+
+void QConnmanEngine::removeConfiguration(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+
+ if (accessPointConfigurations.contains(id)) {
+
+ QString service = serviceFromId(id);
+ QConnmanServiceInterface serv(service);
+
+ disconnect(&serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant)));
+
+ QString netPath = serviceNetworks.value(service);
+ serviceNetworks.remove(service);
+
+ QConnmanServiceInterface network(netPath);
+ disconnect(&network,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(networkPropertyChangedContext(QString,QString, QDBusVariant)));
+
+ QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(id);
+ locker.unlock();
+ emit configurationRemoved(ptr);
+ locker.relock();
+ }
+}
+
+void QConnmanEngine::addServiceConfiguration(const QString &servicePath)
+{
+
+ QMutexLocker locker(&mutex);
+ QConnmanServiceInterface *serv;
+ serv = new QConnmanServiceInterface(servicePath);
+ const QString netPath = serviceNetworks.value(servicePath);
+
+ QConnmanNetworkInterface *network;
+ network = new QConnmanNetworkInterface(netPath, this);
+
+
+ const QString id = QString::number(qHash(servicePath));
+
+ if (!accessPointConfigurations.contains(id)) {
+ QConnmanDeviceInterface device(netPath.section("/",0,5),this);
+
+ serviceNetworks.insert(servicePath,netPath);
+
+ knownNetworks[device.getType()].append(netPath);
+
+ connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant)));
+ QNetworkConfigurationPrivate* cpPriv = new QNetworkConfigurationPrivate();
+
+ QString networkName = serv->getName();
+
+ if(serv->getType() == "Cellular") {
+ networkName = serv->getAPN();
+ }
+
+ cpPriv->name = networkName;
+ cpPriv->isValid = true;
+ cpPriv->id = id;
+ cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
+ cpPriv->bearer = bearerName(id);
+
+ if(serv->getSecurity() == "none") {
+ cpPriv->purpose = QNetworkConfiguration::PublicPurpose;
+ } else {
+ cpPriv->purpose = QNetworkConfiguration::PrivatePurpose;
+ }
+
+ connect(network,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(networkPropertyChangedContext(QString,QString, QDBusVariant)));
+
+ cpPriv->state = getStateForService(servicePath);
+
+ QNetworkConfigurationPrivatePointer ptr(cpPriv);
+ accessPointConfigurations.insert(ptr->id, ptr);
+ foundConfigurations.append(cpPriv);
+ configInterfaces[cpPriv->id] = device.getInterface();
+
+
+ locker.unlock();
+ emit configurationAdded(ptr);
+ locker.relock();
+ emit updateCompleted();
+ }
+}
+
+void QConnmanEngine::addNetworkConfiguration(const QString &networkPath)
+{
+ QMutexLocker locker(&mutex);
+
+ QConnmanNetworkInterface *network;
+ network = new QConnmanNetworkInterface(networkPath, this);
+ QString servicePath = getServiceForNetwork(networkPath);
+ QConnmanServiceInterface *serv;
+
+ QString id;
+ QConnmanDeviceInterface device(networkPath.section("/",0,5),this);
+
+ if(servicePath.isEmpty()) {
+ 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)));
+ }
+
+ if (!accessPointConfigurations.contains(id)) {
+
+ knownNetworks[device.getType()].append(networkPath);
+
+ serviceNetworks.insert(servicePath,networkPath);
+
+ connect(network,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)),
+ this,SLOT(networkPropertyChangedContext(QString,QString, QDBusVariant)));
+
+ QNetworkConfigurationPrivate* cpPriv = new QNetworkConfigurationPrivate();
+
+ QString networkName = network->getName();
+
+ if(networkName.isEmpty())
+ networkName = "Hidden Network";
+
+ QString bearerName;
+
+ if(servicePath.isEmpty()) {
+ QString devicePath = networkPath.section("/",0,5);
+ QConnmanDeviceInterface device(devicePath,this);
+ bearerName = typeToBearer(device.getType());
+ } else {
+ bearerName = typeToBearer(serv->getType());
+ }
+
+ if(bearerName == "Cellular") {
+ QString mode = serv->getMode();
+ if(mode == "gprs" || mode == "edge") {
+ bearerName = "2G";
+ } else if(mode == "umts") {
+ bearerName = "WCDMA";
+ }
+ networkName = serv->getAPN();
+ }
+
+ cpPriv->name = networkName;
+ cpPriv->isValid = true;
+ cpPriv->id = id;
+ cpPriv->type = QNetworkConfiguration::InternetAccessPoint;
+ cpPriv->bearer = bearerName;
+
+ if(network->getWifiSecurity() == "none") {
+ cpPriv->purpose = QNetworkConfiguration::PublicPurpose;
+ } else {
+ cpPriv->purpose = QNetworkConfiguration::PrivatePurpose;
+ }
+
+ if(servicePath.isEmpty())
+ cpPriv->state = QNetworkConfiguration::Undefined;
+ else
+ cpPriv->state = getStateForService(servicePath);
+
+ QNetworkConfigurationPrivatePointer ptr(cpPriv);
+ accessPointConfigurations.insert(ptr->id, ptr);
+ foundConfigurations.append(cpPriv);
+ configInterfaces[cpPriv->id] = device.getInterface();
+
+ locker.unlock();
+ emit configurationAdded(ptr);
+ locker.relock();
+ emit updateCompleted();
+ }
+}
+
+bool QConnmanEngine::requiresPolling() const
+{
+ return false;
+}
+
+
+QConnmanConnectThread::QConnmanConnectThread(QObject *parent)
+ :QThread(parent),
+ servicePath(), identifier()
+{
+}
+
+QConnmanConnectThread::~QConnmanConnectThread()
+{
+}
+
+void QConnmanConnectThread::stop()
+{
+ if(currentThread() != this) {
+ QMetaObject::invokeMethod(this, "quit",
+ Qt::QueuedConnection);
+ } else {
+ quit();
+ }
+ wait();
+}
+
+void QConnmanConnectThread::run()
+{
+ QConnmanServiceInterface serv(servicePath);
+ if(!serv.isValid()) {
+ emit connectionError(identifier, QBearerEngineImpl::InterfaceLookupError);
+ } else {
+ serv.connect();
+ }
+}
+
+void QConnmanConnectThread::setServicePath(const QString &path)
+{
+ QMutexLocker locker(&mutex);
+ servicePath = path;
+}
+
+void QConnmanConnectThread::setIdentifier(const QString &id)
+{
+ QMutexLocker locker(&mutex);
+ identifier = id;
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h
new file mode 100644
index 0000000..0f6dc1c
--- /dev/null
+++ b/src/plugins/bearer/connman/qconnmanengine.h
@@ -0,0 +1,179 @@
+/****************************************************************************
+**
+** 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 QCONNMANENGINE_P_H
+#define QCONNMANENGINE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of the QLibrary class. This header file may change from
+// version to version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "../qbearerengine_impl.h"
+
+#include "qconnmanservice_linux_p.h"
+
+#include <QMap>
+#include <QVariant>
+#include <QtCore/qthread.h>
+
+#ifndef QT_NO_BEARERMANAGEMENT
+#ifndef QT_NO_DBUS
+
+QT_BEGIN_NAMESPACE
+
+class QConnmanConnectThread;
+class QConnmanEngine : public QBearerEngineImpl
+{
+ Q_OBJECT
+
+public:
+ QConnmanEngine(QObject *parent = 0);
+ ~QConnmanEngine();
+
+ bool connmanAvailable() const;
+
+ virtual QString getInterfaceFromId(const QString &id);
+ bool hasIdentifier(const QString &id);
+
+ virtual QString bearerName(const QString &id);
+
+ virtual void connectToId(const QString &id);
+ virtual void disconnectFromId(const QString &id);
+
+ Q_INVOKABLE void initialize();
+ Q_INVOKABLE void requestUpdate();
+
+ QNetworkSession::State sessionStateForId(const QString &id);
+ QNetworkSessionPrivate *createSessionBackend();
+
+ virtual quint64 bytesWritten(const QString &id);
+ virtual quint64 bytesReceived(const QString &id);
+ virtual quint64 startTime(const QString &id);
+
+
+ virtual QNetworkConfigurationManager::Capabilities capabilities() const;
+ virtual QNetworkConfigurationPrivatePointer defaultConfiguration();
+
+ void configurationChange(const QString &id);
+ QList<QNetworkConfigurationPrivate *> getConfigurations();
+
+
+private Q_SLOTS:
+
+ void doRequestUpdate();
+ void servicePropertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+ void networkPropertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+ void devicePropertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+ void technologyPropertyChangedContext(const QString &,const QString &, const QDBusVariant &);
+
+private:
+ QConnmanManagerInterface *connmanManager;
+
+ QList<QNetworkConfigurationPrivate *> foundConfigurations;
+
+ void getNetworkListing();
+
+ QString getServiceForNetwork(const QString &network);
+
+ QString serviceFromId(const QString &id);
+ QString networkFromId(const QString &id);
+
+ QNetworkConfiguration::StateFlags getStateForService(const QString &service);
+ QString typeToBearer(const QString &type);
+
+ void removeConfiguration(const QString &servicePath);
+ void addServiceConfiguration(const QString &servicePath);
+ void addNetworkConfiguration(const QString &worknetPath);
+ QDateTime activeTime;
+
+
+ QMap<QString,QConnmanTechnologyInterface *> technologies; // techpath, tech interface
+ QMap<QString,QString> configInterfaces; // id, interface name
+ QMap<QString,QStringList> knownNetworks; //device path, net paths list
+ QMap<QString,QStringList> deviceMap; //tech path, device path
+ QMap<QString, QString> serviceNetworks; //service, network
+
+
+protected:
+ bool requiresPolling() const;
+ QConnmanConnectThread *connThread;
+};
+
+class QConnmanConnectThread : public QThread
+{
+ Q_OBJECT
+
+public:
+ QConnmanConnectThread(QObject *parent = 0);
+ ~QConnmanConnectThread();
+ bool keepRunning;
+ void stop();
+ void setServicePath(const QString &path);
+ void setIdentifier(const QString &id);
+
+Q_SIGNALS:
+ void connectionError(const QString &id, QBearerEngineImpl::ConnectionError error);
+
+protected:
+ void run();
+ QString servicePath;
+ QString identifier;
+
+private:
+ QMutex mutex;
+
+};
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
+
+#endif
+
diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
new file mode 100644
index 0000000..b20e7c1
--- /dev/null
+++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp
@@ -0,0 +1,1072 @@
+/****************************************************************************
+**
+** 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 "qconnmanservice_linux_p.h"
+
+
+QT_BEGIN_NAMESPACE
+static QDBusConnection dbusConnection = QDBusConnection::systemBus();
+
+
+QConnmanManagerInterface::QConnmanManagerInterface( QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ CONNMAN_MANAGER_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanManagerInterface::~QConnmanManagerInterface()
+{
+}
+
+void QConnmanManagerInterface::connectNotify(const char *signal)
+{
+if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_MANAGER_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(const QString &, const QDBusVariant & )))) {
+ qWarning() << "PropertyCHanged not connected";
+ }
+ }
+
+ if (QLatin1String(signal) == SIGNAL(stateChanged(QString))) {
+ if (!connection().connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_MANAGER_INTERFACE),
+ QLatin1String("StateChanged"),
+ this,SIGNAL(stateChanged(const QString&)))) {
+ qWarning() << "StateChanged not connected";
+
+ }
+ }
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QConnmanDBusHelper *helper;
+ helper = new QConnmanDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ QLatin1String(CONNMAN_MANAGER_PATH),
+ QLatin1String(CONNMAN_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 QConnmanManagerInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariant QConnmanManagerInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() << "does not contain" << property;
+ }
+ return var;
+}
+
+QVariantMap QConnmanManagerInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QString QConnmanManagerInterface::getState()
+{
+ QDBusReply<QString > reply = this->call("GetState");
+ return reply.value();
+}
+
+bool QConnmanManagerInterface::setProperty(const QString &name, const QDBusVariant &value)
+{
+ Q_UNUSED(name);
+ Q_UNUSED(value);
+ return false;
+}
+
+QDBusObjectPath QConnmanManagerInterface::createProfile(const QString &/*name*/)
+{
+ return QDBusObjectPath();
+}
+
+bool QConnmanManagerInterface::removeProfile(QDBusObjectPath /*path*/)
+{
+ return false;
+}
+
+bool QConnmanManagerInterface::requestScan(const QString &type)
+{
+ QDBusReply<QString> reply = this->call(QLatin1String("RequestScan"), QVariant::fromValue(type));
+
+ bool ok = true;
+ if(reply.error().type() == QDBusError::InvalidArgs) {
+ qWarning() << reply.error().message();
+ ok = false;
+ }
+ return ok;
+}
+
+bool QConnmanManagerInterface::enableTechnology(const QString &type)
+{
+ QDBusReply<QList<QDBusObjectPath> > reply = this->call(QLatin1String("EnableTechnology"), QVariant::fromValue(type));
+ bool ok = true;
+ if(reply.error().type() == QDBusError::InvalidArgs) {
+ qWarning() << reply.error().message();
+ ok = false;
+ }
+ return ok;
+}
+
+bool QConnmanManagerInterface::disableTechnology(const QString &type)
+{
+ QDBusReply<QList<QDBusObjectPath> > reply = this->call(QLatin1String("DisableTechnology"), QVariant::fromValue(type));
+ bool ok = true;
+ if(reply.error().type() == QDBusError::InvalidArgs) {
+ qWarning() << reply.error().message();
+ ok = false;
+ }
+ return ok;
+}
+
+QDBusObjectPath QConnmanManagerInterface::connectService(QVariantMap &map)
+{
+ QDBusReply<QDBusObjectPath > reply = this->call(QLatin1String("ConnectService"), QVariant::fromValue(map));
+ if(!reply.isValid()) {
+ qDebug() << reply.error().message();
+
+ }
+ return reply;
+}
+
+void QConnmanManagerInterface::registerAgent(QDBusObjectPath &/*path*/)
+{
+}
+
+void QConnmanManagerInterface::unregisterAgent(QDBusObjectPath /*path*/)
+{
+}
+
+void QConnmanManagerInterface::registerCounter(const QString &path, quint32 interval)
+{ QDBusReply<QList<QDBusObjectPath> > reply = this->call(QLatin1String("RegisterCounter"),
+ QVariant::fromValue(path),
+ QVariant::fromValue(interval));
+ bool ok = true;
+ if(reply.error().type() == QDBusError::InvalidArgs) {
+ qWarning() << reply.error().message();
+ }
+}
+
+void QConnmanManagerInterface::unregisterCounter(const QString &path)
+{ QDBusReply<QList<QDBusObjectPath> > reply = this->call(QLatin1String("UnregisterCounter"),
+ QVariant::fromValue(path));
+ bool ok = true;
+ if(reply.error().type() == QDBusError::InvalidArgs) {
+ qWarning() << reply.error().message();
+ }
+}
+
+QString QConnmanManagerInterface::requestSession(const QString &bearerName)
+{
+ QDBusReply<QList<QDBusObjectPath> > reply = this->call(QLatin1String("RequestSession"),
+ QVariant::fromValue(bearerName));
+ return QString();
+}
+
+void QConnmanManagerInterface::releaseSession()
+{
+ QDBusReply<QList<QDBusObjectPath> > reply = this->call(QLatin1String("ReleaseSession"));
+}
+
+
+QDBusObjectPath QConnmanManagerInterface::lookupService(const QString &service)
+{
+ QDBusReply<QDBusObjectPath > reply = this->call(QLatin1String("LookupService"), QVariant::fromValue(service));
+ if(!reply.isValid()) {
+ qDebug() << reply.error().message();
+ }
+ return reply;
+}
+
+// properties
+
+QStringList QConnmanManagerInterface::getAvailableTechnologies()
+{
+ QVariant var = getProperty("AvailableTechnologies");
+ return qdbus_cast<QStringList>(var);
+}
+
+QStringList QConnmanManagerInterface::getEnabledTechnologies()
+{
+ QVariant var = getProperty("EnabledTechnologies");
+ return qdbus_cast<QStringList>(var);
+}
+
+QStringList QConnmanManagerInterface::getConnectedTechnologies()
+{
+ QVariant var = getProperty("ConnectedTechnologies");
+ return qdbus_cast<QStringList>(var);
+}
+
+QString QConnmanManagerInterface::getDefaultTechnology()
+{
+ QVariant var = getProperty("DefaultTechnology");
+ return qdbus_cast<QString>(var);
+}
+
+bool QConnmanManagerInterface::getOfflineMode()
+{
+ QVariant var = getProperty("OfflineMode");
+ return qdbus_cast<bool>(var);
+}
+
+QString QConnmanManagerInterface::getActiveProfile()
+{
+ QVariant var = getProperty("ActiveProfile");
+ return qdbus_cast<QString>(var);
+}
+
+QStringList QConnmanManagerInterface::getProfiles()
+{
+ QVariant var = getProperty("Profiles");
+ return qdbus_cast<QStringList>(var);
+}
+
+QStringList QConnmanManagerInterface::getTechnologies()
+{
+ QVariant var = getProperty("Technologies");
+ return qdbus_cast<QStringList >(var);
+}
+
+QStringList QConnmanManagerInterface::getServices()
+{
+ QVariant var = getProperty("Services");
+ return qdbus_cast<QStringList >(var);
+}
+
+QString QConnmanManagerInterface::getPathForTechnology(const QString &name)
+{
+ foreach(const QString path, getTechnologies()) {
+ if(path.contains(name)) {
+ return path;
+ }
+ }
+ return "";
+}
+
+QConnmanNetworkInterface::QConnmanNetworkInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ dbusPathName,
+ CONNMAN_NETWORK_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanNetworkInterface::~QConnmanNetworkInterface()
+{
+}
+
+void QConnmanNetworkInterface::connectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ if(!connection().connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_NETWORK_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(QString,QDBusVariant))) ) {
+ qWarning() << "network properties not connected";
+ }
+ }
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QConnmanDBusHelper *helper;
+ helper = new QConnmanDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_NETWORK_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 QConnmanNetworkInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+
+ }
+}
+
+QVariantMap QConnmanNetworkInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QVariant QConnmanNetworkInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ }
+ return var;
+}
+
+//properties
+
+QString QConnmanNetworkInterface::getAddress()
+{
+ QVariant var = getProperty("Address");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanNetworkInterface::getName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+bool QConnmanNetworkInterface::isConnected()
+{
+ QVariant var = getProperty("Connected");
+ return qdbus_cast<bool>(var);
+}
+
+quint8 QConnmanNetworkInterface::getSignalStrength()
+{
+ QVariant var = getProperty("Strength");
+ return qdbus_cast<quint8>(var);
+}
+
+QString QConnmanNetworkInterface::getDevice()
+{
+ QVariant var = getProperty("Device");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanNetworkInterface::getWifiSsid()
+{
+ QVariant var = getProperty("WiFi.SSID");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanNetworkInterface::getWifiMode()
+{
+ QVariant var = getProperty("WiFi.Mode");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanNetworkInterface::getWifiSecurity()
+{
+ QVariant var = getProperty("WiFi.Security");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanNetworkInterface::getWifiPassphrase()
+{
+ QVariant var = getProperty("WiFi.Passphrase");
+ return qdbus_cast<QString>(var);
+}
+
+
+//////////////////////////
+
+QConnmanProfileInterface::QConnmanProfileInterface(const QString &dbusPathName,QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ dbusPathName,
+ CONNMAN_PROFILE_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanProfileInterface::~QConnmanProfileInterface()
+{
+}
+
+void QConnmanProfileInterface::connectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_PROFILE_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(QString,QDBusVariant)));
+ }
+}
+
+void QConnmanProfileInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString, QVariant))) {
+
+ }
+}
+
+QVariantMap QConnmanProfileInterface::getProperties()
+{
+ QDBusReply<QVariantMap > reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QVariant QConnmanProfileInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+ qDebug() <<__FUNCTION__<< "Could not find" << property;
+ }
+ return var;
+}
+
+// properties
+QString QConnmanProfileInterface::getName()
+{
+
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+bool QConnmanProfileInterface::isOfflineMode()
+{
+ QVariant var = getProperty("OfflineMode");
+ return qdbus_cast<bool>(var);
+}
+
+QStringList QConnmanProfileInterface::getServices()
+{
+ QVariant var = getProperty("Services");
+ return qdbus_cast<QStringList>(var);
+}
+
+///////////////////////////
+QConnmanServiceInterface::QConnmanServiceInterface(const QString &dbusPathName,QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ dbusPathName,
+ CONNMAN_SERVICE_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanServiceInterface::~QConnmanServiceInterface()
+{
+}
+
+void QConnmanServiceInterface::connectNotify(const char *signal)
+{
+// qWarning() << __FUNCTION__ << signal << this->path();
+
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_SERVICE_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(QString,QDBusVariant)));
+ }
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QConnmanDBusHelper *helper;
+ helper = new QConnmanDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_SERVICE_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 QConnmanServiceInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariantMap QConnmanServiceInterface::getProperties()
+{
+ QDBusReply<QVariantMap> reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QVariant QConnmanServiceInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ } else {
+// qDebug() <<__FUNCTION__<< "Could not find" << property;
+ }
+ return var;
+}
+
+// clearProperty
+void QConnmanServiceInterface::connect()
+{
+ QDBusReply<QVariantMap> reply = this->call(QLatin1String("Connect"));
+}
+
+void QConnmanServiceInterface::disconnect()
+{
+ QDBusReply<QVariantMap> reply = this->call(QLatin1String("Disconnect"));
+}
+
+void QConnmanServiceInterface::remove()
+{
+ QDBusReply<QVariantMap> reply = this->call(QLatin1String("Remove"));
+}
+
+// void moveBefore(QDBusObjectPath &service);
+// void moveAfter(QDBusObjectPath &service);
+
+// properties
+QString QConnmanServiceInterface::getState()
+{
+ QVariant var = getProperty("State");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getError()
+{
+ QVariant var = getProperty("Error");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getType()
+{
+ QVariant var = getProperty("Type");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getMode()
+{
+ QVariant var = getProperty("Mode");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getSecurity()
+{
+ QVariant var = getProperty("Security");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getPassphrase()
+{
+ QVariant var = getProperty("Passphrase");
+ return qdbus_cast<QString>(var);
+}
+
+bool QConnmanServiceInterface::isPassphraseRequired()
+{
+ QVariant var = getProperty("PassphraseRequired");
+ return qdbus_cast<bool>(var);
+}
+
+quint8 QConnmanServiceInterface::getSignalStrength()
+{
+ QVariant var = getProperty("Strength");
+ return qdbus_cast<quint8>(var);
+}
+
+bool QConnmanServiceInterface::isFavorite()
+{
+ QVariant var = getProperty("Favorite");
+ return qdbus_cast<bool>(var);
+}
+
+bool QConnmanServiceInterface::isImmutable()
+{
+ QVariant var = getProperty("Immutable");
+ return qdbus_cast<bool>(var);
+}
+
+bool QConnmanServiceInterface::isAutoConnect()
+{
+ QVariant var = getProperty("AutoConnect");
+ return qdbus_cast<bool>(var);
+}
+
+bool QConnmanServiceInterface::isSetupRequired()
+{
+ QVariant var = getProperty("SetupRequired");
+ return qdbus_cast<bool>(var);
+}
+
+QString QConnmanServiceInterface::getAPN()
+{
+ QVariant var = getProperty("APN");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getMCC()
+{
+ QVariant var = getProperty("MCC");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanServiceInterface::getMNC()
+{
+ QVariant var = getProperty("MNC");
+ return qdbus_cast<QString>(var);
+}
+
+bool QConnmanServiceInterface::isRoaming()
+{
+ QVariant var = getProperty("Roaming");
+ return qdbus_cast<bool>(var);
+}
+
+QStringList QConnmanServiceInterface::getNameservers()
+{
+ QVariant var = getProperty("NameServers");
+ return qdbus_cast<QStringList>(var);
+}
+
+QStringList QConnmanServiceInterface::getDomains()
+{
+ QVariant var = getProperty("Domains");
+ return qdbus_cast<QStringList>(var);
+}
+
+QVariantMap QConnmanServiceInterface::getIPv4()
+{
+ QVariant var = getProperty("IPv4");
+ return qdbus_cast<QVariantMap >(var);
+}
+
+QVariantMap QConnmanServiceInterface::getIPv4Configuration()
+{
+ QVariant var = getProperty("IPv4.Configuration");
+ return qdbus_cast<QVariantMap >(var);
+}
+
+QVariantMap QConnmanServiceInterface::getProxy()
+{
+ QVariant var = getProperty("Proxy");
+ return qdbus_cast<QVariantMap >(var);
+}
+
+QVariantMap QConnmanServiceInterface::getEthernet()
+{
+ QVariant var = getProperty("Ethernet");
+ return qdbus_cast<QVariantMap >(var);
+}
+
+bool QConnmanServiceInterface::isOfflineMode()
+{
+ QVariant var = getProperty("OfflineMode");
+ return qdbus_cast<bool>(var);
+}
+
+QStringList QConnmanServiceInterface::getServices()
+{
+ QVariant var = getProperty("Services");
+ return qdbus_cast<QStringList>(var);
+}
+
+
+//////////////////////////
+QConnmanTechnologyInterface::QConnmanTechnologyInterface(const QString &dbusPathName,QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ dbusPathName,
+ CONNMAN_TECHNOLOGY_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanTechnologyInterface::~QConnmanTechnologyInterface()
+{
+}
+
+void QConnmanTechnologyInterface::connectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_TECHNOLOGY_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(QString,QDBusVariant)));
+ }
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QConnmanDBusHelper *helper;
+ helper = new QConnmanDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_TECHNOLOGY_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 QConnmanTechnologyInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariantMap QConnmanTechnologyInterface::getProperties()
+{
+ QDBusReply<QVariantMap> reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+QVariant QConnmanTechnologyInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ }
+ return var;
+}
+
+// properties
+QString QConnmanTechnologyInterface::getState()
+{
+ QVariant var = getProperty("State");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanTechnologyInterface::getName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanTechnologyInterface::getType()
+{
+ QVariant var = getProperty("Type");
+ return qdbus_cast<QString>(var);
+}
+
+
+QStringList QConnmanTechnologyInterface::getDevices()
+{
+ QVariant var = getProperty("Devices");
+ return qdbus_cast<QStringList>(var);
+}
+
+
+//////////////////////////////////
+QConnmanAgentInterface::QConnmanAgentInterface(const QString &dbusPathName, QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ dbusPathName,
+ CONNMAN_AGENT_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanAgentInterface::~QConnmanAgentInterface()
+{
+}
+
+void QConnmanAgentInterface::connectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+// dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+// this->path(),
+// QLatin1String(CONNMAN_NETWORK_INTERFACE),
+// QLatin1String("PropertyChanged"),
+// this,SIGNAL(propertyChanged(const QString &, QVariant &)));
+ }
+}
+
+void QConnmanAgentInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString, QDBusVariant))) {
+
+ }
+}
+
+
+void QConnmanAgentInterface::release()
+{
+}
+
+void QConnmanAgentInterface::reportError(QDBusObjectPath &/*path*/, const QString &/*error*/)
+{
+}
+
+//dict QConnmanAgentInterface::requestInput(QDBusObjectPath &path, dict fields)
+//{
+//}
+
+void QConnmanAgentInterface::cancel()
+{
+}
+
+
+/////////////////////////////////////////
+QConnmanCounterInterface::QConnmanCounterInterface(const QString &dbusPathName,QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ dbusPathName,
+ CONNMAN_COUNTER_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanCounterInterface::~QConnmanCounterInterface()
+{
+}
+
+quint32 QConnmanCounterInterface::getReceivedByteCount()
+{
+return 0;
+}
+
+quint32 QConnmanCounterInterface::getTransmittedByteCount()
+{
+return 0;
+}
+
+/////////////////////////////////////////
+QConnmanDeviceInterface::QConnmanDeviceInterface(const QString &dbusPathName,QObject *parent)
+ : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE),
+ dbusPathName,
+ CONNMAN_DEVICE_INTERFACE,
+ QDBusConnection::systemBus(), parent)
+{
+}
+
+QConnmanDeviceInterface::~QConnmanDeviceInterface()
+{
+}
+
+void QConnmanDeviceInterface::connectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) {
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_DEVICE_INTERFACE),
+ QLatin1String("PropertyChanged"),
+ this,SIGNAL(propertyChanged(QString,QDBusVariant)));
+
+ }
+ if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) {
+ QConnmanDBusHelper *helper;
+ helper = new QConnmanDBusHelper(this);
+
+ dbusConnection.connect(QLatin1String(CONNMAN_SERVICE),
+ this->path(),
+ QLatin1String(CONNMAN_DEVICE_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 QConnmanDeviceInterface::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) {
+
+ }
+}
+
+QVariantMap QConnmanDeviceInterface::getProperties()
+{
+ QDBusReply<QVariantMap> reply = this->call(QLatin1String("GetProperties"));
+ return reply.value();
+}
+
+bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVariant &value)
+{
+
+// QList<QVariant> args;
+ qWarning() << __FUNCTION__ << name << value.variant();
+// args << qVariantFromValue(name);
+// args << qVariantFromValue(value);
+
+ QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, qVariantFromValue(value));
+qWarning() << reply.errorMessage();
+
+ return true;
+}
+
+void QConnmanDeviceInterface::scan()
+{
+ QDBusReply<QVariantMap> reply = this->call(QLatin1String("ProposeScan"));
+ if(!reply.isValid()) {
+ qDebug() << reply.error().message();
+ }
+}
+
+QVariant QConnmanDeviceInterface::getProperty(const QString &property)
+{
+ QVariant var;
+ QVariantMap map = getProperties();
+ if (map.contains(property)) {
+ var = map.value(property);
+ }
+ return var;
+}
+
+//properties
+QString QConnmanDeviceInterface::getAddress()
+{
+ QVariant var = getProperty("Address");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanDeviceInterface::getName()
+{
+ QVariant var = getProperty("Name");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanDeviceInterface::getType()
+{
+ QVariant var = getProperty("Type");
+ return qdbus_cast<QString>(var);
+}
+
+QString QConnmanDeviceInterface::getInterface()
+{
+ QVariant var = getProperty("Interface");
+ return qdbus_cast<QString>(var);
+}
+
+bool QConnmanDeviceInterface::isPowered()
+{
+ QVariant var = getProperty("Powered");
+ return qdbus_cast<bool>(var);
+}
+
+quint16 QConnmanDeviceInterface::getScanInterval()
+{
+ QVariant var = getProperty("ScanInterval");
+ return qdbus_cast<quint16>(var);
+}
+
+bool QConnmanDeviceInterface::setScanInterval(const QString & interval)
+{
+// QList<QVariant> args;
+// args << qVariantFromValue(name)
+// << value.variant();
+
+// QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args);
+
+ return setProperty("ScanInterval", QDBusVariant(interval));
+}
+
+bool QConnmanDeviceInterface::isScanning()
+{
+ QVariant var = getProperty("Scanning");
+ return qdbus_cast<bool>(var);
+}
+
+QStringList QConnmanDeviceInterface::getNetworks()
+{
+ QVariant var = getProperty("Networks");
+ return qdbus_cast<QStringList>(var);
+}
+
+bool QConnmanDeviceInterface::setEnabled(bool powered)
+{
+ QList<QVariant> args;
+ args << qVariantFromValue(QString("Powered"))
+ << qVariantFromValue(QDBusVariant(powered));
+
+ QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args);
+ qWarning() << reply.errorMessage() << reply.errorName();
+ return true;
+}
+
+QConnmanDBusHelper::QConnmanDBusHelper(QObject * parent)
+ : QObject(parent)
+{
+}
+
+QConnmanDBusHelper::~QConnmanDBusHelper()
+{
+}
+
+void QConnmanDBusHelper::propertyChanged(const QString &item, const QDBusVariant &var)
+{
+ QDBusMessage msg = this->message();
+// qWarning() << sender();
+ // qWarning() << msg.interface() << msg.path() << item << var.variant() <<"\n";
+ Q_EMIT propertyChangedContext(msg.path() ,item, var);
+}
+
+/////////////////
+QT_END_NAMESPACE
diff --git a/src/plugins/bearer/connman/qconnmanservice_linux_p.h b/src/plugins/bearer/connman/qconnmanservice_linux_p.h
new file mode 100644
index 0000000..35e3f3d
--- /dev/null
+++ b/src/plugins/bearer/connman/qconnmanservice_linux_p.h
@@ -0,0 +1,381 @@
+/****************************************************************************
+**
+** 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 QCONNMANSERVICE_H
+#define QCONNMANSERVICE_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>
+
+#ifndef __CONNMAN_DBUS_H
+
+#define CONNMAN_SERVICE "org.moblin.connman"
+#define CONNMAN_PATH "/org/moblin/connman"
+
+#define CONNMAN_DEBUG_INTERFACE CONNMAN_SERVICE ".Debug"
+#define CONNMAN_ERROR_INTERFACE CONNMAN_SERVICE ".Error"
+#define CONNMAN_AGENT_INTERFACE CONNMAN_SERVICE ".Agent"
+#define CONNMAN_COUNTER_INTERFACE CONNMAN_SERVICE ".Counter"
+
+#define CONNMAN_MANAGER_INTERFACE CONNMAN_SERVICE ".Manager"
+#define CONNMAN_MANAGER_PATH "/"
+
+#define CONNMAN_TASK_INTERFACE CONNMAN_SERVICE ".Task"
+#define CONNMAN_PROFILE_INTERFACE CONNMAN_SERVICE ".Profile"
+#define CONNMAN_SERVICE_INTERFACE CONNMAN_SERVICE ".Service"
+#define CONNMAN_DEVICE_INTERFACE CONNMAN_SERVICE ".Device"
+#define CONNMAN_NETWORK_INTERFACE CONNMAN_SERVICE ".Network"
+#define CONNMAN_PROVIDER_INTERFACE CONNMAN_SERVICE ".Provider"
+#define CONNMAN_TECHNOLOGY_INTERFACE CONNMAN_SERVICE ".Technology"
+#endif
+
+QT_BEGIN_NAMESPACE
+
+QT_END_NAMESPACE
+
+
+QT_BEGIN_NAMESPACE
+
+class QConnmanManagerInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanManagerInterface( QObject *parent = 0);
+ ~QConnmanManagerInterface();
+
+ QDBusObjectPath path() const;
+
+ QVariantMap getProperties();
+ bool setProperty(const QString &name, const QDBusVariant &value);
+ QDBusObjectPath createProfile(const QString &name);
+ bool removeProfile(QDBusObjectPath path);
+ bool requestScan(const QString &type);
+ bool enableTechnology(const QString &type);
+ bool disableTechnology(const QString &type);
+ QDBusObjectPath connectService(QVariantMap &map);
+ void registerAgent(QDBusObjectPath &path);
+ void unregisterAgent(QDBusObjectPath path);
+ void registerCounter(const QString &path, quint32 interval);
+ void unregisterCounter(const QString &path);
+
+ QString requestSession(const QString &bearerName);
+ void releaseSession();
+
+ // properties
+ QString getState();
+ QStringList getAvailableTechnologies();
+ QStringList getEnabledTechnologies();
+ QStringList getConnectedTechnologies();
+ QString getDefaultTechnology();
+ bool getOfflineMode();
+ QString getActiveProfile();
+ QStringList getProfiles();
+ QStringList getTechnologies();
+ QStringList getServices();
+ QDBusObjectPath lookupService(const QString &);
+
+ QString getPathForTechnology(const QString &tech);
+
+
+Q_SIGNALS:
+ void propertyChanged(const QString &, const QDBusVariant &value);
+ void stateChanged(const QString &);
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+};
+
+
+class QConnmanNetworkInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanNetworkInterface(const QString &dbusPathName, QObject *parent = 0);
+ ~QConnmanNetworkInterface();
+
+ QVariantMap getProperties();
+
+ //properties
+ QString getAddress();
+ QString getName();
+ bool isConnected();
+ quint8 getSignalStrength();
+ QString getDevice();
+ QString getWifiSsid();
+ QString getWifiMode();
+ QString getWifiSecurity();
+ QString getWifiPassphrase();
+
+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 QConnmanProfileInterfacePrivate;
+class QConnmanProfileInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanProfileInterface(const QString &dbusPathName,QObject *parent = 0);
+ ~QConnmanProfileInterface();
+
+ QVariantMap getProperties();
+// properties
+ QString getName();
+ bool isOfflineMode();
+ QStringList getServices();
+
+Q_SIGNALS:
+ void propertyChanged(const QString &, const QDBusVariant &value);
+private:
+ QConnmanProfileInterfacePrivate *d;
+
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+ QVariant getProperty(const QString &);
+};
+
+class QConnmanServiceInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanServiceInterface(const QString &dbusPathName,QObject *parent = 0);
+ ~QConnmanServiceInterface();
+
+ QVariantMap getProperties();
+ // clearProperty
+ void connect();
+ void disconnect();
+ void remove();
+ // void moveBefore(QDBusObjectPath &service);
+ // void moveAfter(QDBusObjectPath &service);
+
+// properties
+ QString getState();
+ QString getError();
+ QString getName();
+ QString getType();
+ QString getMode();
+ QString getSecurity();
+ QString getPassphrase();
+ bool isPassphraseRequired();
+ quint8 getSignalStrength();
+ bool isFavorite();
+ bool isImmutable();
+ bool isAutoConnect();
+ bool isSetupRequired();
+ QString getAPN();
+ QString getMCC();
+ QString getMNC();
+ bool isRoaming();
+ QStringList getNameservers();
+ QStringList getDomains();
+ QVariantMap getIPv4();
+ QVariantMap getIPv4Configuration();
+ QVariantMap getProxy();
+ QVariantMap getEthernet();
+
+ bool isOfflineMode();
+ QStringList getServices();
+
+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 QConnmanTechnologyInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanTechnologyInterface(const QString &dbusPathName,QObject *parent = 0);
+ ~QConnmanTechnologyInterface();
+
+ QVariantMap getProperties();
+// properties
+ QString getState();
+ QString getName();
+ QString getType();
+
+ QStringList getDevices();
+
+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 QConnmanAgentInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanAgentInterface(const QString &dbusPathName,QObject *parent = 0);
+ ~QConnmanAgentInterface();
+
+ void release();
+ void reportError(QDBusObjectPath &path, const QString &error);
+// dict requestInput(QDBusObjectPath &path, dict fields);
+ void cancel();
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+};
+
+class QConnmanCounterInterfacePrivate;
+class QConnmanCounterInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanCounterInterface(const QString &dbusPathName, QObject *parent = 0);
+ ~QConnmanCounterInterface();
+
+// void release();
+ QString getInterface();
+ quint32 getReceivedByteCount();
+ quint32 getTransmittedByteCount();
+
+private:
+ QConnmanCounterInterfacePrivate *d;
+};
+
+class QConnmanDeviceInterface : public QDBusAbstractInterface
+{
+ Q_OBJECT
+
+public:
+
+ QConnmanDeviceInterface(const QString &dbusPathName,QObject *parent = 0);
+ ~QConnmanDeviceInterface();
+
+ QVariantMap getProperties();
+ void scan();
+
+//properties
+ QString getAddress();
+ QString getName();
+ QString getType();
+ QString getInterface();
+ bool isPowered();
+ quint16 getScanInterval();
+ bool setScanInterval(const QString &interval);
+
+ bool isScanning();
+ QStringList getNetworks();
+ bool setEnabled(bool powered);
+ bool setProperty(const QString &name, const QDBusVariant &value);
+
+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 QConnmanDBusHelper: public QObject, protected QDBusContext
+ {
+ Q_OBJECT
+ public:
+ QConnmanDBusHelper(QObject *parent = 0);
+ ~QConnmanDBusHelper();
+
+ public slots:
+ void propertyChanged(const QString &, const QDBusVariant &);
+
+Q_SIGNALS:
+ void propertyChangedContext(const QString &,const QString &,const QDBusVariant &);
+};
+
+QT_END_NAMESPACE
+
+#endif //QCONNMANSERVICE_H
diff --git a/src/plugins/bearer/icd/qnetworksession_impl.cpp b/src/plugins/bearer/icd/qnetworksession_impl.cpp
index e375b4f..aeac620 100644
--- a/src/plugins/bearer/icd/qnetworksession_impl.cpp
+++ b/src/plugins/bearer/icd/qnetworksession_impl.cpp
@@ -620,6 +620,9 @@ static QString get_network_interface()
return iface;
}
+ if (addr_results.first().ip_info.isEmpty())
+ return QString();
+
const char *address = addr_results.first().ip_info.first().address.toAscii().constData();
struct in_addr addr;
if (inet_aton(address, &addr) == 0) {
diff --git a/src/plugins/bearer/symbian/3_2/3_2.pro b/src/plugins/bearer/symbian/3_2/3_2.pro
index 3404dde..6f3ecaf 100644
--- a/src/plugins/bearer/symbian/3_2/3_2.pro
+++ b/src/plugins/bearer/symbian/3_2/3_2.pro
@@ -1,12 +1,14 @@
include(../symbian.pri)
-exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
-exists($${EPOCROOT}epoc32/release/armv5/lib/cmmanager.lib) {
- DEFINES += SNAP_FUNCTIONALITY_AVAILABLE
- LIBS += -lcmmanager
-} else {
- # Fall back to 3_1 implementation on platforms that do not have cmmanager
- LIBS += -lapengine
+symbian {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
+ exists($${EPOCROOT}epoc32/release/armv5/lib/cmmanager.lib) {
+ DEFINES += SNAP_FUNCTIONALITY_AVAILABLE
+ LIBS += -lcmmanager
+ } else {
+ # Fall back to 3_1 implementation on platforms that do not have cmmanager
+ LIBS += -lapengine
+ }
}
TARGET = $${TARGET}_3_2
diff --git a/src/plugins/bearer/symbian/symbian_3/symbian_3.pro b/src/plugins/bearer/symbian/symbian_3/symbian_3.pro
index 804986a..25f18f2 100644
--- a/src/plugins/bearer/symbian/symbian_3/symbian_3.pro
+++ b/src/plugins/bearer/symbian/symbian_3/symbian_3.pro
@@ -1,17 +1,19 @@
include(../symbian.pri)
-exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
-exists($${EPOCROOT}epoc32/release/armv5/lib/cmmanager.lib) {
- DEFINES += SNAP_FUNCTIONALITY_AVAILABLE
- LIBS += -lcmmanager
+symbian {
+ exists($${EPOCROOT}epoc32/release/winscw/udeb/cmmanager.lib)| \
+ exists($${EPOCROOT}epoc32/release/armv5/lib/cmmanager.lib) {
+ DEFINES += SNAP_FUNCTIONALITY_AVAILABLE
+ LIBS += -lcmmanager
- exists($$MW_LAYER_PUBLIC_EXPORT_PATH(extendedconnpref.h)) {
- DEFINES += OCC_FUNCTIONALITY_AVAILABLE
- LIBS += -lextendedconnpref
+ exists($$MW_LAYER_PUBLIC_EXPORT_PATH(extendedconnpref.h)) {
+ DEFINES += OCC_FUNCTIONALITY_AVAILABLE
+ LIBS += -lextendedconnpref
+ }
+ } else {
+ # Fall back to 3_1 implementation on platforms that do not have cmmanager
+ LIBS += -lapengine
}
-} else {
- # Fall back to 3_1 implementation on platforms that do not have cmmanager
- LIBS += -lapengine
}
TARGET.UID3 = 0x20021319
diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def
index 9572b72..8fdd72c 100644
--- a/src/s60installs/bwins/QtDeclarativeu.def
+++ b/src/s60installs/bwins/QtDeclarativeu.def
@@ -1,1638 +1,1679 @@
-EXPORTS
- ?write@QDeclarativeProperty@@QBE_NABVQVariant@@@Z @ 1 NONAME ; bool QDeclarativeProperty::write(class QVariant const &) const
- ?setStored@QMetaPropertyBuilder@@QAEX_N@Z @ 2 NONAME ; void QMetaPropertyBuilder::setStored(bool)
- ?trUtf8@QDeclarativeExpression@@SA?AVQString@@PBD0H@Z @ 3 NONAME ; class QString QDeclarativeExpression::trUtf8(char const *, char const *, int)
- ?qt_metacast@QDeclarativeComponent@@UAEPAXPBD@Z @ 4 NONAME ; void * QDeclarativeComponent::qt_metacast(char const *)
- ?name@QDeclarativeDebugService@@QBE?AVQString@@XZ @ 5 NONAME ; class QString QDeclarativeDebugService::name(void) const
- ?debugId@QDeclarativeDebugObjectReference@@QBEHXZ @ 6 NONAME ; int QDeclarativeDebugObjectReference::debugId(void) const
- ?addPluginPath@QDeclarativeEngine@@QAEXABVQString@@@Z @ 7 NONAME ; void QDeclarativeEngine::addPluginPath(class QString const &)
- ?name@QMetaPropertyBuilder@@QBE?AVQByteArray@@XZ @ 8 NONAME ; class QByteArray QMetaPropertyBuilder::name(void) const
- ??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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 &)
- ?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)
- ?qt_metacast@QDeclarativeText@@UAEPAXPBD@Z @ 257 NONAME ; void * QDeclarativeText::qt_metacast(char const *)
- ?anchors@QDeclarativeItemPrivate@@QAEPAVQDeclarativeAnchors@@XZ @ 258 NONAME ; class QDeclarativeAnchors * QDeclarativeItemPrivate::anchors(void)
- ??0QListModelInterface@@IAE@AAVQObjectPrivate@@PAVQObject@@@Z @ 259 NONAME ; QListModelInterface::QListModelInterface(class QObjectPrivate &, class QObject *)
- ?valueTypeName@QDeclarativeDebugPropertyReference@@QBE?AVQString@@XZ @ 260 NONAME ; class QString QDeclarativeDebugPropertyReference::valueTypeName(void) const
- ?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 ; class QDeclarativeEngine * QDeclarativeView::engine(void)
- ?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
- ?staticMetaObject@QDeclarativeDebugObjectExpressionWatch@@2UQMetaObject@@B @ 271 NONAME ; struct QMetaObject const QDeclarativeDebugObjectExpressionWatch::staticMetaObject
- ??0QDeclarativeDebugPropertyReference@@QAE@ABV0@@Z @ 272 NONAME ; QDeclarativeDebugPropertyReference::QDeclarativeDebugPropertyReference(class QDeclarativeDebugPropertyReference const &)
- ??_EQDeclarativeCustomParser@@UAE@I@Z @ 273 NONAME ; QDeclarativeCustomParser::~QDeclarativeCustomParser(unsigned int)
- ??6QDeclarativeInfo@@QAEAAV0@ABVQStringRef@@@Z @ 274 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QStringRef const &)
- ?values@QDeclarativeDomList@@QBE?AV?$QList@VQDeclarativeDomValue@@@@XZ @ 275 NONAME ; class QList<class QDeclarativeDomValue> QDeclarativeDomList::values(void) const
- ?errorString@QDeclarativeComponent@@QBE?AVQString@@XZ @ 276 NONAME ; class QString QDeclarativeComponent::errorString(void) const
- ?metaObject@QDeclarativeEngineDebug@@UBEPBUQMetaObject@@XZ @ 277 NONAME ; struct QMetaObject const * QDeclarativeEngineDebug::metaObject(void) const
- ??1QDeclarativeDomValueValueInterceptor@@QAE@XZ @ 278 NONAME ; QDeclarativeDomValueValueInterceptor::~QDeclarativeDomValueValueInterceptor(void)
- ?flatten@QDeclarativeListModel@@AAE_NXZ @ 279 NONAME ; bool QDeclarativeListModel::flatten(void)
- ?propertyCount@QMetaObjectBuilder@@QBEHXZ @ 280 NONAME ; int QMetaObjectBuilder::propertyCount(void) const
- ?method@QMetaObjectBuilder@@QBE?AVQMetaMethodBuilder@@H@Z @ 281 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::method(int) const
- ?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 ; enum QDeclarativePixmapReply::Status QDeclarativePixmapCache::get(class QUrl const &, class QPixmap *, class QString *, class QSize *, bool, int, 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
- ?completeCreate@QDeclarativeComponent@@UAEXXZ @ 305 NONAME ; void QDeclarativeComponent::completeCreate(void)
- ??0QDeclarativeDomProperty@@QAE@XZ @ 306 NONAME ; QDeclarativeDomProperty::QDeclarativeDomProperty(void)
- ?initDefault@QDeclarativePropertyPrivate@@QAEXPAVQObject@@@Z @ 307 NONAME ; void QDeclarativePropertyPrivate::initDefault(class QObject *)
- ?count@QDeclarativeListModel@@UBEHXZ @ 308 NONAME ; int QDeclarativeListModel::count(void) const
- ?setSmooth@QDeclarativeItem@@QAEX_N@Z @ 309 NONAME ; void QDeclarativeItem::setSmooth(bool)
- ?value@QDeclarativeDebugPropertyReference@@QBE?AVQVariant@@XZ @ 310 NONAME ; class QVariant QDeclarativeDebugPropertyReference::value(void) const
- ?resources@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQObject@@@@XZ @ 311 NONAME ; class QDeclarativeListProperty<class QObject> QDeclarativeItemPrivate::resources(void)
- ?clear@QPacketProtocol@@QAEXXZ @ 312 NONAME ; void QPacketProtocol::clear(void)
- ?setState@QDeclarativeItemPrivate@@QAEXABVQString@@@Z @ 313 NONAME ; void QDeclarativeItemPrivate::setState(class QString const &)
- ??4QDeclarativeDebugPropertyReference@@QAEAAV0@ABV0@@Z @ 314 NONAME ; class QDeclarativeDebugPropertyReference & QDeclarativeDebugPropertyReference::operator=(class QDeclarativeDebugPropertyReference const &)
- ?metaObject@QDeclarativeView@@UBEPBUQMetaObject@@XZ @ 315 NONAME ; struct QMetaObject const * QDeclarativeView::metaObject(void) const
- ?listElementType@QDeclarativeListReference@@QBEPBUQMetaObject@@XZ @ 316 NONAME ; struct QMetaObject const * QDeclarativeListReference::listElementType(void) const
- ??0QDeclarativeProperty@@QAE@PAVQObject@@PAVQDeclarativeContext@@@Z @ 317 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QDeclarativeContext *)
- ?setTarget@QDeclarativeBehavior@@UAEXABVQDeclarativeProperty@@@Z @ 318 NONAME ; void QDeclarativeBehavior::setTarget(class QDeclarativeProperty const &)
- ?tr@QDeclarativeValueType@@SA?AVQString@@PBD0H@Z @ 319 NONAME ; class QString QDeclarativeValueType::tr(char const *, char const *, int)
- ?parent@QDeclarativeOpenMetaObject@@IBEPAUQAbstractDynamicMetaObject@@XZ @ 320 NONAME ; struct QAbstractDynamicMetaObject * QDeclarativeOpenMetaObject::parent(void) const
- ??0QDeclarativeDebugClient@@QAE@ABVQString@@PAVQDeclarativeDebugConnection@@@Z @ 321 NONAME ; QDeclarativeDebugClient::QDeclarativeDebugClient(class QString const &, class QDeclarativeDebugConnection *)
- ?qt_metacall@QDeclarativeStateOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 322 NONAME ; int QDeclarativeStateOperation::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?type@Variant@QDeclarativeParser@@QBE?AW4Type@12@XZ @ 323 NONAME ; enum QDeclarativeParser::Variant::Type QDeclarativeParser::Variant::type(void) const
- ??6QDeclarativeInfo@@QAEAAV0@_N@Z @ 324 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(bool)
- ?value@QDeclarativeDomProperty@@QBE?AVQDeclarativeDomValue@@XZ @ 325 NONAME ; class QDeclarativeDomValue QDeclarativeDomProperty::value(void) const
- ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugObjectExpressionWatch@@ABVQDeclarativeDebugObjectReference@@ABVQString@@PAVQObject@@@Z @ 326 NONAME ; class QDeclarativeDebugObjectExpressionWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugObjectReference const &, class QString const &, class QObject *)
- ??_EQDeclarativeDebugConnection@@UAE@I@Z @ 327 NONAME ; QDeclarativeDebugConnection::~QDeclarativeDebugConnection(unsigned int)
- ?qt_metacall@QDeclarativeDebugConnection@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 328 NONAME ; int QDeclarativeDebugConnection::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?tr@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0H@Z @ 329 NONAME ; class QString QDeclarativeDebugPropertyWatch::tr(char const *, char const *, int)
- ?errors@QDeclarativeComponent@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 330 NONAME ; class QList<class QDeclarativeError> QDeclarativeComponent::errors(void) const
- ??0QDeclarativeCustomParserNode@@QAE@ABV0@@Z @ 331 NONAME ; QDeclarativeCustomParserNode::QDeclarativeCustomParserNode(class QDeclarativeCustomParserNode const &)
- ??1QDeclarativeImageProvider@@UAE@XZ @ 332 NONAME ; QDeclarativeImageProvider::~QDeclarativeImageProvider(void)
- ?sync@QDeclarativeListModel@@QAEXXZ @ 333 NONAME ; void QDeclarativeListModel::sync(void)
- ?objectForId@QDeclarativeDebugService@@SAPAVQObject@@H@Z @ 334 NONAME ; class QObject * QDeclarativeDebugService::objectForId(int)
- ?hasFocus@QDeclarativeItem@@QBE_NXZ @ 335 NONAME ; bool QDeclarativeItem::hasFocus(void) const
- ??1QDeclarativeExtensionPlugin@@UAE@XZ @ 336 NONAME ; QDeclarativeExtensionPlugin::~QDeclarativeExtensionPlugin(void)
- ?qt_metacall@QDeclarativeBehavior@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 337 NONAME ; int QDeclarativeBehavior::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?d_func@QDeclarativeBehavior@@ABEPBVQDeclarativeBehaviorPrivate@@XZ @ 338 NONAME ; class QDeclarativeBehaviorPrivate const * QDeclarativeBehavior::d_func(void) const
- ?wrapModeChanged@QDeclarativeText@@IAEXXZ @ 339 NONAME ; void QDeclarativeText::wrapModeChanged(void)
- ?elideModeChanged@QDeclarativeText@@IAEXW4TextElideMode@1@@Z @ 340 NONAME ; void QDeclarativeText::elideModeChanged(enum QDeclarativeText::TextElideMode)
- ??1QDeclarativeExtensionInterface@@UAE@XZ @ 341 NONAME ; QDeclarativeExtensionInterface::~QDeclarativeExtensionInterface(void)
- ?addEnumerator@QMetaObjectBuilder@@QAE?AVQMetaEnumBuilder@@ABVQMetaEnum@@@Z @ 342 NONAME ; class QMetaEnumBuilder QMetaObjectBuilder::addEnumerator(class QMetaEnum const &)
- ?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 ; void QDeclarativePixmapReply::addRef(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 ; 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 ; 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 &)
- ?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)
- ?initialSize@QDeclarativeView@@QBE?AVQSize@@XZ @ 454 NONAME ; class QSize QDeclarativeView::initialSize(void) const
- ?interfaceIId@QDeclarativeMetaType@@SAPBDH@Z @ 455 NONAME ; char const * QDeclarativeMetaType::interfaceIId(int)
- ?isValid@QDeclarativeDomDynamicProperty@@QBE_NXZ @ 456 NONAME ; bool QDeclarativeDomDynamicProperty::isValid(void) const
- ?baselineChanged@QDeclarativeAnchors@@IAEXXZ @ 457 NONAME ; void QDeclarativeAnchors::baselineChanged(void)
- ?name@QDeclarativeState@@QBE?AVQString@@XZ @ 458 NONAME ; class QString QDeclarativeState::name(void) const
- ??4QDeclarativeDomObject@@QAEAAV0@ABV0@@Z @ 459 NONAME ; class QDeclarativeDomObject & QDeclarativeDomObject::operator=(class QDeclarativeDomObject const &)
- ?qt_metacall@QDeclarativeContext@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 460 NONAME ; int QDeclarativeContext::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??_EQDeclarativeValueType@@UAE@I@Z @ 461 NONAME ; QDeclarativeValueType::~QDeclarativeValueType(unsigned int)
- ?qt_metacall@QDeclarativeState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 462 NONAME ; int QDeclarativeState::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?isEnabled@QDeclarativeDebugService@@QBE_NXZ @ 463 NONAME ; bool QDeclarativeDebugService::isEnabled(void) const
- ?stateChanged@QDeclarativeDebugWatch@@IAEXW4State@1@@Z @ 464 NONAME ; void QDeclarativeDebugWatch::stateChanged(enum QDeclarativeDebugWatch::State)
- ??0QMetaMethodBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 465 NONAME ; QMetaMethodBuilder::QMetaMethodBuilder(class QMetaObjectBuilder const *, int)
- ??4QDeclarativeListReference@@QAEAAV0@ABV0@@Z @ 466 NONAME ; class QDeclarativeListReference & QDeclarativeListReference::operator=(class QDeclarativeListReference const &)
- ?componentFinalized@QDeclarativeBehavior@@AAEXXZ @ 467 NONAME ; void QDeclarativeBehavior::componentFinalized(void)
- ?stateChanged@QDeclarativeDebugQuery@@IAEXW4State@1@@Z @ 468 NONAME ; void QDeclarativeDebugQuery::stateChanged(enum QDeclarativeDebugQuery::State)
- ?setVerticalCenter@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 469 NONAME ; void QDeclarativeAnchors::setVerticalCenter(class QDeclarativeAnchorLine const &)
- ?keyPressEvent@QDeclarativeItem@@MAEXPAVQKeyEvent@@@Z @ 470 NONAME ; void QDeclarativeItem::keyPressEvent(class QKeyEvent *)
- ?trUtf8@QDeclarativeValueType@@SA?AVQString@@PBD0@Z @ 471 NONAME ; class QString QDeclarativeValueType::trUtf8(char const *, char const *)
- ?metaObject@QDeclarativeExtensionPlugin@@UBEPBUQMetaObject@@XZ @ 472 NONAME ; struct QMetaObject const * QDeclarativeExtensionPlugin::metaObject(void) const
- ?tr@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0H@Z @ 473 NONAME ; class QString QDeclarativeDebugObjectQuery::tr(char const *, char const *, int)
- ?setCenterIn@QDeclarativeAnchors@@QAEXPAVQGraphicsObject@@@Z @ 474 NONAME ; void QDeclarativeAnchors::setCenterIn(class QGraphicsObject *)
- ?qmlType@QDeclarativeMetaType@@SAPAVQDeclarativeType@@ABVQByteArray@@HH@Z @ 475 NONAME ; class QDeclarativeType * QDeclarativeMetaType::qmlType(class QByteArray const &, int, int)
- ??0QDeclarativeDebugObjectQuery@@AAE@PAVQObject@@@Z @ 476 NONAME ; QDeclarativeDebugObjectQuery::QDeclarativeDebugObjectQuery(class QObject *)
- ?isComponent@QDeclarativeDomObject@@QBE_NXZ @ 477 NONAME ; bool QDeclarativeDomObject::isComponent(void) const
- ?inputMethodEvent@QDeclarativeItem@@MAEXPAVQInputMethodEvent@@@Z @ 478 NONAME ; void QDeclarativeItem::inputMethodEvent(class QInputMethodEvent *)
- ?styleChanged@QDeclarativeText@@IAEXW4TextStyle@1@@Z @ 479 NONAME ; void QDeclarativeText::styleChanged(enum QDeclarativeText::TextStyle)
- ?write@QDeclarativeProperty@@SA_NPAVQObject@@ABVQString@@ABVQVariant@@PAVQDeclarativeEngine@@@Z @ 480 NONAME ; bool QDeclarativeProperty::write(class QObject *, class QString const &, class QVariant const &, class QDeclarativeEngine *)
- ?pluginPathList@QDeclarativeEngine@@QBE?AVQStringList@@XZ @ 481 NONAME ; class QStringList QDeclarativeEngine::pluginPathList(void) const
- ?parentContext@QDeclarativeContext@@QBEPAV1@XZ @ 482 NONAME ; class QDeclarativeContext * QDeclarativeContext::parentContext(void) const
- ?leftMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 483 NONAME ; void QDeclarativeAnchors::leftMarginChanged(void)
- ?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 ; void * QDeclarativePixmapReply::qt_metacast(char const *)
- ??0QPacket@@IAE@ABVQByteArray@@@Z @ 488 NONAME ; QPacket::QPacket(class QByteArray 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 ; 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@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)
- ?networkAccessManager@QDeclarativeEngine@@QBEPAVQNetworkAccessManager@@XZ @ 525 NONAME ; class QNetworkAccessManager * QDeclarativeEngine::networkAccessManager(void) const
- ??0QDeclarativeDomValue@@QAE@XZ @ 526 NONAME ; QDeclarativeDomValue::QDeclarativeDomValue(void)
- ?init@QDeclarativeItemPrivate@@QAEXPAVQDeclarativeItem@@@Z @ 527 NONAME ; void QDeclarativeItemPrivate::init(class QDeclarativeItem *)
- ?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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; int QDeclarativePixmapReply::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?valueChanged@QDeclarativeExpression@@IAEXXZ @ 814 NONAME ; void QDeclarativeExpression::valueChanged(void)
- ?childrenChanged@QDeclarativeItem@@IAEXXZ @ 815 NONAME ; 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 ; 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 ; 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 ; 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 ; 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 ; enum QDeclarativePixmapReply::Status QDeclarativePixmapReply::status(void) 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
- ?tr@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0@Z @ 871 NONAME ; class QString QDeclarativeExtensionPlugin::tr(char const *, char const *)
- ?getStaticMetaObject@QDeclarativePen@@SAABUQMetaObject@@XZ @ 872 NONAME ; struct QMetaObject const & QDeclarativePen::getStaticMetaObject(void)
- ?penChanged@QDeclarativePen@@IAEXXZ @ 873 NONAME ; void QDeclarativePen::penChanged(void)
- ?propertyTypeName@QDeclarativeDomDynamicProperty@@QBE?AVQByteArray@@XZ @ 874 NONAME ; class QByteArray QDeclarativeDomDynamicProperty::propertyTypeName(void) const
- ?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 ; class QDeclarativeContext * QDeclarativeView::rootContext(void)
- ?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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; 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 ; bool QDeclarativePixmapReply::event(class QEvent *)
- ?isConnected@QDeclarativeDebugConnection@@QBE_NXZ @ 1583 NONAME ; bool QDeclarativeDebugConnection::isConnected(void) const
- ?trUtf8@QDeclarativePixmapCache@@SA?AVQString@@PBD0@Z @ 1584 NONAME ; 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 ; 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 ; 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 ; 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)
-
+EXPORTS
+ ?write@QDeclarativeProperty@@QBE_NABVQVariant@@@Z @ 1 NONAME ; bool QDeclarativeProperty::write(class QVariant const &) const
+ ?setStored@QMetaPropertyBuilder@@QAEX_N@Z @ 2 NONAME ; void QMetaPropertyBuilder::setStored(bool)
+ ?trUtf8@QDeclarativeExpression@@SA?AVQString@@PBD0H@Z @ 3 NONAME ; class QString QDeclarativeExpression::trUtf8(char const *, char const *, int)
+ ?qt_metacast@QDeclarativeComponent@@UAEPAXPBD@Z @ 4 NONAME ; void * QDeclarativeComponent::qt_metacast(char const *)
+ ?name@QDeclarativeDebugService@@QBE?AVQString@@XZ @ 5 NONAME ; class QString QDeclarativeDebugService::name(void) const
+ ?debugId@QDeclarativeDebugObjectReference@@QBEHXZ @ 6 NONAME ; int QDeclarativeDebugObjectReference::debugId(void) const
+ ?addPluginPath@QDeclarativeEngine@@QAEXABVQString@@@Z @ 7 NONAME ; void QDeclarativeEngine::addPluginPath(class QString const &)
+ ?name@QMetaPropertyBuilder@@QBE?AVQByteArray@@XZ @ 8 NONAME ; class QByteArray QMetaPropertyBuilder::name(void) const
+ ??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 ; 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 ; 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 ; 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 &)
+ ?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)
+ ?qt_metacast@QDeclarativeText@@UAEPAXPBD@Z @ 257 NONAME ; void * QDeclarativeText::qt_metacast(char const *)
+ ?anchors@QDeclarativeItemPrivate@@QAEPAVQDeclarativeAnchors@@XZ @ 258 NONAME ; class QDeclarativeAnchors * QDeclarativeItemPrivate::anchors(void)
+ ??0QListModelInterface@@IAE@AAVQObjectPrivate@@PAVQObject@@@Z @ 259 NONAME ; QListModelInterface::QListModelInterface(class QObjectPrivate &, class QObject *)
+ ?valueTypeName@QDeclarativeDebugPropertyReference@@QBE?AVQString@@XZ @ 260 NONAME ; class QString QDeclarativeDebugPropertyReference::valueTypeName(void) const
+ ?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 ; class QDeclarativeEngine * QDeclarativeView::engine(void)
+ ?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
+ ?staticMetaObject@QDeclarativeDebugObjectExpressionWatch@@2UQMetaObject@@B @ 271 NONAME ; struct QMetaObject const QDeclarativeDebugObjectExpressionWatch::staticMetaObject
+ ??0QDeclarativeDebugPropertyReference@@QAE@ABV0@@Z @ 272 NONAME ; QDeclarativeDebugPropertyReference::QDeclarativeDebugPropertyReference(class QDeclarativeDebugPropertyReference const &)
+ ??_EQDeclarativeCustomParser@@UAE@I@Z @ 273 NONAME ; QDeclarativeCustomParser::~QDeclarativeCustomParser(unsigned int)
+ ??6QDeclarativeInfo@@QAEAAV0@ABVQStringRef@@@Z @ 274 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(class QStringRef const &)
+ ?values@QDeclarativeDomList@@QBE?AV?$QList@VQDeclarativeDomValue@@@@XZ @ 275 NONAME ; class QList<class QDeclarativeDomValue> QDeclarativeDomList::values(void) const
+ ?errorString@QDeclarativeComponent@@QBE?AVQString@@XZ @ 276 NONAME ; class QString QDeclarativeComponent::errorString(void) const
+ ?metaObject@QDeclarativeEngineDebug@@UBEPBUQMetaObject@@XZ @ 277 NONAME ; struct QMetaObject const * QDeclarativeEngineDebug::metaObject(void) const
+ ??1QDeclarativeDomValueValueInterceptor@@QAE@XZ @ 278 NONAME ; QDeclarativeDomValueValueInterceptor::~QDeclarativeDomValueValueInterceptor(void)
+ ?flatten@QDeclarativeListModel@@AAE_NXZ @ 279 NONAME ; bool QDeclarativeListModel::flatten(void)
+ ?propertyCount@QMetaObjectBuilder@@QBEHXZ @ 280 NONAME ; int QMetaObjectBuilder::propertyCount(void) const
+ ?method@QMetaObjectBuilder@@QBE?AVQMetaMethodBuilder@@H@Z @ 281 NONAME ; class QMetaMethodBuilder QMetaObjectBuilder::method(int) const
+ ?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)
+ ?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
+ ?completeCreate@QDeclarativeComponent@@UAEXXZ @ 305 NONAME ; void QDeclarativeComponent::completeCreate(void)
+ ??0QDeclarativeDomProperty@@QAE@XZ @ 306 NONAME ; QDeclarativeDomProperty::QDeclarativeDomProperty(void)
+ ?initDefault@QDeclarativePropertyPrivate@@QAEXPAVQObject@@@Z @ 307 NONAME ; void QDeclarativePropertyPrivate::initDefault(class QObject *)
+ ?count@QDeclarativeListModel@@UBEHXZ @ 308 NONAME ; int QDeclarativeListModel::count(void) const
+ ?setSmooth@QDeclarativeItem@@QAEX_N@Z @ 309 NONAME ; void QDeclarativeItem::setSmooth(bool)
+ ?value@QDeclarativeDebugPropertyReference@@QBE?AVQVariant@@XZ @ 310 NONAME ; class QVariant QDeclarativeDebugPropertyReference::value(void) const
+ ?resources@QDeclarativeItemPrivate@@QAE?AV?$QDeclarativeListProperty@VQObject@@@@XZ @ 311 NONAME ; class QDeclarativeListProperty<class QObject> QDeclarativeItemPrivate::resources(void)
+ ?clear@QPacketProtocol@@QAEXXZ @ 312 NONAME ; void QPacketProtocol::clear(void)
+ ?setState@QDeclarativeItemPrivate@@QAEXABVQString@@@Z @ 313 NONAME ; void QDeclarativeItemPrivate::setState(class QString const &)
+ ??4QDeclarativeDebugPropertyReference@@QAEAAV0@ABV0@@Z @ 314 NONAME ; class QDeclarativeDebugPropertyReference & QDeclarativeDebugPropertyReference::operator=(class QDeclarativeDebugPropertyReference const &)
+ ?metaObject@QDeclarativeView@@UBEPBUQMetaObject@@XZ @ 315 NONAME ; struct QMetaObject const * QDeclarativeView::metaObject(void) const
+ ?listElementType@QDeclarativeListReference@@QBEPBUQMetaObject@@XZ @ 316 NONAME ; struct QMetaObject const * QDeclarativeListReference::listElementType(void) const
+ ??0QDeclarativeProperty@@QAE@PAVQObject@@PAVQDeclarativeContext@@@Z @ 317 NONAME ; QDeclarativeProperty::QDeclarativeProperty(class QObject *, class QDeclarativeContext *)
+ ?setTarget@QDeclarativeBehavior@@UAEXABVQDeclarativeProperty@@@Z @ 318 NONAME ; void QDeclarativeBehavior::setTarget(class QDeclarativeProperty const &)
+ ?tr@QDeclarativeValueType@@SA?AVQString@@PBD0H@Z @ 319 NONAME ; class QString QDeclarativeValueType::tr(char const *, char const *, int)
+ ?parent@QDeclarativeOpenMetaObject@@IBEPAUQAbstractDynamicMetaObject@@XZ @ 320 NONAME ; struct QAbstractDynamicMetaObject * QDeclarativeOpenMetaObject::parent(void) const
+ ??0QDeclarativeDebugClient@@QAE@ABVQString@@PAVQDeclarativeDebugConnection@@@Z @ 321 NONAME ; QDeclarativeDebugClient::QDeclarativeDebugClient(class QString const &, class QDeclarativeDebugConnection *)
+ ?qt_metacall@QDeclarativeStateOperation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 322 NONAME ; int QDeclarativeStateOperation::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?type@Variant@QDeclarativeParser@@QBE?AW4Type@12@XZ @ 323 NONAME ; enum QDeclarativeParser::Variant::Type QDeclarativeParser::Variant::type(void) const
+ ??6QDeclarativeInfo@@QAEAAV0@_N@Z @ 324 NONAME ; class QDeclarativeInfo & QDeclarativeInfo::operator<<(bool)
+ ?value@QDeclarativeDomProperty@@QBE?AVQDeclarativeDomValue@@XZ @ 325 NONAME ; class QDeclarativeDomValue QDeclarativeDomProperty::value(void) const
+ ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugObjectExpressionWatch@@ABVQDeclarativeDebugObjectReference@@ABVQString@@PAVQObject@@@Z @ 326 NONAME ; class QDeclarativeDebugObjectExpressionWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugObjectReference const &, class QString const &, class QObject *)
+ ??_EQDeclarativeDebugConnection@@UAE@I@Z @ 327 NONAME ; QDeclarativeDebugConnection::~QDeclarativeDebugConnection(unsigned int)
+ ?qt_metacall@QDeclarativeDebugConnection@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 328 NONAME ; int QDeclarativeDebugConnection::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QDeclarativeDebugPropertyWatch@@SA?AVQString@@PBD0H@Z @ 329 NONAME ; class QString QDeclarativeDebugPropertyWatch::tr(char const *, char const *, int)
+ ?errors@QDeclarativeComponent@@QBE?AV?$QList@VQDeclarativeError@@@@XZ @ 330 NONAME ; class QList<class QDeclarativeError> QDeclarativeComponent::errors(void) const
+ ??0QDeclarativeCustomParserNode@@QAE@ABV0@@Z @ 331 NONAME ; QDeclarativeCustomParserNode::QDeclarativeCustomParserNode(class QDeclarativeCustomParserNode const &)
+ ??1QDeclarativeImageProvider@@UAE@XZ @ 332 NONAME ; QDeclarativeImageProvider::~QDeclarativeImageProvider(void)
+ ?sync@QDeclarativeListModel@@QAEXXZ @ 333 NONAME ; void QDeclarativeListModel::sync(void)
+ ?objectForId@QDeclarativeDebugService@@SAPAVQObject@@H@Z @ 334 NONAME ; class QObject * QDeclarativeDebugService::objectForId(int)
+ ?hasFocus@QDeclarativeItem@@QBE_NXZ @ 335 NONAME ; bool QDeclarativeItem::hasFocus(void) const
+ ??1QDeclarativeExtensionPlugin@@UAE@XZ @ 336 NONAME ; QDeclarativeExtensionPlugin::~QDeclarativeExtensionPlugin(void)
+ ?qt_metacall@QDeclarativeBehavior@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 337 NONAME ; int QDeclarativeBehavior::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?d_func@QDeclarativeBehavior@@ABEPBVQDeclarativeBehaviorPrivate@@XZ @ 338 NONAME ; class QDeclarativeBehaviorPrivate const * QDeclarativeBehavior::d_func(void) const
+ ?wrapModeChanged@QDeclarativeText@@IAEXXZ @ 339 NONAME ; void QDeclarativeText::wrapModeChanged(void)
+ ?elideModeChanged@QDeclarativeText@@IAEXW4TextElideMode@1@@Z @ 340 NONAME ; void QDeclarativeText::elideModeChanged(enum QDeclarativeText::TextElideMode)
+ ??1QDeclarativeExtensionInterface@@UAE@XZ @ 341 NONAME ; QDeclarativeExtensionInterface::~QDeclarativeExtensionInterface(void)
+ ?addEnumerator@QMetaObjectBuilder@@QAE?AVQMetaEnumBuilder@@ABVQMetaEnum@@@Z @ 342 NONAME ; class QMetaEnumBuilder QMetaObjectBuilder::addEnumerator(class QMetaEnum const &)
+ ?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)
+ ?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 ; 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 &)
+ ?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)
+ ?initialSize@QDeclarativeView@@QBE?AVQSize@@XZ @ 454 NONAME ; class QSize QDeclarativeView::initialSize(void) const
+ ?interfaceIId@QDeclarativeMetaType@@SAPBDH@Z @ 455 NONAME ; char const * QDeclarativeMetaType::interfaceIId(int)
+ ?isValid@QDeclarativeDomDynamicProperty@@QBE_NXZ @ 456 NONAME ; bool QDeclarativeDomDynamicProperty::isValid(void) const
+ ?baselineChanged@QDeclarativeAnchors@@IAEXXZ @ 457 NONAME ; void QDeclarativeAnchors::baselineChanged(void)
+ ?name@QDeclarativeState@@QBE?AVQString@@XZ @ 458 NONAME ; class QString QDeclarativeState::name(void) const
+ ??4QDeclarativeDomObject@@QAEAAV0@ABV0@@Z @ 459 NONAME ; class QDeclarativeDomObject & QDeclarativeDomObject::operator=(class QDeclarativeDomObject const &)
+ ?qt_metacall@QDeclarativeContext@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 460 NONAME ; int QDeclarativeContext::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??_EQDeclarativeValueType@@UAE@I@Z @ 461 NONAME ; QDeclarativeValueType::~QDeclarativeValueType(unsigned int)
+ ?qt_metacall@QDeclarativeState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 462 NONAME ; int QDeclarativeState::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?isEnabled@QDeclarativeDebugService@@QBE_NXZ @ 463 NONAME ; bool QDeclarativeDebugService::isEnabled(void) const
+ ?stateChanged@QDeclarativeDebugWatch@@IAEXW4State@1@@Z @ 464 NONAME ; void QDeclarativeDebugWatch::stateChanged(enum QDeclarativeDebugWatch::State)
+ ??0QMetaMethodBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 465 NONAME ; QMetaMethodBuilder::QMetaMethodBuilder(class QMetaObjectBuilder const *, int)
+ ??4QDeclarativeListReference@@QAEAAV0@ABV0@@Z @ 466 NONAME ; class QDeclarativeListReference & QDeclarativeListReference::operator=(class QDeclarativeListReference const &)
+ ?componentFinalized@QDeclarativeBehavior@@AAEXXZ @ 467 NONAME ; void QDeclarativeBehavior::componentFinalized(void)
+ ?stateChanged@QDeclarativeDebugQuery@@IAEXW4State@1@@Z @ 468 NONAME ; void QDeclarativeDebugQuery::stateChanged(enum QDeclarativeDebugQuery::State)
+ ?setVerticalCenter@QDeclarativeAnchors@@QAEXABVQDeclarativeAnchorLine@@@Z @ 469 NONAME ; void QDeclarativeAnchors::setVerticalCenter(class QDeclarativeAnchorLine const &)
+ ?keyPressEvent@QDeclarativeItem@@MAEXPAVQKeyEvent@@@Z @ 470 NONAME ; void QDeclarativeItem::keyPressEvent(class QKeyEvent *)
+ ?trUtf8@QDeclarativeValueType@@SA?AVQString@@PBD0@Z @ 471 NONAME ; class QString QDeclarativeValueType::trUtf8(char const *, char const *)
+ ?metaObject@QDeclarativeExtensionPlugin@@UBEPBUQMetaObject@@XZ @ 472 NONAME ; struct QMetaObject const * QDeclarativeExtensionPlugin::metaObject(void) const
+ ?tr@QDeclarativeDebugObjectQuery@@SA?AVQString@@PBD0H@Z @ 473 NONAME ; class QString QDeclarativeDebugObjectQuery::tr(char const *, char const *, int)
+ ?setCenterIn@QDeclarativeAnchors@@QAEXPAVQGraphicsObject@@@Z @ 474 NONAME ; void QDeclarativeAnchors::setCenterIn(class QGraphicsObject *)
+ ?qmlType@QDeclarativeMetaType@@SAPAVQDeclarativeType@@ABVQByteArray@@HH@Z @ 475 NONAME ; class QDeclarativeType * QDeclarativeMetaType::qmlType(class QByteArray const &, int, int)
+ ??0QDeclarativeDebugObjectQuery@@AAE@PAVQObject@@@Z @ 476 NONAME ; QDeclarativeDebugObjectQuery::QDeclarativeDebugObjectQuery(class QObject *)
+ ?isComponent@QDeclarativeDomObject@@QBE_NXZ @ 477 NONAME ; bool QDeclarativeDomObject::isComponent(void) const
+ ?inputMethodEvent@QDeclarativeItem@@MAEXPAVQInputMethodEvent@@@Z @ 478 NONAME ; void QDeclarativeItem::inputMethodEvent(class QInputMethodEvent *)
+ ?styleChanged@QDeclarativeText@@IAEXW4TextStyle@1@@Z @ 479 NONAME ; void QDeclarativeText::styleChanged(enum QDeclarativeText::TextStyle)
+ ?write@QDeclarativeProperty@@SA_NPAVQObject@@ABVQString@@ABVQVariant@@PAVQDeclarativeEngine@@@Z @ 480 NONAME ; bool QDeclarativeProperty::write(class QObject *, class QString const &, class QVariant const &, class QDeclarativeEngine *)
+ ?pluginPathList@QDeclarativeEngine@@QBE?AVQStringList@@XZ @ 481 NONAME ; class QStringList QDeclarativeEngine::pluginPathList(void) const
+ ?parentContext@QDeclarativeContext@@QBEPAV1@XZ @ 482 NONAME ; class QDeclarativeContext * QDeclarativeContext::parentContext(void) const
+ ?leftMarginChanged@QDeclarativeAnchors@@IAEXXZ @ 483 NONAME ; void QDeclarativeAnchors::leftMarginChanged(void)
+ ?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 &)
+ ?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@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)
+ ?networkAccessManager@QDeclarativeEngine@@QBEPAVQNetworkAccessManager@@XZ @ 525 NONAME ; class QNetworkAccessManager * QDeclarativeEngine::networkAccessManager(void) const
+ ??0QDeclarativeDomValue@@QAE@XZ @ 526 NONAME ; QDeclarativeDomValue::QDeclarativeDomValue(void)
+ ?init@QDeclarativeItemPrivate@@QAEXPAVQDeclarativeItem@@@Z @ 527 NONAME ; void QDeclarativeItemPrivate::init(class QDeclarativeItem *)
+ ?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 ; 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
+ ??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
+ ?tr@QDeclarativeExtensionPlugin@@SA?AVQString@@PBD0@Z @ 871 NONAME ; class QString QDeclarativeExtensionPlugin::tr(char const *, char const *)
+ ?getStaticMetaObject@QDeclarativePen@@SAABUQMetaObject@@XZ @ 872 NONAME ; struct QMetaObject const & QDeclarativePen::getStaticMetaObject(void)
+ ?penChanged@QDeclarativePen@@IAEXXZ @ 873 NONAME ; void QDeclarativePen::penChanged(void)
+ ?propertyTypeName@QDeclarativeDomDynamicProperty@@QBE?AVQByteArray@@XZ @ 874 NONAME ; class QByteArray QDeclarativeDomDynamicProperty::propertyTypeName(void) const
+ ?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 ; class QDeclarativeContext * QDeclarativeView::rootContext(void)
+ ?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 ; 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 ; 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 ; 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 &)
+
diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def
index ea9bc18..dd5103f 100644
--- a/src/s60installs/eabi/QtDeclarativeu.def
+++ b/src/s60installs/eabi/QtDeclarativeu.def
@@ -1,1669 +1,1710 @@
-EXPORTS
- _Z10qmlContextPK7QObject @ 1 NONAME
- _Z18qmlExecuteDeferredP7QObject @ 2 NONAME
- _Z27qmlAttachedPropertiesObjectPiPK7QObjectPK11QMetaObjectb @ 3 NONAME
- _Z31qmlAttachedPropertiesObjectByIdiPK7QObjectb @ 4 NONAME
- _Z7qmlInfoPK7QObject @ 5 NONAME
- _Z7qmlInfoPK7QObjectRK17QDeclarativeError @ 6 NONAME
- _Z7qmlInfoPK7QObjectRK5QListI17QDeclarativeErrorE @ 7 NONAME
- _Z9qmlEnginePK7QObject @ 8 NONAME
- _ZN15QDeclarativePen10penChangedEv @ 9 NONAME
- _ZN15QDeclarativePen11qt_metacallEN11QMetaObject4CallEiPPv @ 10 NONAME
- _ZN15QDeclarativePen11qt_metacastEPKc @ 11 NONAME
- _ZN15QDeclarativePen16staticMetaObjectE @ 12 NONAME DATA 16
- _ZN15QDeclarativePen19getStaticMetaObjectEv @ 13 NONAME
- _ZN15QDeclarativePen8setColorERK6QColor @ 14 NONAME
- _ZN15QDeclarativePen8setWidthEi @ 15 NONAME
- _ZN15QPacketAutoSendC1EP15QPacketProtocol @ 16 NONAME
- _ZN15QPacketAutoSendC2EP15QPacketProtocol @ 17 NONAME
- _ZN15QPacketAutoSendD0Ev @ 18 NONAME
- _ZN15QPacketAutoSendD1Ev @ 19 NONAME
- _ZN15QPacketAutoSendD2Ev @ 20 NONAME
- _ZN15QPacketProtocol11qt_metacallEN11QMetaObject4CallEiPPv @ 21 NONAME
- _ZN15QPacketProtocol11qt_metacastEPKc @ 22 NONAME
- _ZN15QPacketProtocol13invalidPacketEv @ 23 NONAME
- _ZN15QPacketProtocol13packetWrittenEv @ 24 NONAME
- _ZN15QPacketProtocol16staticMetaObjectE @ 25 NONAME DATA 16
- _ZN15QPacketProtocol19getStaticMetaObjectEv @ 26 NONAME
- _ZN15QPacketProtocol20setMaximumPacketSizeEi @ 27 NONAME
- _ZN15QPacketProtocol4readEv @ 28 NONAME
- _ZN15QPacketProtocol4sendERK7QPacket @ 29 NONAME
- _ZN15QPacketProtocol4sendEv @ 30 NONAME
- _ZN15QPacketProtocol5clearEv @ 31 NONAME
- _ZN15QPacketProtocol6deviceEv @ 32 NONAME
- _ZN15QPacketProtocol9readyReadEv @ 33 NONAME
- _ZN15QPacketProtocolC1EP9QIODeviceP7QObject @ 34 NONAME
- _ZN15QPacketProtocolC2EP9QIODeviceP7QObject @ 35 NONAME
- _ZN15QPacketProtocolD0Ev @ 36 NONAME
- _ZN15QPacketProtocolD1Ev @ 37 NONAME
- _ZN15QPacketProtocolD2Ev @ 38 NONAME
- _ZN16QDeclarativeInfoC1EP23QDeclarativeInfoPrivate @ 39 NONAME
- _ZN16QDeclarativeInfoC1ERKS_ @ 40 NONAME
- _ZN16QDeclarativeInfoC2EP23QDeclarativeInfoPrivate @ 41 NONAME
- _ZN16QDeclarativeInfoC2ERKS_ @ 42 NONAME
- _ZN16QDeclarativeInfoD1Ev @ 43 NONAME
- _ZN16QDeclarativeInfoD2Ev @ 44 NONAME
- _ZN16QDeclarativeItem10classBeginEv @ 45 NONAME
- _ZN16QDeclarativeItem10forceFocusEv @ 46 NONAME
- _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
- _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
- _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
- _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
- _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
- _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
- _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
- _ZN19QDeclarativePrivate12registerTypeERKNS_17RegisterInterfaceE @ 388 NONAME
- _ZN19QDeclarativePrivate26registerAutoParentFunctionEPFNS_16AutoParentResultEP7QObjectS2_E @ 389 NONAME
- _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
- _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
- _ZN23QDeclarativePixmapCache3getERK4QUrlP7QPixmapP7QStringP5QSizebii @ 732 NONAME
- _ZN23QDeclarativePixmapCache6cancelERK4QUrlP7QObject @ 733 NONAME
- _ZN23QDeclarativePixmapCache7requestEP18QDeclarativeEngineRK4QUrlii @ 734 NONAME
- _ZN23QDeclarativePixmapReply10setLoadingEv @ 735 NONAME
- _ZN23QDeclarativePixmapReply11qt_metacallEN11QMetaObject4CallEiPPv @ 736 NONAME
- _ZN23QDeclarativePixmapReply11qt_metacastEPKc @ 737 NONAME
- _ZN23QDeclarativePixmapReply16downloadProgressExx @ 738 NONAME
- _ZN23QDeclarativePixmapReply16staticMetaObjectE @ 739 NONAME DATA 16
- _ZN23QDeclarativePixmapReply19getStaticMetaObjectEv @ 740 NONAME
- _ZN23QDeclarativePixmapReply5eventEP6QEvent @ 741 NONAME
- _ZN23QDeclarativePixmapReply6addRefEv @ 742 NONAME
- _ZN23QDeclarativePixmapReply7releaseEb @ 743 NONAME
- _ZN23QDeclarativePixmapReply8finishedEv @ 744 NONAME
- _ZN23QDeclarativePixmapReplyC1EP23QDeclarativeImageReaderRK4QUrlii @ 745 NONAME
- _ZN23QDeclarativePixmapReplyC2EP23QDeclarativeImageReaderRK4QUrlii @ 746 NONAME
- _ZN23QDeclarativePixmapReplyD0Ev @ 747 NONAME
- _ZN23QDeclarativePixmapReplyD1Ev @ 748 NONAME
- _ZN23QDeclarativePixmapReplyD2Ev @ 749 NONAME
- _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
- _ZN25QDeclarativeImageProviderD0Ev @ 802 NONAME
- _ZN25QDeclarativeImageProviderD1Ev @ 803 NONAME
- _ZN25QDeclarativeImageProviderD2Ev @ 804 NONAME
- _ZN25QDeclarativeListReferenceC1EP7QObjectPKcP18QDeclarativeEngine @ 805 NONAME
- _ZN25QDeclarativeListReferenceC1ERKS_ @ 806 NONAME
- _ZN25QDeclarativeListReferenceC1Ev @ 807 NONAME
- _ZN25QDeclarativeListReferenceC2EP7QObjectPKcP18QDeclarativeEngine @ 808 NONAME
- _ZN25QDeclarativeListReferenceC2ERKS_ @ 809 NONAME
- _ZN25QDeclarativeListReferenceC2Ev @ 810 NONAME
- _ZN25QDeclarativeListReferenceD1Ev @ 811 NONAME
- _ZN25QDeclarativeListReferenceD2Ev @ 812 NONAME
- _ZN25QDeclarativeListReferenceaSERKS_ @ 813 NONAME
- _ZN26QDeclarativeDebuggerStatus16setSelectedStateEb @ 814 NONAME
- _ZN26QDeclarativeDebuggerStatusD0Ev @ 815 NONAME
- _ZN26QDeclarativeDebuggerStatusD1Ev @ 816 NONAME
- _ZN26QDeclarativeDebuggerStatusD2Ev @ 817 NONAME
- _ZN26QDeclarativeOpenMetaObject12initialValueEi @ 818 NONAME
- _ZN26QDeclarativeOpenMetaObject12propertyReadEi @ 819 NONAME
- _ZN26QDeclarativeOpenMetaObject13propertyWriteEi @ 820 NONAME
- _ZN26QDeclarativeOpenMetaObject14createPropertyEPKcS1_ @ 821 NONAME
- _ZN26QDeclarativeOpenMetaObject15propertyCreatedEiR20QMetaPropertyBuilder @ 822 NONAME
- _ZN26QDeclarativeOpenMetaObject15propertyWrittenEi @ 823 NONAME
- _ZN26QDeclarativeOpenMetaObject8metaCallEN11QMetaObject4CallEiPPv @ 824 NONAME
- _ZN26QDeclarativeOpenMetaObject8setValueERK10QByteArrayRK8QVariant @ 825 NONAME
- _ZN26QDeclarativeOpenMetaObject8setValueEiRK8QVariant @ 826 NONAME
- _ZN26QDeclarativeOpenMetaObject9setCachedEb @ 827 NONAME
- _ZN26QDeclarativeOpenMetaObjectC1EP7QObjectP30QDeclarativeOpenMetaObjectTypeb @ 828 NONAME
- _ZN26QDeclarativeOpenMetaObjectC1EP7QObjectb @ 829 NONAME
- _ZN26QDeclarativeOpenMetaObjectC2EP7QObjectP30QDeclarativeOpenMetaObjectTypeb @ 830 NONAME
- _ZN26QDeclarativeOpenMetaObjectC2EP7QObjectb @ 831 NONAME
- _ZN26QDeclarativeOpenMetaObjectD0Ev @ 832 NONAME
- _ZN26QDeclarativeOpenMetaObjectD1Ev @ 833 NONAME
- _ZN26QDeclarativeOpenMetaObjectD2Ev @ 834 NONAME
- _ZN26QDeclarativeOpenMetaObjectixERK10QByteArray @ 835 NONAME
- _ZN26QDeclarativeOpenMetaObjectixEi @ 836 NONAME
- _ZN26QDeclarativeStateOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 837 NONAME
- _ZN26QDeclarativeStateOperation11qt_metacastEPKc @ 838 NONAME
- _ZN26QDeclarativeStateOperation16staticMetaObjectE @ 839 NONAME DATA 16
- _ZN26QDeclarativeStateOperation19getStaticMetaObjectEv @ 840 NONAME
- _ZN26QDeclarativeStateOperation7actionsEv @ 841 NONAME
- _ZN26QDeclarativeStateOperationC1ER14QObjectPrivateP7QObject @ 842 NONAME
- _ZN26QDeclarativeStateOperationC2ER14QObjectPrivateP7QObject @ 843 NONAME
- _ZN27QDeclarativeAbstractBinding10setEnabledEb6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 844 NONAME
- _ZN27QDeclarativeAbstractBinding11addToObjectEP7QObject @ 845 NONAME
- _ZN27QDeclarativeAbstractBinding16removeFromObjectEv @ 846 NONAME
- _ZN27QDeclarativeAbstractBinding5clearEv @ 847 NONAME
- _ZN27QDeclarativeAbstractBinding7destroyEv @ 848 NONAME
- _ZN27QDeclarativeAbstractBindingC2Ev @ 849 NONAME
- _ZN27QDeclarativeAbstractBindingD0Ev @ 850 NONAME
- _ZN27QDeclarativeAbstractBindingD1Ev @ 851 NONAME
- _ZN27QDeclarativeAbstractBindingD2Ev @ 852 NONAME
- _ZN27QDeclarativeDebugConnection11qt_metacallEN11QMetaObject4CallEiPPv @ 853 NONAME
- _ZN27QDeclarativeDebugConnection11qt_metacastEPKc @ 854 NONAME
- _ZN27QDeclarativeDebugConnection16staticMetaObjectE @ 855 NONAME DATA 16
- _ZN27QDeclarativeDebugConnection19getStaticMetaObjectEv @ 856 NONAME
- _ZN27QDeclarativeDebugConnectionC1EP7QObject @ 857 NONAME
- _ZN27QDeclarativeDebugConnectionC2EP7QObject @ 858 NONAME
- _ZN27QDeclarativeDomValueBindingC1ERKS_ @ 859 NONAME
- _ZN27QDeclarativeDomValueBindingC1Ev @ 860 NONAME
- _ZN27QDeclarativeDomValueBindingC2ERKS_ @ 861 NONAME
- _ZN27QDeclarativeDomValueBindingC2Ev @ 862 NONAME
- _ZN27QDeclarativeDomValueBindingD1Ev @ 863 NONAME
- _ZN27QDeclarativeDomValueBindingD2Ev @ 864 NONAME
- _ZN27QDeclarativeDomValueBindingaSERKS_ @ 865 NONAME
- _ZN27QDeclarativeDomValueLiteralC1ERKS_ @ 866 NONAME
- _ZN27QDeclarativeDomValueLiteralC1Ev @ 867 NONAME
- _ZN27QDeclarativeDomValueLiteralC2ERKS_ @ 868 NONAME
- _ZN27QDeclarativeDomValueLiteralC2Ev @ 869 NONAME
- _ZN27QDeclarativeDomValueLiteralD1Ev @ 870 NONAME
- _ZN27QDeclarativeDomValueLiteralD2Ev @ 871 NONAME
- _ZN27QDeclarativeDomValueLiteralaSERKS_ @ 872 NONAME
- _ZN27QDeclarativeExtensionPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 873 NONAME
- _ZN27QDeclarativeExtensionPlugin11qt_metacastEPKc @ 874 NONAME
- _ZN27QDeclarativeExtensionPlugin16initializeEngineEP18QDeclarativeEnginePKc @ 875 NONAME
- _ZN27QDeclarativeExtensionPlugin16staticMetaObjectE @ 876 NONAME DATA 16
- _ZN27QDeclarativeExtensionPlugin19getStaticMetaObjectEv @ 877 NONAME
- _ZN27QDeclarativeExtensionPluginC2EP7QObject @ 878 NONAME
- _ZN27QDeclarativeExtensionPluginD0Ev @ 879 NONAME
- _ZN27QDeclarativeExtensionPluginD1Ev @ 880 NONAME
- _ZN27QDeclarativeExtensionPluginD2Ev @ 881 NONAME
- _ZN27QDeclarativeGridScaledImage12stringToRuleERK7QString @ 882 NONAME
- _ZN27QDeclarativeGridScaledImageC1EP9QIODevice @ 883 NONAME
- _ZN27QDeclarativeGridScaledImageC1ERKS_ @ 884 NONAME
- _ZN27QDeclarativeGridScaledImageC1Ev @ 885 NONAME
- _ZN27QDeclarativeGridScaledImageC2EP9QIODevice @ 886 NONAME
- _ZN27QDeclarativeGridScaledImageC2ERKS_ @ 887 NONAME
- _ZN27QDeclarativeGridScaledImageC2Ev @ 888 NONAME
- _ZN27QDeclarativeGridScaledImageaSERKS_ @ 889 NONAME
- _ZN27QDeclarativePropertyPrivate10canConvertEPK11QMetaObjectS2_ @ 890 NONAME
- _ZN27QDeclarativePropertyPrivate10setBindingEP7QObjectiiP27QDeclarativeAbstractBinding6QFlagsINS_9WriteFlagEE @ 891 NONAME
- _ZN27QDeclarativePropertyPrivate10setBindingERK20QDeclarativePropertyP27QDeclarativeAbstractBinding6QFlagsINS_9WriteFlagEE @ 892 NONAME
- _ZN27QDeclarativePropertyPrivate11initDefaultEP7QObject @ 893 NONAME
- _ZN27QDeclarativePropertyPrivate12bindingIndexERK20QDeclarativeProperty @ 894 NONAME
- _ZN27QDeclarativePropertyPrivate12initPropertyEP7QObjectRK7QString @ 895 NONAME
- _ZN27QDeclarativePropertyPrivate12savePropertyEPK11QMetaObjecti @ 896 NONAME
- _ZN27QDeclarativePropertyPrivate13saveValueTypeEPK11QMetaObjectiS2_i @ 897 NONAME
- _ZN27QDeclarativePropertyPrivate16findSignalByNameEPK11QMetaObjectRK10QByteArray @ 898 NONAME
- _ZN27QDeclarativePropertyPrivate16signalExpressionERK20QDeclarativeProperty @ 899 NONAME
- _ZN27QDeclarativePropertyPrivate17readValuePropertyEv @ 900 NONAME
- _ZN27QDeclarativePropertyPrivate17writeEnumPropertyERK13QMetaPropertyiP7QObjectRK8QVarianti @ 901 NONAME
- _ZN27QDeclarativePropertyPrivate18valueTypeCoreIndexERK20QDeclarativeProperty @ 902 NONAME
- _ZN27QDeclarativePropertyPrivate18writeValuePropertyERK8QVariant6QFlagsINS_9WriteFlagEE @ 903 NONAME
- _ZN27QDeclarativePropertyPrivate19setSignalExpressionERK20QDeclarativePropertyP22QDeclarativeExpression @ 904 NONAME
- _ZN27QDeclarativePropertyPrivate20rawMetaObjectForTypeEP25QDeclarativeEnginePrivatei @ 905 NONAME
- _ZN27QDeclarativePropertyPrivate5equalEPK11QMetaObjectS2_ @ 906 NONAME
- _ZN27QDeclarativePropertyPrivate5writeEP7QObjectRKN25QDeclarativePropertyCache4DataERK8QVariantP23QDeclarativeContextData6QFlagsINS_9WriteFlagEE @ 907 NONAME
- _ZN27QDeclarativePropertyPrivate5writeERK20QDeclarativePropertyRK8QVariant6QFlagsINS_9WriteFlagEE @ 908 NONAME
- _ZN27QDeclarativePropertyPrivate7bindingERK20QDeclarativeProperty @ 909 NONAME
- _ZN27QDeclarativePropertyPrivate7restoreERK10QByteArrayP7QObjectP23QDeclarativeContextData @ 910 NONAME
- _ZN28QDeclarativeCustomParserNodeC1ERKS_ @ 911 NONAME
- _ZN28QDeclarativeCustomParserNodeC1Ev @ 912 NONAME
- _ZN28QDeclarativeCustomParserNodeC2ERKS_ @ 913 NONAME
- _ZN28QDeclarativeCustomParserNodeC2Ev @ 914 NONAME
- _ZN28QDeclarativeCustomParserNodeD1Ev @ 915 NONAME
- _ZN28QDeclarativeCustomParserNodeD2Ev @ 916 NONAME
- _ZN28QDeclarativeCustomParserNodeaSERKS_ @ 917 NONAME
- _ZN28QDeclarativeDebugObjectQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 918 NONAME
- _ZN28QDeclarativeDebugObjectQuery11qt_metacastEPKc @ 919 NONAME
- _ZN28QDeclarativeDebugObjectQuery16staticMetaObjectE @ 920 NONAME DATA 16
- _ZN28QDeclarativeDebugObjectQuery19getStaticMetaObjectEv @ 921 NONAME
- _ZN28QDeclarativeDebugObjectQueryC1EP7QObject @ 922 NONAME
- _ZN28QDeclarativeDebugObjectQueryC2EP7QObject @ 923 NONAME
- _ZN28QDeclarativeDebugObjectQueryD0Ev @ 924 NONAME
- _ZN28QDeclarativeDebugObjectQueryD1Ev @ 925 NONAME
- _ZN28QDeclarativeDebugObjectQueryD2Ev @ 926 NONAME
- _ZN28QDeclarativeStringConverters14dateFromStringERK7QStringPb @ 927 NONAME
- _ZN28QDeclarativeStringConverters14timeFromStringERK7QStringPb @ 928 NONAME
- _ZN28QDeclarativeStringConverters15colorFromStringERK7QStringPb @ 929 NONAME
- _ZN28QDeclarativeStringConverters15rectFFromStringERK7QStringPb @ 930 NONAME
- _ZN28QDeclarativeStringConverters15sizeFFromStringERK7QStringPb @ 931 NONAME
- _ZN28QDeclarativeStringConverters16pointFFromStringERK7QStringPb @ 932 NONAME
- _ZN28QDeclarativeStringConverters17variantFromStringERK7QString @ 933 NONAME
- _ZN28QDeclarativeStringConverters17variantFromStringERK7QStringiPb @ 934 NONAME
- _ZN28QDeclarativeStringConverters18dateTimeFromStringERK7QStringPb @ 935 NONAME
- _ZN28QDeclarativeStringConverters18vector3DFromStringERK7QStringPb @ 936 NONAME
- _ZN28QDeclarativeValueTypeFactory11isValueTypeEi @ 937 NONAME
- _ZN28QDeclarativeValueTypeFactory18registerValueTypesEv @ 938 NONAME
- _ZN28QDeclarativeValueTypeFactory9valueTypeEi @ 939 NONAME
- _ZN28QDeclarativeValueTypeFactoryC1Ev @ 940 NONAME
- _ZN28QDeclarativeValueTypeFactoryC2Ev @ 941 NONAME
- _ZN28QDeclarativeValueTypeFactoryD1Ev @ 942 NONAME
- _ZN28QDeclarativeValueTypeFactoryD2Ev @ 943 NONAME
- _ZN29QDeclarativeDebugEnginesQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 944 NONAME
- _ZN29QDeclarativeDebugEnginesQuery11qt_metacastEPKc @ 945 NONAME
- _ZN29QDeclarativeDebugEnginesQuery16staticMetaObjectE @ 946 NONAME DATA 16
- _ZN29QDeclarativeDebugEnginesQuery19getStaticMetaObjectEv @ 947 NONAME
- _ZN29QDeclarativeDebugEnginesQueryC1EP7QObject @ 948 NONAME
- _ZN29QDeclarativeDebugEnginesQueryC2EP7QObject @ 949 NONAME
- _ZN29QDeclarativeDebugEnginesQueryD0Ev @ 950 NONAME
- _ZN29QDeclarativeDebugEnginesQueryD1Ev @ 951 NONAME
- _ZN29QDeclarativeDebugEnginesQueryD2Ev @ 952 NONAME
- _ZN30QDeclarativeDebugFileReference13setLineNumberEi @ 953 NONAME
- _ZN30QDeclarativeDebugFileReference15setColumnNumberEi @ 954 NONAME
- _ZN30QDeclarativeDebugFileReference6setUrlERK4QUrl @ 955 NONAME
- _ZN30QDeclarativeDebugFileReferenceC1ERKS_ @ 956 NONAME
- _ZN30QDeclarativeDebugFileReferenceC1Ev @ 957 NONAME
- _ZN30QDeclarativeDebugFileReferenceC2ERKS_ @ 958 NONAME
- _ZN30QDeclarativeDebugFileReferenceC2Ev @ 959 NONAME
- _ZN30QDeclarativeDebugFileReferenceaSERKS_ @ 960 NONAME
- _ZN30QDeclarativeDebugPropertyWatch11qt_metacallEN11QMetaObject4CallEiPPv @ 961 NONAME
- _ZN30QDeclarativeDebugPropertyWatch11qt_metacastEPKc @ 962 NONAME
- _ZN30QDeclarativeDebugPropertyWatch16staticMetaObjectE @ 963 NONAME DATA 16
- _ZN30QDeclarativeDebugPropertyWatch19getStaticMetaObjectEv @ 964 NONAME
- _ZN30QDeclarativeDebugPropertyWatchC1EP7QObject @ 965 NONAME
- _ZN30QDeclarativeDebugPropertyWatchC2EP7QObject @ 966 NONAME
- _ZN30QDeclarativeDomDynamicPropertyC1ERKS_ @ 967 NONAME
- _ZN30QDeclarativeDomDynamicPropertyC1Ev @ 968 NONAME
- _ZN30QDeclarativeDomDynamicPropertyC2ERKS_ @ 969 NONAME
- _ZN30QDeclarativeDomDynamicPropertyC2Ev @ 970 NONAME
- _ZN30QDeclarativeDomDynamicPropertyD1Ev @ 971 NONAME
- _ZN30QDeclarativeDomDynamicPropertyD2Ev @ 972 NONAME
- _ZN30QDeclarativeDomDynamicPropertyaSERKS_ @ 973 NONAME
- _ZN30QDeclarativeOpenMetaObjectType14createPropertyERK10QByteArray @ 974 NONAME
- _ZN30QDeclarativeOpenMetaObjectType15propertyCreatedEiR20QMetaPropertyBuilder @ 975 NONAME
- _ZN30QDeclarativeOpenMetaObjectTypeC1EPK11QMetaObjectP18QDeclarativeEngine @ 976 NONAME
- _ZN30QDeclarativeOpenMetaObjectTypeC2EPK11QMetaObjectP18QDeclarativeEngine @ 977 NONAME
- _ZN30QDeclarativeOpenMetaObjectTypeD0Ev @ 978 NONAME
- _ZN30QDeclarativeOpenMetaObjectTypeD1Ev @ 979 NONAME
- _ZN30QDeclarativeOpenMetaObjectTypeD2Ev @ 980 NONAME
- _ZN31QDeclarativeDomValueValueSourceC1ERKS_ @ 981 NONAME
- _ZN31QDeclarativeDomValueValueSourceC1Ev @ 982 NONAME
- _ZN31QDeclarativeDomValueValueSourceC2ERKS_ @ 983 NONAME
- _ZN31QDeclarativeDomValueValueSourceC2Ev @ 984 NONAME
- _ZN31QDeclarativeDomValueValueSourceD1Ev @ 985 NONAME
- _ZN31QDeclarativeDomValueValueSourceD2Ev @ 986 NONAME
- _ZN31QDeclarativeDomValueValueSourceaSERKS_ @ 987 NONAME
- _ZN31QDeclarativePropertyValueSourceC2Ev @ 988 NONAME
- _ZN31QDeclarativePropertyValueSourceD0Ev @ 989 NONAME
- _ZN31QDeclarativePropertyValueSourceD1Ev @ 990 NONAME
- _ZN31QDeclarativePropertyValueSourceD2Ev @ 991 NONAME
- _ZN32QDeclarativeCustomParserPropertyC1ERKS_ @ 992 NONAME
- _ZN32QDeclarativeCustomParserPropertyC1Ev @ 993 NONAME
- _ZN32QDeclarativeCustomParserPropertyC2ERKS_ @ 994 NONAME
- _ZN32QDeclarativeCustomParserPropertyC2Ev @ 995 NONAME
- _ZN32QDeclarativeCustomParserPropertyD1Ev @ 996 NONAME
- _ZN32QDeclarativeCustomParserPropertyD2Ev @ 997 NONAME
- _ZN32QDeclarativeCustomParserPropertyaSERKS_ @ 998 NONAME
- _ZN32QDeclarativeDebugEngineReferenceC1ERKS_ @ 999 NONAME
- _ZN32QDeclarativeDebugEngineReferenceC1Ei @ 1000 NONAME
- _ZN32QDeclarativeDebugEngineReferenceC1Ev @ 1001 NONAME
- _ZN32QDeclarativeDebugEngineReferenceC2ERKS_ @ 1002 NONAME
- _ZN32QDeclarativeDebugEngineReferenceC2Ei @ 1003 NONAME
- _ZN32QDeclarativeDebugEngineReferenceC2Ev @ 1004 NONAME
- _ZN32QDeclarativeDebugEngineReferenceaSERKS_ @ 1005 NONAME
- _ZN32QDeclarativeDebugExpressionQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 1006 NONAME
- _ZN32QDeclarativeDebugExpressionQuery11qt_metacastEPKc @ 1007 NONAME
- _ZN32QDeclarativeDebugExpressionQuery16staticMetaObjectE @ 1008 NONAME DATA 16
- _ZN32QDeclarativeDebugExpressionQuery19getStaticMetaObjectEv @ 1009 NONAME
- _ZN32QDeclarativeDebugExpressionQueryC1EP7QObject @ 1010 NONAME
- _ZN32QDeclarativeDebugExpressionQueryC2EP7QObject @ 1011 NONAME
- _ZN32QDeclarativeDebugExpressionQueryD0Ev @ 1012 NONAME
- _ZN32QDeclarativeDebugExpressionQueryD1Ev @ 1013 NONAME
- _ZN32QDeclarativeDebugExpressionQueryD2Ev @ 1014 NONAME
- _ZN32QDeclarativeDebugObjectReferenceC1ERKS_ @ 1015 NONAME
- _ZN32QDeclarativeDebugObjectReferenceC1Ei @ 1016 NONAME
- _ZN32QDeclarativeDebugObjectReferenceC1Ev @ 1017 NONAME
- _ZN32QDeclarativeDebugObjectReferenceC2ERKS_ @ 1018 NONAME
- _ZN32QDeclarativeDebugObjectReferenceC2Ei @ 1019 NONAME
- _ZN32QDeclarativeDebugObjectReferenceC2Ev @ 1020 NONAME
- _ZN32QDeclarativeDebugObjectReferenceaSERKS_ @ 1021 NONAME
- _ZN33QDeclarativeDebugContextReferenceC1ERKS_ @ 1022 NONAME
- _ZN33QDeclarativeDebugContextReferenceC1Ev @ 1023 NONAME
- _ZN33QDeclarativeDebugContextReferenceC2ERKS_ @ 1024 NONAME
- _ZN33QDeclarativeDebugContextReferenceC2Ev @ 1025 NONAME
- _ZN33QDeclarativeDebugContextReferenceaSERKS_ @ 1026 NONAME
- _ZN33QDeclarativeDebugRootContextQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 1027 NONAME
- _ZN33QDeclarativeDebugRootContextQuery11qt_metacastEPKc @ 1028 NONAME
- _ZN33QDeclarativeDebugRootContextQuery16staticMetaObjectE @ 1029 NONAME DATA 16
- _ZN33QDeclarativeDebugRootContextQuery19getStaticMetaObjectEv @ 1030 NONAME
- _ZN33QDeclarativeDebugRootContextQueryC1EP7QObject @ 1031 NONAME
- _ZN33QDeclarativeDebugRootContextQueryC2EP7QObject @ 1032 NONAME
- _ZN33QDeclarativeDebugRootContextQueryD0Ev @ 1033 NONAME
- _ZN33QDeclarativeDebugRootContextQueryD1Ev @ 1034 NONAME
- _ZN33QDeclarativeDebugRootContextQueryD2Ev @ 1035 NONAME
- _ZN34QDeclarativeDebugPropertyReferenceC1ERKS_ @ 1036 NONAME
- _ZN34QDeclarativeDebugPropertyReferenceC1Ev @ 1037 NONAME
- _ZN34QDeclarativeDebugPropertyReferenceC2ERKS_ @ 1038 NONAME
- _ZN34QDeclarativeDebugPropertyReferenceC2Ev @ 1039 NONAME
- _ZN34QDeclarativeDebugPropertyReferenceaSERKS_ @ 1040 NONAME
- _ZN36QDeclarativeDomValueValueInterceptorC1ERKS_ @ 1041 NONAME
- _ZN36QDeclarativeDomValueValueInterceptorC1Ev @ 1042 NONAME
- _ZN36QDeclarativeDomValueValueInterceptorC2ERKS_ @ 1043 NONAME
- _ZN36QDeclarativeDomValueValueInterceptorC2Ev @ 1044 NONAME
- _ZN36QDeclarativeDomValueValueInterceptorD1Ev @ 1045 NONAME
- _ZN36QDeclarativeDomValueValueInterceptorD2Ev @ 1046 NONAME
- _ZN36QDeclarativeDomValueValueInterceptoraSERKS_ @ 1047 NONAME
- _ZN36QDeclarativePropertyValueInterceptorC2Ev @ 1048 NONAME
- _ZN36QDeclarativePropertyValueInterceptorD0Ev @ 1049 NONAME
- _ZN36QDeclarativePropertyValueInterceptorD1Ev @ 1050 NONAME
- _ZN36QDeclarativePropertyValueInterceptorD2Ev @ 1051 NONAME
- _ZN38QDeclarativeDebugObjectExpressionWatch11qt_metacallEN11QMetaObject4CallEiPPv @ 1052 NONAME
- _ZN38QDeclarativeDebugObjectExpressionWatch11qt_metacastEPKc @ 1053 NONAME
- _ZN38QDeclarativeDebugObjectExpressionWatch16staticMetaObjectE @ 1054 NONAME DATA 16
- _ZN38QDeclarativeDebugObjectExpressionWatch19getStaticMetaObjectEv @ 1055 NONAME
- _ZN38QDeclarativeDebugObjectExpressionWatchC1EP7QObject @ 1056 NONAME
- _ZN38QDeclarativeDebugObjectExpressionWatchC2EP7QObject @ 1057 NONAME
- _ZN39QDeclarativeNetworkAccessManagerFactoryD0Ev @ 1058 NONAME
- _ZN39QDeclarativeNetworkAccessManagerFactoryD1Ev @ 1059 NONAME
- _ZN39QDeclarativeNetworkAccessManagerFactoryD2Ev @ 1060 NONAME
- _ZN7QPacket5clearEv @ 1061 NONAME
- _ZN7QPacketC1ERK10QByteArray @ 1062 NONAME
- _ZN7QPacketC1ERKS_ @ 1063 NONAME
- _ZN7QPacketC1Ev @ 1064 NONAME
- _ZN7QPacketC2ERK10QByteArray @ 1065 NONAME
- _ZN7QPacketC2ERKS_ @ 1066 NONAME
- _ZN7QPacketC2Ev @ 1067 NONAME
- _ZN7QPacketD0Ev @ 1068 NONAME
- _ZN7QPacketD1Ev @ 1069 NONAME
- _ZN7QPacketD2Ev @ 1070 NONAME
- _ZNK15QDeclarativePen10metaObjectEv @ 1071 NONAME
- _ZNK15QPacketProtocol10metaObjectEv @ 1072 NONAME
- _ZNK15QPacketProtocol16packetsAvailableEv @ 1073 NONAME
- _ZNK15QPacketProtocol17maximumPacketSizeEv @ 1074 NONAME
- _ZNK16QDeclarativeItem10metaObjectEv @ 1075 NONAME
- _ZNK16QDeclarativeItem10parentItemEv @ 1076 NONAME
- _ZNK16QDeclarativeItem10wantsFocusEv @ 1077 NONAME
- _ZNK16QDeclarativeItem10widthValidEv @ 1078 NONAME
- _ZNK16QDeclarativeItem11heightValidEv @ 1079 NONAME
- _ZNK16QDeclarativeItem11mapFromItemERK12QScriptValueff @ 1080 NONAME
- _ZNK16QDeclarativeItem12boundingRectEv @ 1081 NONAME
- _ZNK16QDeclarativeItem13implicitWidthEv @ 1082 NONAME
- _ZNK16QDeclarativeItem13keepMouseGrabEv @ 1083 NONAME
- _ZNK16QDeclarativeItem14baselineOffsetEv @ 1084 NONAME
- _ZNK16QDeclarativeItem14implicitHeightEv @ 1085 NONAME
- _ZNK16QDeclarativeItem15transformOriginEv @ 1086 NONAME
- _ZNK16QDeclarativeItem16inputMethodQueryEN2Qt16InputMethodQueryE @ 1087 NONAME
- _ZNK16QDeclarativeItem19isComponentCompleteEv @ 1088 NONAME
- _ZNK16QDeclarativeItem4clipEv @ 1089 NONAME
- _ZNK16QDeclarativeItem5widthEv @ 1090 NONAME
- _ZNK16QDeclarativeItem6heightEv @ 1091 NONAME
- _ZNK16QDeclarativeItem6smoothEv @ 1092 NONAME
- _ZNK16QDeclarativeItem7childAtEff @ 1093 NONAME
- _ZNK16QDeclarativeItem8hasFocusEv @ 1094 NONAME
- _ZNK16QDeclarativeItem9mapToItemERK12QScriptValueff @ 1095 NONAME
- _ZNK16QDeclarativeText10metaObjectEv @ 1096 NONAME
- _ZNK16QDeclarativeText10styleColorEv @ 1097 NONAME
- _ZNK16QDeclarativeText10textFormatEv @ 1098 NONAME
- _ZNK16QDeclarativeText12boundingRectEv @ 1099 NONAME
- _ZNK16QDeclarativeText12paintedWidthEv @ 1100 NONAME
- _ZNK16QDeclarativeText13paintedHeightEv @ 1101 NONAME
- _ZNK16QDeclarativeText16resourcesLoadingEv @ 1102 NONAME
- _ZNK16QDeclarativeText4fontEv @ 1103 NONAME
- _ZNK16QDeclarativeText4textEv @ 1104 NONAME
- _ZNK16QDeclarativeText5colorEv @ 1105 NONAME
- _ZNK16QDeclarativeText5styleEv @ 1106 NONAME
- _ZNK16QDeclarativeText6hAlignEv @ 1107 NONAME
- _ZNK16QDeclarativeText6vAlignEv @ 1108 NONAME
- _ZNK16QDeclarativeText8wrapModeEv @ 1109 NONAME
- _ZNK16QDeclarativeText9elideModeEv @ 1110 NONAME
- _ZNK16QDeclarativeType10createSizeEv @ 1111 NONAME
- _ZNK16QDeclarativeType10metaObjectEv @ 1112 NONAME
- _ZNK16QDeclarativeType11isCreatableEv @ 1113 NONAME
- _ZNK16QDeclarativeType11isInterfaceEv @ 1114 NONAME
- _ZNK16QDeclarativeType11qListTypeIdEv @ 1115 NONAME
- _ZNK16QDeclarativeType11qmlTypeNameEv @ 1116 NONAME
- _ZNK16QDeclarativeType12customParserEv @ 1117 NONAME
- _ZNK16QDeclarativeType12interfaceIIdEv @ 1118 NONAME
- _ZNK16QDeclarativeType12majorVersionEv @ 1119 NONAME
- _ZNK16QDeclarativeType12minorVersionEv @ 1120 NONAME
- _ZNK16QDeclarativeType14baseMetaObjectEv @ 1121 NONAME
- _ZNK16QDeclarativeType14createFunctionEv @ 1122 NONAME
- _ZNK16QDeclarativeType14isExtendedTypeEv @ 1123 NONAME
- _ZNK16QDeclarativeType16noCreationReasonEv @ 1124 NONAME
- _ZNK16QDeclarativeType16parserStatusCastEv @ 1125 NONAME
- _ZNK16QDeclarativeType18availableInVersionEii @ 1126 NONAME
- _ZNK16QDeclarativeType22attachedPropertiesTypeEv @ 1127 NONAME
- _ZNK16QDeclarativeType23propertyValueSourceCastEv @ 1128 NONAME
- _ZNK16QDeclarativeType26attachedPropertiesFunctionEv @ 1129 NONAME
- _ZNK16QDeclarativeType28propertyValueInterceptorCastEv @ 1130 NONAME
- _ZNK16QDeclarativeType5indexEv @ 1131 NONAME
- _ZNK16QDeclarativeType6createEPP7QObjectPPvj @ 1132 NONAME
- _ZNK16QDeclarativeType6createEv @ 1133 NONAME
- _ZNK16QDeclarativeType6typeIdEv @ 1134 NONAME
- _ZNK16QDeclarativeType8typeNameEv @ 1135 NONAME
- _ZNK16QDeclarativeView10metaObjectEv @ 1136 NONAME
- _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
- _ZNK23QDeclarativePixmapReply11errorStringEv @ 1402 NONAME
- _ZNK23QDeclarativePixmapReply11forcedWidthEv @ 1403 NONAME
- _ZNK23QDeclarativePixmapReply12forcedHeightEv @ 1404 NONAME
- _ZNK23QDeclarativePixmapReply12implicitSizeEv @ 1405 NONAME
- _ZNK23QDeclarativePixmapReply3urlEv @ 1406 NONAME
- _ZNK23QDeclarativePixmapReply6statusEv @ 1407 NONAME
- _ZNK23QDeclarativePixmapReply9isLoadingEv @ 1408 NONAME
- _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
- _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
- _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
-
+EXPORTS
+ _Z10qmlContextPK7QObject @ 1 NONAME
+ _Z18qmlExecuteDeferredP7QObject @ 2 NONAME
+ _Z27qmlAttachedPropertiesObjectPiPK7QObjectPK11QMetaObjectb @ 3 NONAME
+ _Z31qmlAttachedPropertiesObjectByIdiPK7QObjectb @ 4 NONAME
+ _Z7qmlInfoPK7QObject @ 5 NONAME
+ _Z7qmlInfoPK7QObjectRK17QDeclarativeError @ 6 NONAME
+ _Z7qmlInfoPK7QObjectRK5QListI17QDeclarativeErrorE @ 7 NONAME
+ _Z9qmlEnginePK7QObject @ 8 NONAME
+ _ZN15QDeclarativePen10penChangedEv @ 9 NONAME
+ _ZN15QDeclarativePen11qt_metacallEN11QMetaObject4CallEiPPv @ 10 NONAME
+ _ZN15QDeclarativePen11qt_metacastEPKc @ 11 NONAME
+ _ZN15QDeclarativePen16staticMetaObjectE @ 12 NONAME DATA 16
+ _ZN15QDeclarativePen19getStaticMetaObjectEv @ 13 NONAME
+ _ZN15QDeclarativePen8setColorERK6QColor @ 14 NONAME
+ _ZN15QDeclarativePen8setWidthEi @ 15 NONAME
+ _ZN15QPacketAutoSendC1EP15QPacketProtocol @ 16 NONAME
+ _ZN15QPacketAutoSendC2EP15QPacketProtocol @ 17 NONAME
+ _ZN15QPacketAutoSendD0Ev @ 18 NONAME
+ _ZN15QPacketAutoSendD1Ev @ 19 NONAME
+ _ZN15QPacketAutoSendD2Ev @ 20 NONAME
+ _ZN15QPacketProtocol11qt_metacallEN11QMetaObject4CallEiPPv @ 21 NONAME
+ _ZN15QPacketProtocol11qt_metacastEPKc @ 22 NONAME
+ _ZN15QPacketProtocol13invalidPacketEv @ 23 NONAME
+ _ZN15QPacketProtocol13packetWrittenEv @ 24 NONAME
+ _ZN15QPacketProtocol16staticMetaObjectE @ 25 NONAME DATA 16
+ _ZN15QPacketProtocol19getStaticMetaObjectEv @ 26 NONAME
+ _ZN15QPacketProtocol20setMaximumPacketSizeEi @ 27 NONAME
+ _ZN15QPacketProtocol4readEv @ 28 NONAME
+ _ZN15QPacketProtocol4sendERK7QPacket @ 29 NONAME
+ _ZN15QPacketProtocol4sendEv @ 30 NONAME
+ _ZN15QPacketProtocol5clearEv @ 31 NONAME
+ _ZN15QPacketProtocol6deviceEv @ 32 NONAME
+ _ZN15QPacketProtocol9readyReadEv @ 33 NONAME
+ _ZN15QPacketProtocolC1EP9QIODeviceP7QObject @ 34 NONAME
+ _ZN15QPacketProtocolC2EP9QIODeviceP7QObject @ 35 NONAME
+ _ZN15QPacketProtocolD0Ev @ 36 NONAME
+ _ZN15QPacketProtocolD1Ev @ 37 NONAME
+ _ZN15QPacketProtocolD2Ev @ 38 NONAME
+ _ZN16QDeclarativeInfoC1EP23QDeclarativeInfoPrivate @ 39 NONAME
+ _ZN16QDeclarativeInfoC1ERKS_ @ 40 NONAME
+ _ZN16QDeclarativeInfoC2EP23QDeclarativeInfoPrivate @ 41 NONAME
+ _ZN16QDeclarativeInfoC2ERKS_ @ 42 NONAME
+ _ZN16QDeclarativeInfoD1Ev @ 43 NONAME
+ _ZN16QDeclarativeInfoD2Ev @ 44 NONAME
+ _ZN16QDeclarativeItem10classBeginEv @ 45 NONAME
+ _ZN16QDeclarativeItem10forceFocusEv @ 46 NONAME
+ _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
+ _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
+ _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
+ _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
+ _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
+ _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
+ _ZN19QDeclarativePrivate12registerTypeERKNS_17RegisterInterfaceE @ 388 NONAME
+ _ZN19QDeclarativePrivate26registerAutoParentFunctionEPFNS_16AutoParentResultEP7QObjectS2_E @ 389 NONAME
+ _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
+ _ZN25QDeclarativeImageProviderD0Ev @ 802 NONAME
+ _ZN25QDeclarativeImageProviderD1Ev @ 803 NONAME
+ _ZN25QDeclarativeImageProviderD2Ev @ 804 NONAME
+ _ZN25QDeclarativeListReferenceC1EP7QObjectPKcP18QDeclarativeEngine @ 805 NONAME
+ _ZN25QDeclarativeListReferenceC1ERKS_ @ 806 NONAME
+ _ZN25QDeclarativeListReferenceC1Ev @ 807 NONAME
+ _ZN25QDeclarativeListReferenceC2EP7QObjectPKcP18QDeclarativeEngine @ 808 NONAME
+ _ZN25QDeclarativeListReferenceC2ERKS_ @ 809 NONAME
+ _ZN25QDeclarativeListReferenceC2Ev @ 810 NONAME
+ _ZN25QDeclarativeListReferenceD1Ev @ 811 NONAME
+ _ZN25QDeclarativeListReferenceD2Ev @ 812 NONAME
+ _ZN25QDeclarativeListReferenceaSERKS_ @ 813 NONAME
+ _ZN26QDeclarativeDebuggerStatus16setSelectedStateEb @ 814 NONAME
+ _ZN26QDeclarativeDebuggerStatusD0Ev @ 815 NONAME
+ _ZN26QDeclarativeDebuggerStatusD1Ev @ 816 NONAME
+ _ZN26QDeclarativeDebuggerStatusD2Ev @ 817 NONAME
+ _ZN26QDeclarativeOpenMetaObject12initialValueEi @ 818 NONAME
+ _ZN26QDeclarativeOpenMetaObject12propertyReadEi @ 819 NONAME
+ _ZN26QDeclarativeOpenMetaObject13propertyWriteEi @ 820 NONAME
+ _ZN26QDeclarativeOpenMetaObject14createPropertyEPKcS1_ @ 821 NONAME
+ _ZN26QDeclarativeOpenMetaObject15propertyCreatedEiR20QMetaPropertyBuilder @ 822 NONAME
+ _ZN26QDeclarativeOpenMetaObject15propertyWrittenEi @ 823 NONAME
+ _ZN26QDeclarativeOpenMetaObject8metaCallEN11QMetaObject4CallEiPPv @ 824 NONAME
+ _ZN26QDeclarativeOpenMetaObject8setValueERK10QByteArrayRK8QVariant @ 825 NONAME
+ _ZN26QDeclarativeOpenMetaObject8setValueEiRK8QVariant @ 826 NONAME
+ _ZN26QDeclarativeOpenMetaObject9setCachedEb @ 827 NONAME
+ _ZN26QDeclarativeOpenMetaObjectC1EP7QObjectP30QDeclarativeOpenMetaObjectTypeb @ 828 NONAME
+ _ZN26QDeclarativeOpenMetaObjectC1EP7QObjectb @ 829 NONAME
+ _ZN26QDeclarativeOpenMetaObjectC2EP7QObjectP30QDeclarativeOpenMetaObjectTypeb @ 830 NONAME
+ _ZN26QDeclarativeOpenMetaObjectC2EP7QObjectb @ 831 NONAME
+ _ZN26QDeclarativeOpenMetaObjectD0Ev @ 832 NONAME
+ _ZN26QDeclarativeOpenMetaObjectD1Ev @ 833 NONAME
+ _ZN26QDeclarativeOpenMetaObjectD2Ev @ 834 NONAME
+ _ZN26QDeclarativeOpenMetaObjectixERK10QByteArray @ 835 NONAME
+ _ZN26QDeclarativeOpenMetaObjectixEi @ 836 NONAME
+ _ZN26QDeclarativeStateOperation11qt_metacallEN11QMetaObject4CallEiPPv @ 837 NONAME
+ _ZN26QDeclarativeStateOperation11qt_metacastEPKc @ 838 NONAME
+ _ZN26QDeclarativeStateOperation16staticMetaObjectE @ 839 NONAME DATA 16
+ _ZN26QDeclarativeStateOperation19getStaticMetaObjectEv @ 840 NONAME
+ _ZN26QDeclarativeStateOperation7actionsEv @ 841 NONAME
+ _ZN26QDeclarativeStateOperationC1ER14QObjectPrivateP7QObject @ 842 NONAME
+ _ZN26QDeclarativeStateOperationC2ER14QObjectPrivateP7QObject @ 843 NONAME
+ _ZN27QDeclarativeAbstractBinding10setEnabledEb6QFlagsIN27QDeclarativePropertyPrivate9WriteFlagEE @ 844 NONAME
+ _ZN27QDeclarativeAbstractBinding11addToObjectEP7QObject @ 845 NONAME
+ _ZN27QDeclarativeAbstractBinding16removeFromObjectEv @ 846 NONAME
+ _ZN27QDeclarativeAbstractBinding5clearEv @ 847 NONAME
+ _ZN27QDeclarativeAbstractBinding7destroyEv @ 848 NONAME
+ _ZN27QDeclarativeAbstractBindingC2Ev @ 849 NONAME
+ _ZN27QDeclarativeAbstractBindingD0Ev @ 850 NONAME
+ _ZN27QDeclarativeAbstractBindingD1Ev @ 851 NONAME
+ _ZN27QDeclarativeAbstractBindingD2Ev @ 852 NONAME
+ _ZN27QDeclarativeDebugConnection11qt_metacallEN11QMetaObject4CallEiPPv @ 853 NONAME
+ _ZN27QDeclarativeDebugConnection11qt_metacastEPKc @ 854 NONAME
+ _ZN27QDeclarativeDebugConnection16staticMetaObjectE @ 855 NONAME DATA 16
+ _ZN27QDeclarativeDebugConnection19getStaticMetaObjectEv @ 856 NONAME
+ _ZN27QDeclarativeDebugConnectionC1EP7QObject @ 857 NONAME
+ _ZN27QDeclarativeDebugConnectionC2EP7QObject @ 858 NONAME
+ _ZN27QDeclarativeDomValueBindingC1ERKS_ @ 859 NONAME
+ _ZN27QDeclarativeDomValueBindingC1Ev @ 860 NONAME
+ _ZN27QDeclarativeDomValueBindingC2ERKS_ @ 861 NONAME
+ _ZN27QDeclarativeDomValueBindingC2Ev @ 862 NONAME
+ _ZN27QDeclarativeDomValueBindingD1Ev @ 863 NONAME
+ _ZN27QDeclarativeDomValueBindingD2Ev @ 864 NONAME
+ _ZN27QDeclarativeDomValueBindingaSERKS_ @ 865 NONAME
+ _ZN27QDeclarativeDomValueLiteralC1ERKS_ @ 866 NONAME
+ _ZN27QDeclarativeDomValueLiteralC1Ev @ 867 NONAME
+ _ZN27QDeclarativeDomValueLiteralC2ERKS_ @ 868 NONAME
+ _ZN27QDeclarativeDomValueLiteralC2Ev @ 869 NONAME
+ _ZN27QDeclarativeDomValueLiteralD1Ev @ 870 NONAME
+ _ZN27QDeclarativeDomValueLiteralD2Ev @ 871 NONAME
+ _ZN27QDeclarativeDomValueLiteralaSERKS_ @ 872 NONAME
+ _ZN27QDeclarativeExtensionPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 873 NONAME
+ _ZN27QDeclarativeExtensionPlugin11qt_metacastEPKc @ 874 NONAME
+ _ZN27QDeclarativeExtensionPlugin16initializeEngineEP18QDeclarativeEnginePKc @ 875 NONAME
+ _ZN27QDeclarativeExtensionPlugin16staticMetaObjectE @ 876 NONAME DATA 16
+ _ZN27QDeclarativeExtensionPlugin19getStaticMetaObjectEv @ 877 NONAME
+ _ZN27QDeclarativeExtensionPluginC2EP7QObject @ 878 NONAME
+ _ZN27QDeclarativeExtensionPluginD0Ev @ 879 NONAME
+ _ZN27QDeclarativeExtensionPluginD1Ev @ 880 NONAME
+ _ZN27QDeclarativeExtensionPluginD2Ev @ 881 NONAME
+ _ZN27QDeclarativeGridScaledImage12stringToRuleERK7QString @ 882 NONAME
+ _ZN27QDeclarativeGridScaledImageC1EP9QIODevice @ 883 NONAME
+ _ZN27QDeclarativeGridScaledImageC1ERKS_ @ 884 NONAME
+ _ZN27QDeclarativeGridScaledImageC1Ev @ 885 NONAME
+ _ZN27QDeclarativeGridScaledImageC2EP9QIODevice @ 886 NONAME
+ _ZN27QDeclarativeGridScaledImageC2ERKS_ @ 887 NONAME
+ _ZN27QDeclarativeGridScaledImageC2Ev @ 888 NONAME
+ _ZN27QDeclarativeGridScaledImageaSERKS_ @ 889 NONAME
+ _ZN27QDeclarativePropertyPrivate10canConvertEPK11QMetaObjectS2_ @ 890 NONAME
+ _ZN27QDeclarativePropertyPrivate10setBindingEP7QObjectiiP27QDeclarativeAbstractBinding6QFlagsINS_9WriteFlagEE @ 891 NONAME
+ _ZN27QDeclarativePropertyPrivate10setBindingERK20QDeclarativePropertyP27QDeclarativeAbstractBinding6QFlagsINS_9WriteFlagEE @ 892 NONAME
+ _ZN27QDeclarativePropertyPrivate11initDefaultEP7QObject @ 893 NONAME
+ _ZN27QDeclarativePropertyPrivate12bindingIndexERK20QDeclarativeProperty @ 894 NONAME
+ _ZN27QDeclarativePropertyPrivate12initPropertyEP7QObjectRK7QString @ 895 NONAME
+ _ZN27QDeclarativePropertyPrivate12savePropertyEPK11QMetaObjecti @ 896 NONAME
+ _ZN27QDeclarativePropertyPrivate13saveValueTypeEPK11QMetaObjectiS2_i @ 897 NONAME
+ _ZN27QDeclarativePropertyPrivate16findSignalByNameEPK11QMetaObjectRK10QByteArray @ 898 NONAME
+ _ZN27QDeclarativePropertyPrivate16signalExpressionERK20QDeclarativeProperty @ 899 NONAME
+ _ZN27QDeclarativePropertyPrivate17readValuePropertyEv @ 900 NONAME
+ _ZN27QDeclarativePropertyPrivate17writeEnumPropertyERK13QMetaPropertyiP7QObjectRK8QVarianti @ 901 NONAME
+ _ZN27QDeclarativePropertyPrivate18valueTypeCoreIndexERK20QDeclarativeProperty @ 902 NONAME
+ _ZN27QDeclarativePropertyPrivate18writeValuePropertyERK8QVariant6QFlagsINS_9WriteFlagEE @ 903 NONAME
+ _ZN27QDeclarativePropertyPrivate19setSignalExpressionERK20QDeclarativePropertyP22QDeclarativeExpression @ 904 NONAME
+ _ZN27QDeclarativePropertyPrivate20rawMetaObjectForTypeEP25QDeclarativeEnginePrivatei @ 905 NONAME
+ _ZN27QDeclarativePropertyPrivate5equalEPK11QMetaObjectS2_ @ 906 NONAME
+ _ZN27QDeclarativePropertyPrivate5writeEP7QObjectRKN25QDeclarativePropertyCache4DataERK8QVariantP23QDeclarativeContextData6QFlagsINS_9WriteFlagEE @ 907 NONAME
+ _ZN27QDeclarativePropertyPrivate5writeERK20QDeclarativePropertyRK8QVariant6QFlagsINS_9WriteFlagEE @ 908 NONAME
+ _ZN27QDeclarativePropertyPrivate7bindingERK20QDeclarativeProperty @ 909 NONAME
+ _ZN27QDeclarativePropertyPrivate7restoreERK10QByteArrayP7QObjectP23QDeclarativeContextData @ 910 NONAME
+ _ZN28QDeclarativeCustomParserNodeC1ERKS_ @ 911 NONAME
+ _ZN28QDeclarativeCustomParserNodeC1Ev @ 912 NONAME
+ _ZN28QDeclarativeCustomParserNodeC2ERKS_ @ 913 NONAME
+ _ZN28QDeclarativeCustomParserNodeC2Ev @ 914 NONAME
+ _ZN28QDeclarativeCustomParserNodeD1Ev @ 915 NONAME
+ _ZN28QDeclarativeCustomParserNodeD2Ev @ 916 NONAME
+ _ZN28QDeclarativeCustomParserNodeaSERKS_ @ 917 NONAME
+ _ZN28QDeclarativeDebugObjectQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 918 NONAME
+ _ZN28QDeclarativeDebugObjectQuery11qt_metacastEPKc @ 919 NONAME
+ _ZN28QDeclarativeDebugObjectQuery16staticMetaObjectE @ 920 NONAME DATA 16
+ _ZN28QDeclarativeDebugObjectQuery19getStaticMetaObjectEv @ 921 NONAME
+ _ZN28QDeclarativeDebugObjectQueryC1EP7QObject @ 922 NONAME
+ _ZN28QDeclarativeDebugObjectQueryC2EP7QObject @ 923 NONAME
+ _ZN28QDeclarativeDebugObjectQueryD0Ev @ 924 NONAME
+ _ZN28QDeclarativeDebugObjectQueryD1Ev @ 925 NONAME
+ _ZN28QDeclarativeDebugObjectQueryD2Ev @ 926 NONAME
+ _ZN28QDeclarativeStringConverters14dateFromStringERK7QStringPb @ 927 NONAME
+ _ZN28QDeclarativeStringConverters14timeFromStringERK7QStringPb @ 928 NONAME
+ _ZN28QDeclarativeStringConverters15colorFromStringERK7QStringPb @ 929 NONAME
+ _ZN28QDeclarativeStringConverters15rectFFromStringERK7QStringPb @ 930 NONAME
+ _ZN28QDeclarativeStringConverters15sizeFFromStringERK7QStringPb @ 931 NONAME
+ _ZN28QDeclarativeStringConverters16pointFFromStringERK7QStringPb @ 932 NONAME
+ _ZN28QDeclarativeStringConverters17variantFromStringERK7QString @ 933 NONAME
+ _ZN28QDeclarativeStringConverters17variantFromStringERK7QStringiPb @ 934 NONAME
+ _ZN28QDeclarativeStringConverters18dateTimeFromStringERK7QStringPb @ 935 NONAME
+ _ZN28QDeclarativeStringConverters18vector3DFromStringERK7QStringPb @ 936 NONAME
+ _ZN28QDeclarativeValueTypeFactory11isValueTypeEi @ 937 NONAME
+ _ZN28QDeclarativeValueTypeFactory18registerValueTypesEv @ 938 NONAME
+ _ZN28QDeclarativeValueTypeFactory9valueTypeEi @ 939 NONAME
+ _ZN28QDeclarativeValueTypeFactoryC1Ev @ 940 NONAME
+ _ZN28QDeclarativeValueTypeFactoryC2Ev @ 941 NONAME
+ _ZN28QDeclarativeValueTypeFactoryD1Ev @ 942 NONAME
+ _ZN28QDeclarativeValueTypeFactoryD2Ev @ 943 NONAME
+ _ZN29QDeclarativeDebugEnginesQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 944 NONAME
+ _ZN29QDeclarativeDebugEnginesQuery11qt_metacastEPKc @ 945 NONAME
+ _ZN29QDeclarativeDebugEnginesQuery16staticMetaObjectE @ 946 NONAME DATA 16
+ _ZN29QDeclarativeDebugEnginesQuery19getStaticMetaObjectEv @ 947 NONAME
+ _ZN29QDeclarativeDebugEnginesQueryC1EP7QObject @ 948 NONAME
+ _ZN29QDeclarativeDebugEnginesQueryC2EP7QObject @ 949 NONAME
+ _ZN29QDeclarativeDebugEnginesQueryD0Ev @ 950 NONAME
+ _ZN29QDeclarativeDebugEnginesQueryD1Ev @ 951 NONAME
+ _ZN29QDeclarativeDebugEnginesQueryD2Ev @ 952 NONAME
+ _ZN30QDeclarativeDebugFileReference13setLineNumberEi @ 953 NONAME
+ _ZN30QDeclarativeDebugFileReference15setColumnNumberEi @ 954 NONAME
+ _ZN30QDeclarativeDebugFileReference6setUrlERK4QUrl @ 955 NONAME
+ _ZN30QDeclarativeDebugFileReferenceC1ERKS_ @ 956 NONAME
+ _ZN30QDeclarativeDebugFileReferenceC1Ev @ 957 NONAME
+ _ZN30QDeclarativeDebugFileReferenceC2ERKS_ @ 958 NONAME
+ _ZN30QDeclarativeDebugFileReferenceC2Ev @ 959 NONAME
+ _ZN30QDeclarativeDebugFileReferenceaSERKS_ @ 960 NONAME
+ _ZN30QDeclarativeDebugPropertyWatch11qt_metacallEN11QMetaObject4CallEiPPv @ 961 NONAME
+ _ZN30QDeclarativeDebugPropertyWatch11qt_metacastEPKc @ 962 NONAME
+ _ZN30QDeclarativeDebugPropertyWatch16staticMetaObjectE @ 963 NONAME DATA 16
+ _ZN30QDeclarativeDebugPropertyWatch19getStaticMetaObjectEv @ 964 NONAME
+ _ZN30QDeclarativeDebugPropertyWatchC1EP7QObject @ 965 NONAME
+ _ZN30QDeclarativeDebugPropertyWatchC2EP7QObject @ 966 NONAME
+ _ZN30QDeclarativeDomDynamicPropertyC1ERKS_ @ 967 NONAME
+ _ZN30QDeclarativeDomDynamicPropertyC1Ev @ 968 NONAME
+ _ZN30QDeclarativeDomDynamicPropertyC2ERKS_ @ 969 NONAME
+ _ZN30QDeclarativeDomDynamicPropertyC2Ev @ 970 NONAME
+ _ZN30QDeclarativeDomDynamicPropertyD1Ev @ 971 NONAME
+ _ZN30QDeclarativeDomDynamicPropertyD2Ev @ 972 NONAME
+ _ZN30QDeclarativeDomDynamicPropertyaSERKS_ @ 973 NONAME
+ _ZN30QDeclarativeOpenMetaObjectType14createPropertyERK10QByteArray @ 974 NONAME
+ _ZN30QDeclarativeOpenMetaObjectType15propertyCreatedEiR20QMetaPropertyBuilder @ 975 NONAME
+ _ZN30QDeclarativeOpenMetaObjectTypeC1EPK11QMetaObjectP18QDeclarativeEngine @ 976 NONAME
+ _ZN30QDeclarativeOpenMetaObjectTypeC2EPK11QMetaObjectP18QDeclarativeEngine @ 977 NONAME
+ _ZN30QDeclarativeOpenMetaObjectTypeD0Ev @ 978 NONAME
+ _ZN30QDeclarativeOpenMetaObjectTypeD1Ev @ 979 NONAME
+ _ZN30QDeclarativeOpenMetaObjectTypeD2Ev @ 980 NONAME
+ _ZN31QDeclarativeDomValueValueSourceC1ERKS_ @ 981 NONAME
+ _ZN31QDeclarativeDomValueValueSourceC1Ev @ 982 NONAME
+ _ZN31QDeclarativeDomValueValueSourceC2ERKS_ @ 983 NONAME
+ _ZN31QDeclarativeDomValueValueSourceC2Ev @ 984 NONAME
+ _ZN31QDeclarativeDomValueValueSourceD1Ev @ 985 NONAME
+ _ZN31QDeclarativeDomValueValueSourceD2Ev @ 986 NONAME
+ _ZN31QDeclarativeDomValueValueSourceaSERKS_ @ 987 NONAME
+ _ZN31QDeclarativePropertyValueSourceC2Ev @ 988 NONAME
+ _ZN31QDeclarativePropertyValueSourceD0Ev @ 989 NONAME
+ _ZN31QDeclarativePropertyValueSourceD1Ev @ 990 NONAME
+ _ZN31QDeclarativePropertyValueSourceD2Ev @ 991 NONAME
+ _ZN32QDeclarativeCustomParserPropertyC1ERKS_ @ 992 NONAME
+ _ZN32QDeclarativeCustomParserPropertyC1Ev @ 993 NONAME
+ _ZN32QDeclarativeCustomParserPropertyC2ERKS_ @ 994 NONAME
+ _ZN32QDeclarativeCustomParserPropertyC2Ev @ 995 NONAME
+ _ZN32QDeclarativeCustomParserPropertyD1Ev @ 996 NONAME
+ _ZN32QDeclarativeCustomParserPropertyD2Ev @ 997 NONAME
+ _ZN32QDeclarativeCustomParserPropertyaSERKS_ @ 998 NONAME
+ _ZN32QDeclarativeDebugEngineReferenceC1ERKS_ @ 999 NONAME
+ _ZN32QDeclarativeDebugEngineReferenceC1Ei @ 1000 NONAME
+ _ZN32QDeclarativeDebugEngineReferenceC1Ev @ 1001 NONAME
+ _ZN32QDeclarativeDebugEngineReferenceC2ERKS_ @ 1002 NONAME
+ _ZN32QDeclarativeDebugEngineReferenceC2Ei @ 1003 NONAME
+ _ZN32QDeclarativeDebugEngineReferenceC2Ev @ 1004 NONAME
+ _ZN32QDeclarativeDebugEngineReferenceaSERKS_ @ 1005 NONAME
+ _ZN32QDeclarativeDebugExpressionQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 1006 NONAME
+ _ZN32QDeclarativeDebugExpressionQuery11qt_metacastEPKc @ 1007 NONAME
+ _ZN32QDeclarativeDebugExpressionQuery16staticMetaObjectE @ 1008 NONAME DATA 16
+ _ZN32QDeclarativeDebugExpressionQuery19getStaticMetaObjectEv @ 1009 NONAME
+ _ZN32QDeclarativeDebugExpressionQueryC1EP7QObject @ 1010 NONAME
+ _ZN32QDeclarativeDebugExpressionQueryC2EP7QObject @ 1011 NONAME
+ _ZN32QDeclarativeDebugExpressionQueryD0Ev @ 1012 NONAME
+ _ZN32QDeclarativeDebugExpressionQueryD1Ev @ 1013 NONAME
+ _ZN32QDeclarativeDebugExpressionQueryD2Ev @ 1014 NONAME
+ _ZN32QDeclarativeDebugObjectReferenceC1ERKS_ @ 1015 NONAME
+ _ZN32QDeclarativeDebugObjectReferenceC1Ei @ 1016 NONAME
+ _ZN32QDeclarativeDebugObjectReferenceC1Ev @ 1017 NONAME
+ _ZN32QDeclarativeDebugObjectReferenceC2ERKS_ @ 1018 NONAME
+ _ZN32QDeclarativeDebugObjectReferenceC2Ei @ 1019 NONAME
+ _ZN32QDeclarativeDebugObjectReferenceC2Ev @ 1020 NONAME
+ _ZN32QDeclarativeDebugObjectReferenceaSERKS_ @ 1021 NONAME
+ _ZN33QDeclarativeDebugContextReferenceC1ERKS_ @ 1022 NONAME
+ _ZN33QDeclarativeDebugContextReferenceC1Ev @ 1023 NONAME
+ _ZN33QDeclarativeDebugContextReferenceC2ERKS_ @ 1024 NONAME
+ _ZN33QDeclarativeDebugContextReferenceC2Ev @ 1025 NONAME
+ _ZN33QDeclarativeDebugContextReferenceaSERKS_ @ 1026 NONAME
+ _ZN33QDeclarativeDebugRootContextQuery11qt_metacallEN11QMetaObject4CallEiPPv @ 1027 NONAME
+ _ZN33QDeclarativeDebugRootContextQuery11qt_metacastEPKc @ 1028 NONAME
+ _ZN33QDeclarativeDebugRootContextQuery16staticMetaObjectE @ 1029 NONAME DATA 16
+ _ZN33QDeclarativeDebugRootContextQuery19getStaticMetaObjectEv @ 1030 NONAME
+ _ZN33QDeclarativeDebugRootContextQueryC1EP7QObject @ 1031 NONAME
+ _ZN33QDeclarativeDebugRootContextQueryC2EP7QObject @ 1032 NONAME
+ _ZN33QDeclarativeDebugRootContextQueryD0Ev @ 1033 NONAME
+ _ZN33QDeclarativeDebugRootContextQueryD1Ev @ 1034 NONAME
+ _ZN33QDeclarativeDebugRootContextQueryD2Ev @ 1035 NONAME
+ _ZN34QDeclarativeDebugPropertyReferenceC1ERKS_ @ 1036 NONAME
+ _ZN34QDeclarativeDebugPropertyReferenceC1Ev @ 1037 NONAME
+ _ZN34QDeclarativeDebugPropertyReferenceC2ERKS_ @ 1038 NONAME
+ _ZN34QDeclarativeDebugPropertyReferenceC2Ev @ 1039 NONAME
+ _ZN34QDeclarativeDebugPropertyReferenceaSERKS_ @ 1040 NONAME
+ _ZN36QDeclarativeDomValueValueInterceptorC1ERKS_ @ 1041 NONAME
+ _ZN36QDeclarativeDomValueValueInterceptorC1Ev @ 1042 NONAME
+ _ZN36QDeclarativeDomValueValueInterceptorC2ERKS_ @ 1043 NONAME
+ _ZN36QDeclarativeDomValueValueInterceptorC2Ev @ 1044 NONAME
+ _ZN36QDeclarativeDomValueValueInterceptorD1Ev @ 1045 NONAME
+ _ZN36QDeclarativeDomValueValueInterceptorD2Ev @ 1046 NONAME
+ _ZN36QDeclarativeDomValueValueInterceptoraSERKS_ @ 1047 NONAME
+ _ZN36QDeclarativePropertyValueInterceptorC2Ev @ 1048 NONAME
+ _ZN36QDeclarativePropertyValueInterceptorD0Ev @ 1049 NONAME
+ _ZN36QDeclarativePropertyValueInterceptorD1Ev @ 1050 NONAME
+ _ZN36QDeclarativePropertyValueInterceptorD2Ev @ 1051 NONAME
+ _ZN38QDeclarativeDebugObjectExpressionWatch11qt_metacallEN11QMetaObject4CallEiPPv @ 1052 NONAME
+ _ZN38QDeclarativeDebugObjectExpressionWatch11qt_metacastEPKc @ 1053 NONAME
+ _ZN38QDeclarativeDebugObjectExpressionWatch16staticMetaObjectE @ 1054 NONAME DATA 16
+ _ZN38QDeclarativeDebugObjectExpressionWatch19getStaticMetaObjectEv @ 1055 NONAME
+ _ZN38QDeclarativeDebugObjectExpressionWatchC1EP7QObject @ 1056 NONAME
+ _ZN38QDeclarativeDebugObjectExpressionWatchC2EP7QObject @ 1057 NONAME
+ _ZN39QDeclarativeNetworkAccessManagerFactoryD0Ev @ 1058 NONAME
+ _ZN39QDeclarativeNetworkAccessManagerFactoryD1Ev @ 1059 NONAME
+ _ZN39QDeclarativeNetworkAccessManagerFactoryD2Ev @ 1060 NONAME
+ _ZN7QPacket5clearEv @ 1061 NONAME
+ _ZN7QPacketC1ERK10QByteArray @ 1062 NONAME
+ _ZN7QPacketC1ERKS_ @ 1063 NONAME
+ _ZN7QPacketC1Ev @ 1064 NONAME
+ _ZN7QPacketC2ERK10QByteArray @ 1065 NONAME
+ _ZN7QPacketC2ERKS_ @ 1066 NONAME
+ _ZN7QPacketC2Ev @ 1067 NONAME
+ _ZN7QPacketD0Ev @ 1068 NONAME
+ _ZN7QPacketD1Ev @ 1069 NONAME
+ _ZN7QPacketD2Ev @ 1070 NONAME
+ _ZNK15QDeclarativePen10metaObjectEv @ 1071 NONAME
+ _ZNK15QPacketProtocol10metaObjectEv @ 1072 NONAME
+ _ZNK15QPacketProtocol16packetsAvailableEv @ 1073 NONAME
+ _ZNK15QPacketProtocol17maximumPacketSizeEv @ 1074 NONAME
+ _ZNK16QDeclarativeItem10metaObjectEv @ 1075 NONAME
+ _ZNK16QDeclarativeItem10parentItemEv @ 1076 NONAME
+ _ZNK16QDeclarativeItem10wantsFocusEv @ 1077 NONAME
+ _ZNK16QDeclarativeItem10widthValidEv @ 1078 NONAME
+ _ZNK16QDeclarativeItem11heightValidEv @ 1079 NONAME
+ _ZNK16QDeclarativeItem11mapFromItemERK12QScriptValueff @ 1080 NONAME
+ _ZNK16QDeclarativeItem12boundingRectEv @ 1081 NONAME
+ _ZNK16QDeclarativeItem13implicitWidthEv @ 1082 NONAME
+ _ZNK16QDeclarativeItem13keepMouseGrabEv @ 1083 NONAME
+ _ZNK16QDeclarativeItem14baselineOffsetEv @ 1084 NONAME
+ _ZNK16QDeclarativeItem14implicitHeightEv @ 1085 NONAME
+ _ZNK16QDeclarativeItem15transformOriginEv @ 1086 NONAME
+ _ZNK16QDeclarativeItem16inputMethodQueryEN2Qt16InputMethodQueryE @ 1087 NONAME
+ _ZNK16QDeclarativeItem19isComponentCompleteEv @ 1088 NONAME
+ _ZNK16QDeclarativeItem4clipEv @ 1089 NONAME
+ _ZNK16QDeclarativeItem5widthEv @ 1090 NONAME
+ _ZNK16QDeclarativeItem6heightEv @ 1091 NONAME
+ _ZNK16QDeclarativeItem6smoothEv @ 1092 NONAME
+ _ZNK16QDeclarativeItem7childAtEff @ 1093 NONAME
+ _ZNK16QDeclarativeItem8hasFocusEv @ 1094 NONAME
+ _ZNK16QDeclarativeItem9mapToItemERK12QScriptValueff @ 1095 NONAME
+ _ZNK16QDeclarativeText10metaObjectEv @ 1096 NONAME
+ _ZNK16QDeclarativeText10styleColorEv @ 1097 NONAME
+ _ZNK16QDeclarativeText10textFormatEv @ 1098 NONAME
+ _ZNK16QDeclarativeText12boundingRectEv @ 1099 NONAME
+ _ZNK16QDeclarativeText12paintedWidthEv @ 1100 NONAME
+ _ZNK16QDeclarativeText13paintedHeightEv @ 1101 NONAME
+ _ZNK16QDeclarativeText16resourcesLoadingEv @ 1102 NONAME
+ _ZNK16QDeclarativeText4fontEv @ 1103 NONAME
+ _ZNK16QDeclarativeText4textEv @ 1104 NONAME
+ _ZNK16QDeclarativeText5colorEv @ 1105 NONAME
+ _ZNK16QDeclarativeText5styleEv @ 1106 NONAME
+ _ZNK16QDeclarativeText6hAlignEv @ 1107 NONAME
+ _ZNK16QDeclarativeText6vAlignEv @ 1108 NONAME
+ _ZNK16QDeclarativeText8wrapModeEv @ 1109 NONAME
+ _ZNK16QDeclarativeText9elideModeEv @ 1110 NONAME
+ _ZNK16QDeclarativeType10createSizeEv @ 1111 NONAME
+ _ZNK16QDeclarativeType10metaObjectEv @ 1112 NONAME
+ _ZNK16QDeclarativeType11isCreatableEv @ 1113 NONAME
+ _ZNK16QDeclarativeType11isInterfaceEv @ 1114 NONAME
+ _ZNK16QDeclarativeType11qListTypeIdEv @ 1115 NONAME
+ _ZNK16QDeclarativeType11qmlTypeNameEv @ 1116 NONAME
+ _ZNK16QDeclarativeType12customParserEv @ 1117 NONAME
+ _ZNK16QDeclarativeType12interfaceIIdEv @ 1118 NONAME
+ _ZNK16QDeclarativeType12majorVersionEv @ 1119 NONAME
+ _ZNK16QDeclarativeType12minorVersionEv @ 1120 NONAME
+ _ZNK16QDeclarativeType14baseMetaObjectEv @ 1121 NONAME
+ _ZNK16QDeclarativeType14createFunctionEv @ 1122 NONAME
+ _ZNK16QDeclarativeType14isExtendedTypeEv @ 1123 NONAME
+ _ZNK16QDeclarativeType16noCreationReasonEv @ 1124 NONAME
+ _ZNK16QDeclarativeType16parserStatusCastEv @ 1125 NONAME
+ _ZNK16QDeclarativeType18availableInVersionEii @ 1126 NONAME
+ _ZNK16QDeclarativeType22attachedPropertiesTypeEv @ 1127 NONAME
+ _ZNK16QDeclarativeType23propertyValueSourceCastEv @ 1128 NONAME
+ _ZNK16QDeclarativeType26attachedPropertiesFunctionEv @ 1129 NONAME
+ _ZNK16QDeclarativeType28propertyValueInterceptorCastEv @ 1130 NONAME
+ _ZNK16QDeclarativeType5indexEv @ 1131 NONAME
+ _ZNK16QDeclarativeType6createEPP7QObjectPPvj @ 1132 NONAME
+ _ZNK16QDeclarativeType6createEv @ 1133 NONAME
+ _ZNK16QDeclarativeType6typeIdEv @ 1134 NONAME
+ _ZNK16QDeclarativeType8typeNameEv @ 1135 NONAME
+ _ZNK16QDeclarativeView10metaObjectEv @ 1136 NONAME
+ _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
+
diff --git a/src/sql/drivers/odbc/qsql_odbc.pri b/src/sql/drivers/odbc/qsql_odbc.pri
index 8394012..66a8d51 100644
--- a/src/sql/drivers/odbc/qsql_odbc.pri
+++ b/src/sql/drivers/odbc/qsql_odbc.pri
@@ -1,13 +1,13 @@
HEADERS += $$PWD/qsql_odbc.h
SOURCES += $$PWD/qsql_odbc.cpp
-mac {
- !contains(LIBS, .*odbc.*):LIBS += -liodbc
-} else:unix {
+unix {
DEFINES += UNICODE
- !contains(LIBS, .*odbc.*):LIBS += $$QT_LFLAGS_ODBC
-} else:win32-borland {
- LIBS *= $(BCB)/lib/PSDK/odbc32.lib
+ !contains(LIBS, .*odbc.*) {
+ macx:LIBS += -liodbc
+ else:LIBS += $$QT_LFLAGS_ODBC
+ }
} else {
- LIBS *= -lodbc32
+ win32-borland:LIBS *= $(BCB)/lib/PSDK/odbc32.lib
+ else:LIBS *= -lodbc32
}
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index 3d2dbf0..a7fb3b8 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -52,8 +52,7 @@ SUBDIRS += \
qdeclarativeqt \
qdeclarativerepeater \
qdeclarativesmoothedanimation \
- qdeclarativesmoothedfollow\
- qdeclarativespringfollow \
+ qdeclarativespringanimation \
qdeclarativesqldatabase \
qdeclarativestates \
qdeclarativestyledtext \
diff --git a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
index a965ef3..3e80c2c 100644
--- a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
+++ b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
@@ -310,7 +310,7 @@ void tst_qdeclarativeanimations::badTypes()
c.create();
QVERIFY(c.errors().count() == 1);
- QCOMPARE(c.errors().at(0).description(), QLatin1String("Invalid property assignment: double expected"));
+ QCOMPARE(c.errors().at(0).description(), QLatin1String("Invalid property assignment: number expected"));
}
//make sure we get a compiler error
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml b/tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml
new file mode 100644
index 0000000..d439875
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml
@@ -0,0 +1,20 @@
+import Qt 4.7
+
+Rectangle {
+ id: root
+ width:200; height:200
+
+ property real myValue: 0
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: 100
+ height: 100
+ color: "green"
+ smooth: true
+ rotation: myValue
+ Behavior on rotation {
+ RotationAnimation { id: rotAnim; objectName: "rotAnim"; direction: RotationAnimation.Shortest }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
index 70739fb..5c2c145 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
+++ b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
@@ -39,6 +39,7 @@
**
****************************************************************************/
#include <qtest.h>
+#include <qsignalspy.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
#include <QtDeclarative/qdeclarativeview.h>
@@ -78,6 +79,7 @@ private slots:
void dontStart();
void startup();
void groupedPropertyCrash();
+ void runningTrue();
};
void tst_qdeclarativebehaviors::simpleBehavior()
@@ -366,6 +368,22 @@ void tst_qdeclarativebehaviors::groupedPropertyCrash()
QVERIFY(rect); //don't crash
}
+//QTBUG-5491
+void tst_qdeclarativebehaviors::runningTrue()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/runningTrue.qml"));
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeAbstractAnimation *animation = rect->findChild<QDeclarativeAbstractAnimation*>("rotAnim");
+ QVERIFY(animation);
+
+ QSignalSpy runningSpy(animation, SIGNAL(runningChanged(bool)));
+ rect->setProperty("myValue", 180);
+ QTRY_VERIFY(runningSpy.count() > 0);
+}
+
QTEST_MAIN(tst_qdeclarativebehaviors)
#include "tst_qdeclarativebehaviors.moc"
diff --git a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
index dcd1a85..4a945f3 100644
--- a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
+++ b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
@@ -71,7 +71,7 @@ class tst_QDeclarativeDebug : public QObject
Q_OBJECT
private:
- QDeclarativeDebugObjectReference findRootObject();
+ QDeclarativeDebugObjectReference findRootObject(int context = 0);
QDeclarativeDebugPropertyReference findProperty(const QList<QDeclarativeDebugPropertyReference> &props, const QString &name) const;
void waitForQuery(QDeclarativeDebugQuery *query);
@@ -111,9 +111,11 @@ private slots:
void tst_QDeclarativeDebugObjectReference();
void tst_QDeclarativeDebugContextReference();
void tst_QDeclarativeDebugPropertyReference();
+
+ void setMethodBody();
};
-QDeclarativeDebugObjectReference tst_QDeclarativeDebug::findRootObject()
+QDeclarativeDebugObjectReference tst_QDeclarativeDebug::findRootObject(int context)
{
QDeclarativeDebugEnginesQuery *q_engines = m_dbg->queryAvailableEngines(this);
waitForQuery(q_engines);
@@ -125,7 +127,7 @@ QDeclarativeDebugObjectReference tst_QDeclarativeDebug::findRootObject()
if (q_context->rootContext().objects().count() == 0)
return QDeclarativeDebugObjectReference();
- QDeclarativeDebugObjectQuery *q_obj = m_dbg->queryObject(q_context->rootContext().objects()[0], this);
+ QDeclarativeDebugObjectQuery *q_obj = m_dbg->queryObject(q_context->rootContext().objects()[context], this);
waitForQuery(q_obj);
QDeclarativeDebugObjectReference result = q_obj->object();
@@ -290,10 +292,19 @@ void tst_QDeclarativeDebug::initTestCase()
"onEntered: { console.log('hello') }"
"}"
"}";
+
// add second component to test multiple root contexts
qml << "import Qt 4.7\n"
"Item {}";
+ // and a third to test methods
+ qml << "import Qt 4.7\n"
+ "Item {"
+ "function myMethodNoArgs() { return 3; }\n"
+ "function myMethod(a) { return a + 9; }\n"
+ "function myMethodIndirect() { myMethod(3); }\n"
+ "}";
+
for (int i=0; i<qml.count(); i++) {
QDeclarativeComponent component(m_engine);
component.setData(qml[i], QUrl::fromLocalFile(""));
@@ -322,6 +333,43 @@ void tst_QDeclarativeDebug::cleanupTestCase()
qDeleteAll(m_components);
}
+void tst_QDeclarativeDebug::setMethodBody()
+{
+ QDeclarativeDebugObjectReference obj = findRootObject(2);
+
+ QObject *root = m_components.at(2);
+ // Without args
+ {
+ QVariant rv;
+ QVERIFY(QMetaObject::invokeMethod(root, "myMethodNoArgs", Qt::DirectConnection,
+ Q_RETURN_ARG(QVariant, rv)));
+ QVERIFY(rv == QVariant(qreal(3)));
+
+
+ QVERIFY(m_dbg->setMethodBody(obj.debugId(), "myMethodNoArgs", "return 7"));
+ QTest::qWait(100);
+
+ QVERIFY(QMetaObject::invokeMethod(root, "myMethodNoArgs", Qt::DirectConnection,
+ Q_RETURN_ARG(QVariant, rv)));
+ QVERIFY(rv == QVariant(qreal(7)));
+ }
+
+ // With args
+ {
+ QVariant rv;
+ QVERIFY(QMetaObject::invokeMethod(root, "myMethod", Qt::DirectConnection,
+ Q_RETURN_ARG(QVariant, rv), Q_ARG(QVariant, QVariant(19))));
+ QVERIFY(rv == QVariant(qreal(28)));
+
+ QVERIFY(m_dbg->setMethodBody(obj.debugId(), "myMethod", "return a + 7"));
+ QTest::qWait(100);
+
+ QVERIFY(QMetaObject::invokeMethod(root, "myMethod", Qt::DirectConnection,
+ Q_RETURN_ARG(QVariant, rv), Q_ARG(QVariant, QVariant(19))));
+ QVERIFY(rv == QVariant(qreal(26)));
+ }
+}
+
void tst_QDeclarativeDebug::watch_property()
{
QDeclarativeDebugObjectReference obj = findRootObject();
@@ -581,7 +629,7 @@ void tst_QDeclarativeDebug::queryRootContexts()
QCOMPARE(context.debugId(), QDeclarativeDebugService::idForObject(actualContext));
QCOMPARE(context.name(), actualContext->objectName());
- QCOMPARE(context.objects().count(), 2); // 2 qml component objects created for context in main()
+ QCOMPARE(context.objects().count(), 3); // 3 qml component objects created for context in main()
// root context query sends only root object data - it doesn't fill in
// the children or property info
diff --git a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
index 13960b1..5028ba1 100644
--- a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
+++ b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
@@ -279,7 +279,7 @@ void tst_qdeclarativedom::loadComposite()
void tst_qdeclarativedom::testValueSource()
{
QByteArray qml = "import Qt 4.7\n"
- "Rectangle { SpringFollow on height { spring: 1.4; damping: .15; to: Math.min(Math.max(-130, value*2.2 - 130), 133); }}";
+ "Rectangle { SpringAnimation on height { spring: 1.4; damping: .15; to: Math.min(Math.max(-130, value*2.2 - 130), 133); }}";
QDeclarativeEngine freshEngine;
QDeclarativeDomDocument document;
@@ -295,7 +295,7 @@ void tst_qdeclarativedom::testValueSource()
QDeclarativeDomObject valueSourceObject = valueSource.object();
QVERIFY(valueSourceObject.isValid());
- QVERIFY(valueSourceObject.objectType() == "Qt/SpringFollow");
+ QVERIFY(valueSourceObject.objectType() == "Qt/SpringAnimation");
const QDeclarativeDomValue springValue = valueSourceObject.property("spring").value();
QVERIFY(!springValue.isInvalid());
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.2.qml
index db7f2b5..2c79729 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.2.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.2.qml
@@ -7,7 +7,7 @@ MyTypeObject {
uintProperty: if(1) 10
intProperty: if(1) -19
realProperty: if(1) 23.2
- doubleProperty: if(1) -19.7
+ doubleProperty: if(1) -19.75
floatProperty: if(1) 8.5
colorProperty: if(1) "red"
dateProperty: if(1) "1982-11-25"
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml b/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml
index 72ae865..1cd78a5 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml
@@ -9,7 +9,7 @@ MyTypeObject {
uintProperty = 10
intProperty = -19
realProperty = 23.2
- doubleProperty = -19.7
+ doubleProperty = -19.75
floatProperty = 8.5
colorProperty = "red"
dateProperty = "1982-11-25"
diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
index 849879e..19bfd37 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
@@ -572,7 +572,7 @@ public:
Q_INVOKABLE void method_NoArgs() { invoke(0); }
Q_INVOKABLE int method_NoArgs_int() { invoke(1); return 6; }
- Q_INVOKABLE qreal method_NoArgs_real() { invoke(2); return 19.7; }
+ Q_INVOKABLE qreal method_NoArgs_real() { invoke(2); return 19.75; }
Q_INVOKABLE QPointF method_NoArgs_QPointF() { invoke(3); return QPointF(123, 4.5); }
Q_INVOKABLE QObject *method_NoArgs_QObject() { invoke(4); return this; }
Q_INVOKABLE MyInvokableObject *method_NoArgs_unknown() { invoke(5); return this; }
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 43900ae..a6d2dac 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -179,7 +179,7 @@ void tst_qdeclarativeecmascript::assignBasicTypes()
QCOMPARE(object->uintProperty(), uint(10));
QCOMPARE(object->intProperty(), -19);
QCOMPARE((float)object->realProperty(), float(23.2));
- QCOMPARE((float)object->doubleProperty(), float(-19.7));
+ QCOMPARE((float)object->doubleProperty(), float(-19.75));
QCOMPARE((float)object->floatProperty(), float(8.5));
QCOMPARE(object->colorProperty(), QColor("red"));
QCOMPARE(object->dateProperty(), QDate(1982, 11, 25));
@@ -207,7 +207,7 @@ void tst_qdeclarativeecmascript::assignBasicTypes()
QCOMPARE(object->uintProperty(), uint(10));
QCOMPARE(object->intProperty(), -19);
QCOMPARE((float)object->realProperty(), float(23.2));
- QCOMPARE((float)object->doubleProperty(), float(-19.7));
+ QCOMPARE((float)object->doubleProperty(), float(-19.75));
QCOMPARE((float)object->floatProperty(), float(8.5));
QCOMPARE(object->colorProperty(), QColor("red"));
QCOMPARE(object->dateProperty(), QDate(1982, 11, 25));
@@ -280,8 +280,8 @@ void tst_qdeclarativeecmascript::signalAssignment()
MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
QVERIFY(object != 0);
QCOMPARE(object->string(), QString());
- emit object->argumentSignal(19, "Hello world!", 10.3);
- QCOMPARE(object->string(), QString("pass 19 Hello world! 10.3"));
+ emit object->argumentSignal(19, "Hello world!", 10.25);
+ QCOMPARE(object->string(), QString("pass 19 Hello world! 10.25"));
}
}
@@ -1387,7 +1387,7 @@ void tst_qdeclarativeecmascript::callQtInvokables()
QCOMPARE(o.actuals().count(), 0);
o.reset();
- QVERIFY(engine->evaluate("object.method_NoArgs_real()").strictlyEquals(QScriptValue(engine, 19.7)));
+ QVERIFY(engine->evaluate("object.method_NoArgs_real()").strictlyEquals(QScriptValue(engine, 19.75)));
QCOMPARE(o.error(), false);
QCOMPARE(o.invoked(), 2);
QCOMPARE(o.actuals().count(), 0);
@@ -1818,7 +1818,7 @@ void tst_qdeclarativeecmascript::scriptConnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toBool(), false);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toBool(), true);
delete object;
@@ -1831,7 +1831,7 @@ void tst_qdeclarativeecmascript::scriptConnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toBool(), false);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toBool(), true);
delete object;
@@ -1844,7 +1844,7 @@ void tst_qdeclarativeecmascript::scriptConnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toBool(), false);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toBool(), true);
delete object;
@@ -1857,7 +1857,7 @@ void tst_qdeclarativeecmascript::scriptConnect()
QVERIFY(object != 0);
QCOMPARE(object->methodCalled(), false);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->methodCalled(), true);
delete object;
@@ -1870,7 +1870,7 @@ void tst_qdeclarativeecmascript::scriptConnect()
QVERIFY(object != 0);
QCOMPARE(object->methodCalled(), false);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->methodCalled(), true);
delete object;
@@ -1883,7 +1883,7 @@ void tst_qdeclarativeecmascript::scriptConnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toInt(), 0);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 2);
delete object;
@@ -1899,13 +1899,13 @@ void tst_qdeclarativeecmascript::scriptDisconnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toInt(), 0);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 1);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 2);
emit object->basicSignal();
QCOMPARE(object->property("test").toInt(), 2);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 2);
delete object;
@@ -1918,13 +1918,13 @@ void tst_qdeclarativeecmascript::scriptDisconnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toInt(), 0);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 1);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 2);
emit object->basicSignal();
QCOMPARE(object->property("test").toInt(), 2);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 2);
delete object;
@@ -1937,13 +1937,13 @@ void tst_qdeclarativeecmascript::scriptDisconnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toInt(), 0);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 1);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 2);
emit object->basicSignal();
QCOMPARE(object->property("test").toInt(), 2);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 3);
delete object;
@@ -1955,13 +1955,13 @@ void tst_qdeclarativeecmascript::scriptDisconnect()
QVERIFY(object != 0);
QCOMPARE(object->property("test").toInt(), 0);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 1);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 2);
emit object->basicSignal();
QCOMPARE(object->property("test").toInt(), 2);
- emit object->argumentSignal(19, "Hello world!", 10.3);
+ emit object->argumentSignal(19, "Hello world!", 10.25);
QCOMPARE(object->property("test").toInt(), 3);
delete object;
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml b/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml
new file mode 100644
index 0000000..6c39f20
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml
@@ -0,0 +1,28 @@
+import Qt 4.7
+
+Rectangle {
+ id: root
+ width:300; height:400
+
+ property bool focus1: root.wantsFocus
+ property bool focus2: item1.wantsFocus
+ property bool focus3: fs1.wantsFocus
+ property bool focus4: fs2.wantsFocus
+ property bool focus5: theItem.wantsFocus
+
+ Item {
+ id: item1
+ FocusScope {
+ id: fs1
+ focus: true
+ FocusScope {
+ id: fs2
+ focus: true
+ Item {
+ id: theItem
+ focus: true
+ }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
index 5904fd6..af9c420 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
@@ -8,10 +8,10 @@ Rectangle {
FocusScope {
id: firstScope
+ objectName: "item0"
focus: true
Rectangle {
- objectName: "item0"
height: 120; width: 420
color: "transparent"
@@ -44,9 +44,9 @@ Rectangle {
FocusScope {
id: secondScope
+ objectName: "item3"
Rectangle {
- objectName: "item3"
y: 160; height: 120; width: 420
color: "transparent"
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
index 6b09c29..aa43ba8 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
@@ -9,12 +9,12 @@ Rectangle {
FocusScope {
id: myScope
+ objectName: "item0"
focus: true
Keys.onDigit9Pressed: console.log("Error - FocusScope")
Rectangle {
- objectName: "item0"
height: 120
width: 420
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
index d67ec57..cdb5164 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
@@ -9,12 +9,12 @@ Rectangle {
FocusScope {
id: myScope
+ objectName: "item0"
focus: true
Keys.onReturnPressed: console.log("Error - FocusScope")
Rectangle {
- objectName: "item0"
height: 120
width: 420
diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
index 7732e6d..2559087 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
@@ -68,6 +68,7 @@ private slots:
void noFocus();
void textEdit();
void forceFocus();
+ void noParentFocus();
};
/*
@@ -97,7 +98,7 @@ void tst_qdeclarativefocusscope::basic()
QDeclarativeView *view = new QDeclarativeView;
view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test.qml"));
- QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+ QDeclarativeFocusScope *item0 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item0"));
QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
@@ -228,7 +229,7 @@ void tst_qdeclarativefocusscope::textEdit()
QDeclarativeView *view = new QDeclarativeView;
view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test5.qml"));
- QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+ QDeclarativeFocusScope *item0 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item0"));
QDeclarativeTextEdit *item1 = findItem<QDeclarativeTextEdit>(view->rootObject(), QLatin1String("item1"));
QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
QDeclarativeTextEdit *item3 = findItem<QDeclarativeTextEdit>(view->rootObject(), QLatin1String("item3"));
@@ -283,10 +284,10 @@ void tst_qdeclarativefocusscope::forceFocus()
QDeclarativeView *view = new QDeclarativeView;
view->setSource(QUrl::fromLocalFile(SRCDIR "/data/forcefocus.qml"));
- QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+ QDeclarativeFocusScope *item0 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item0"));
QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
- QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
+ QDeclarativeFocusScope *item3 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item3"));
QDeclarativeRectangle *item4 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item4"));
QDeclarativeRectangle *item5 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item5"));
QVERIFY(item0 != 0);
@@ -333,6 +334,20 @@ void tst_qdeclarativefocusscope::forceFocus()
delete view;
}
+void tst_qdeclarativefocusscope::noParentFocus()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/chain.qml"));
+ QVERIFY(view->rootObject());
+
+ QVERIFY(view->rootObject()->property("focus1") == true);
+ QVERIFY(view->rootObject()->property("focus2") == false);
+ QVERIFY(view->rootObject()->property("focus3") == true);
+ QVERIFY(view->rootObject()->property("focus4") == true);
+ QVERIFY(view->rootObject()->property("focus5") == true);
+
+ delete view;
+}
QTEST_MAIN(tst_qdeclarativefocusscope)
diff --git a/tests/auto/declarative/qdeclarativegridview/data/footer.qml b/tests/auto/declarative/qdeclarativegridview/data/footer.qml
new file mode 100644
index 0000000..170b2b5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativegridview/data/footer.qml
@@ -0,0 +1,32 @@
+import Qt 4.7
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "#ffffff"
+ Component {
+ id: myDelegate
+ Rectangle {
+ id: wrapper
+ objectName: "wrapper"
+ width: 80
+ height: 60
+ border.color: "blue"
+ Text {
+ text: index
+ }
+ color: GridView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ }
+ GridView {
+ id: grid
+ objectName: "grid"
+ width: 240
+ height: 320
+ cellWidth: 80
+ cellHeight: 60
+ model: testModel
+ delegate: myDelegate
+ footer: Text { objectName: "footer"; text: "Footer"; height: 30 }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
index a67c56f..1a28b71 100644
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
@@ -81,6 +81,7 @@ private slots:
void enforceRange();
void QTBUG_8456();
void manualHighlight();
+ void footer();
private:
QDeclarativeView *createView();
@@ -147,6 +148,14 @@ public:
emit dataChanged(index(idx,0), index(idx,0));
}
+ void clear() {
+ int count = list.count();
+ emit beginRemoveRows(QModelIndex(), 0, count-1);
+ list.clear();
+ emit endRemoveRows();
+ }
+
+
private:
QList<QPair<QString,QString> > list;
};
@@ -1162,6 +1171,38 @@ void tst_QDeclarativeGridView::manualHighlight()
QTRY_COMPARE(gridview->highlightItem()->x(), gridview->currentItem()->x());
}
+void tst_QDeclarativeGridView::footer()
+{
+ QDeclarativeView *canvas = createView();
+
+ TestModel model;
+ for (int i = 0; i < 7; i++)
+ model.addItem("Item" + QString::number(i), "");
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/footer.qml"));
+ qApp->processEvents();
+
+ QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
+ QTRY_VERIFY(gridview != 0);
+
+ QDeclarativeItem *contentItem = gridview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
+
+ QDeclarativeText *footer = findItem<QDeclarativeText>(contentItem, "footer");
+ QVERIFY(footer);
+
+ QCOMPARE(footer->y(), 180.0);
+
+ model.removeItem(2);
+ QTRY_COMPARE(footer->y(), 120.0);
+
+ model.clear();
+ QTRY_COMPARE(footer->y(), 0.0);
+}
+
QDeclarativeView *tst_QDeclarativeGridView::createView()
{
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart-arm.png b/tests/auto/declarative/qdeclarativeimage/data/heart-arm.png
new file mode 100644
index 0000000..3245027
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart-arm.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png b/tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png
new file mode 100644
index 0000000..b16db76
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart200-arm.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
index c09f7fc..38fd458 100644
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
@@ -88,7 +88,6 @@ private slots:
void resized();
void preserveAspectRatio();
void smooth();
- void pixmap();
void svg();
void big();
void tiling_QTBUG_6716();
@@ -124,8 +123,8 @@ void tst_qdeclarativeimage::noSource()
void tst_qdeclarativeimage::imageSource_data()
{
QTest::addColumn<QString>("source");
- QTest::addColumn<qreal>("width");
- QTest::addColumn<qreal>("height");
+ QTest::addColumn<double>("width");
+ QTest::addColumn<double>("height");
QTest::addColumn<bool>("remote");
QTest::addColumn<bool>("async");
QTest::addColumn<QString>("error");
@@ -146,8 +145,8 @@ void tst_qdeclarativeimage::imageSource_data()
void tst_qdeclarativeimage::imageSource()
{
QFETCH(QString, source);
- QFETCH(qreal, width);
- QFETCH(qreal, height);
+ QFETCH(double, width);
+ QFETCH(double, height);
QFETCH(bool, remote);
QFETCH(bool, async);
QFETCH(QString, error);
@@ -178,8 +177,8 @@ void tst_qdeclarativeimage::imageSource()
if (error.isEmpty()) {
TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
- QCOMPARE(obj->width(), width);
- QCOMPARE(obj->height(), height);
+ QCOMPARE(obj->width(), qreal(width));
+ QCOMPARE(obj->height(), qreal(height));
QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
QCOMPARE(obj->progress(), 1.0);
} else {
@@ -261,36 +260,6 @@ void tst_qdeclarativeimage::smooth()
delete obj;
}
-void tst_qdeclarativeimage::pixmap()
-{
- QString componentStr = "import Qt 4.7\nImage { pixmap: testPixmap }";
-
- QPixmap pixmap;
- QDeclarativeContext *ctxt = engine.rootContext();
- ctxt->setContextProperty("testPixmap", pixmap);
-
- QDeclarativeComponent component(&engine);
- component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
-
- QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
- QVERIFY(obj != 0);
- QCOMPARE(obj->source(), QUrl());
- QVERIFY(obj->status() == QDeclarativeImage::Null);
- QCOMPARE(obj->width(), 0.);
- QCOMPARE(obj->height(), 0.);
- QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
- QCOMPARE(obj->progress(), 0.0);
- QVERIFY(obj->pixmap().isNull());
-
- pixmap = QPixmap(SRCDIR "/data/colors.png");
- ctxt->setContextProperty("testPixmap", pixmap);
- QCOMPARE(obj->width(), 120.);
- QCOMPARE(obj->height(), 120.);
- QVERIFY(obj->status() == QDeclarativeImage::Ready);
-
- delete obj;
-}
-
void tst_qdeclarativeimage::svg()
{
QString src = QUrl::fromLocalFile(SRCDIR "/data/heart.svg").toString();
@@ -307,6 +276,8 @@ void tst_qdeclarativeimage::svg()
QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-mac.png"));
#elif defined(Q_OS_WIN32)
QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-win32.png"));
+#elif defined(QT_ARCH_ARM)
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-arm.png"));
#else
QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart.png"));
#endif
@@ -321,6 +292,8 @@ void tst_qdeclarativeimage::svg()
QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-mac.png"));
#elif defined(Q_OS_WIN32)
QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-win32.png"));
+#elif defined(QT_ARCH_ARM)
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-arm.png"));
#else
QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200.png"));
#endif
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/data/exists.png b/tests/auto/declarative/qdeclarativeimageprovider/data/exists.png
deleted file mode 100644
index 399bd0b..0000000
--- a/tests/auto/declarative/qdeclarativeimageprovider/data/exists.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/data/exists1.png b/tests/auto/declarative/qdeclarativeimageprovider/data/exists1.png
deleted file mode 100644
index 399bd0b..0000000
--- a/tests/auto/declarative/qdeclarativeimageprovider/data/exists1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/data/exists2.png b/tests/auto/declarative/qdeclarativeimageprovider/data/exists2.png
deleted file mode 100644
index 399bd0b..0000000
--- a/tests/auto/declarative/qdeclarativeimageprovider/data/exists2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
index 4185790..e0b46f0 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
+++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
@@ -61,6 +61,8 @@
QVERIFY((expr)); \
} while (false)
+Q_DECLARE_METATYPE(QDeclarativeImageProvider*);
+
class tst_qdeclarativeimageprovider : public QObject
{
@@ -71,43 +73,103 @@ public:
}
private slots:
- void imageSource();
- void imageSource_data();
+ void requestImage_sync_data();
+ void requestImage_sync();
+ void requestImage_async_data();
+ void requestImage_async();
+
+ void requestPixmap_sync_data();
+ void requestPixmap_sync();
+ void requestPixmap_async();
+
+ void removeProvider_data();
void removeProvider();
private:
- QDeclarativeEngine engine;
+ QString newImageFileName() const;
+ void fillRequestTestsData(const QString &id);
+ void runTest(bool async, QDeclarativeImageProvider *provider);
+};
+
+
+class TestQImageProvider : public QDeclarativeImageProvider
+{
+public:
+ TestQImageProvider()
+ : QDeclarativeImageProvider(Image)
+ {
+ }
+
+ QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize)
+ {
+ if (id == QLatin1String("no-such-file.png"))
+ return QImage();
+
+ int width = 100;
+ int height = 100;
+ QImage image(width, height, QImage::Format_RGB32);
+ if (size)
+ *size = QSize(width, height);
+ if (requestedSize.isValid())
+ image = image.scaled(requestedSize);
+ return image;
+ }
};
+Q_DECLARE_METATYPE(TestQImageProvider*);
+
-class TestProvider : public QDeclarativeImageProvider
+class TestQPixmapProvider : public QDeclarativeImageProvider
{
public:
- QImage request(const QString &id, QSize *size, const QSize& requested_size) {
- QImageReader io(SRCDIR "/data/" + id);
- if (size) *size = io.size();
- if (requested_size.isValid())
- io.setScaledSize(requested_size);
- return io.read();
+ TestQPixmapProvider()
+ : QDeclarativeImageProvider(Pixmap)
+ {
+ }
+
+ QPixmap requestPixmap(const QString &id, QSize *size, const QSize& requestedSize)
+ {
+ if (id == QLatin1String("no-such-file.png"))
+ return QPixmap();
+
+ int width = 100;
+ int height = 100;
+ QPixmap image(width, height);
+ if (size)
+ *size = QSize(width, height);
+ if (requestedSize.isValid())
+ image = image.scaled(requestedSize);
+ return image;
}
};
+Q_DECLARE_METATYPE(TestQPixmapProvider*);
-void tst_qdeclarativeimageprovider::imageSource_data()
+
+QString tst_qdeclarativeimageprovider::newImageFileName() const
+{
+ // need to generate new filenames each time or else images are loaded
+ // from cache and we won't get loading status changes when testing
+ // async loading
+ static int count = 0;
+ return QString("image://test/image-%1.png").arg(count++);
+}
+
+void tst_qdeclarativeimageprovider::fillRequestTestsData(const QString &id)
{
QTest::addColumn<QString>("source");
QTest::addColumn<QString>("properties");
QTest::addColumn<QSize>("size");
QTest::addColumn<QString>("error");
- QTest::newRow("exists") << "image://test/exists.png" << "" << QSize(100,100) << "";
- QTest::newRow("scaled") << "image://test/exists.png" << "sourceSize: \"80x30\"" << QSize(80,30) << "";
- QTest::newRow("missing") << "image://test/no-such-file.png" << "" << QSize()
+ QTest::newRow(QTest::toString(id + " exists")) << newImageFileName() << "" << QSize(100,100) << "";
+ QTest::newRow(QTest::toString(id + " scaled")) << newImageFileName() << "sourceSize: \"80x30\"" << QSize(80,30) << "";
+
+ QTest::newRow(QTest::toString(id + " missing")) << "image://test/no-such-file.png" << "" << QSize()
<< "file::2:1: QML Image: Failed to get image from provider: image://test/no-such-file.png";
- QTest::newRow("unknown provider") << "image://bogus/exists.png" << "" << QSize()
+ QTest::newRow(QTest::toString(id + " unknown provider")) << "image://bogus/exists.png" << "" << QSize()
<< "file::2:1: QML Image: Failed to get image from provider: image://bogus/exists.png";
-
}
-
-void tst_qdeclarativeimageprovider::imageSource()
+
+void tst_qdeclarativeimageprovider::runTest(bool async, QDeclarativeImageProvider *provider)
{
QFETCH(QString, source);
QFETCH(QString, properties);
@@ -117,21 +179,29 @@ void tst_qdeclarativeimageprovider::imageSource()
if (!error.isEmpty())
QTest::ignoreMessage(QtWarningMsg, error.toUtf8());
- engine.addImageProvider("test", new TestProvider);
+ QDeclarativeEngine engine;
+
+ engine.addImageProvider("test", provider);
QVERIFY(engine.imageProvider("test") != 0);
- QString componentStr = "import Qt 4.7\nImage { source: \"" + source + "\"; " + properties + " }";
+ QString componentStr = "import Qt 4.7\nImage { source: \"" + source + "\"; "
+ + (async ? "asynchronous: true; " : "")
+ + properties + " }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
QVERIFY(obj != 0);
- TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
+ if (async)
+ TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
QCOMPARE(obj->source(), QUrl(source));
if (error.isEmpty()) {
- TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
+ if (async)
+ TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
+ else
+ QVERIFY(obj->status() == QDeclarativeImage::Ready);
QCOMPARE(obj->width(), 100.0);
QCOMPARE(obj->height(), 100.0);
QCOMPARE(obj->pixmap().width(), size.width());
@@ -139,40 +209,98 @@ void tst_qdeclarativeimageprovider::imageSource()
QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
QCOMPARE(obj->progress(), 1.0);
} else {
- TRY_WAIT(obj->status() == QDeclarativeImage::Error);
+ if (async)
+ TRY_WAIT(obj->status() == QDeclarativeImage::Error);
+ else
+ QVERIFY(obj->status() == QDeclarativeImage::Error);
}
delete obj;
}
+void tst_qdeclarativeimageprovider::requestImage_sync_data()
+{
+ fillRequestTestsData("qimage|sync");
+}
+
+void tst_qdeclarativeimageprovider::requestImage_sync()
+{
+ runTest(false, new TestQImageProvider);
+}
+
+void tst_qdeclarativeimageprovider::requestImage_async_data()
+{
+ fillRequestTestsData("qimage|async");
+}
+
+void tst_qdeclarativeimageprovider::requestImage_async()
+{
+ runTest(true, new TestQImageProvider);
+}
+
+void tst_qdeclarativeimageprovider::requestPixmap_sync_data()
+{
+ fillRequestTestsData("qpixmap");
+}
+
+void tst_qdeclarativeimageprovider::requestPixmap_sync()
+{
+ runTest(false, new TestQPixmapProvider);
+}
+
+void tst_qdeclarativeimageprovider::requestPixmap_async()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeImageProvider *provider = new TestQPixmapProvider;
+
+ engine.addImageProvider("test", provider);
+ QVERIFY(engine.imageProvider("test") != 0);
+
+ // pixmaps are loaded synchronously regardless of 'asynchronous' value
+ QString componentStr = "import Qt 4.7\nImage { asynchronous: true; source: \"image://test/pixmap-async-test.png\" }";
+ QDeclarativeComponent component(&engine);
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
+ QVERIFY(obj != 0);
+
+ delete obj;
+}
+
+void tst_qdeclarativeimageprovider::removeProvider_data()
+{
+ QTest::addColumn<QDeclarativeImageProvider*>("provider");
+
+ QTest::newRow("qimage") << static_cast<QDeclarativeImageProvider*>(new TestQImageProvider);
+ QTest::newRow("qpixmap") << static_cast<QDeclarativeImageProvider*>(new TestQPixmapProvider);
+}
+
void tst_qdeclarativeimageprovider::removeProvider()
{
- engine.addImageProvider("test2", new TestProvider);
- QVERIFY(engine.imageProvider("test2") != 0);
+ QFETCH(QDeclarativeImageProvider*, provider);
+
+ QDeclarativeEngine engine;
+
+ engine.addImageProvider("test", provider);
+ QVERIFY(engine.imageProvider("test") != 0);
// add provider, confirm it works
- QString componentStr = "import Qt 4.7\nImage { source: \"image://test2/exists1.png\" }";
+ QString componentStr = "import Qt 4.7\nImage { source: \"" + newImageFileName() + "\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
QVERIFY(obj != 0);
- TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
- TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
-
- QCOMPARE(obj->width(), 100.0);
+ QCOMPARE(obj->status(), QDeclarativeImage::Ready);
// remove the provider and confirm
- QString error("file::2:1: QML Image: Failed to get image from provider: image://test2/exists2.png");
-
+ QString fileName = newImageFileName();
+ QString error("file::2:1: QML Image: Failed to get image from provider: " + fileName);
QTest::ignoreMessage(QtWarningMsg, error.toUtf8());
- engine.removeImageProvider("test2");
-
- obj->setSource(QUrl("image://test2/exists2.png"));
+ engine.removeImageProvider("test");
- TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
- TRY_WAIT(obj->status() == QDeclarativeImage::Error);
+ obj->setSource(QUrl(fileName));
+ QCOMPARE(obj->status(), QDeclarativeImage::Error);
delete obj;
}
diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
index 4a57def..ffb2105 100644
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
@@ -703,11 +703,8 @@ void tst_QDeclarativeItem::propertyChanges()
QCOMPARE(focusArguments.at(0).toBool(), true);
QCOMPARE(parentItem->hasFocus(), false);
- QCOMPARE(parentItem->wantsFocus(), true);
- QCOMPARE(wantsFocusSpy.count(),1);
- QList<QVariant> wantsFocusArguments = wantsFocusSpy.first();
- QVERIFY(wantsFocusArguments.count() == 1);
- QCOMPARE(wantsFocusArguments.at(0).toBool(), true);
+ QCOMPARE(parentItem->wantsFocus(), false);
+ QCOMPARE(wantsFocusSpy.count(),0);
delete canvas;
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importFile.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/importFile.errors.txt
new file mode 100644
index 0000000..3fdac09
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importFile.errors.txt
@@ -0,0 +1 @@
+1:1:"MyComponent.qml": no such directory
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importFile.qml b/tests/auto/declarative/qdeclarativelanguage/data/importFile.qml
new file mode 100644
index 0000000..a0d8410
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importFile.qml
@@ -0,0 +1,3 @@
+import "MyComponent.qml" 1.0
+
+MyComponent { text: "Hello" }
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir
index 0adb0f6..d15720a 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir
+++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir
@@ -2,4 +2,3 @@ Rectangle 1.5 InstalledTest2.qml
LocalLast 1.0 LocalLast.qml
InstalledTest 1.4 InstalledTest2.qml
InstalledTest 1.0 InstalledTest.qml
-InstalledTestTP 0.0 InstalledTest.qml
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml
new file mode 100644
index 0000000..303b5a5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml
@@ -0,0 +1,2 @@
+import Qt 4.7 as Qt47
+Qt47.Rectangle {}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml
new file mode 100644
index 0000000..8c953cb
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml
@@ -0,0 +1,2 @@
+import Qt 4.7
+Text {}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/qmldir b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/qmldir
new file mode 100644
index 0000000..b301226
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/qmldir
@@ -0,0 +1,2 @@
+InstalledTest 1.4 InstalledTest2.qml
+InstalledTestTP 0.0 InstalledTest.qml
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt
index 886da55..6e11786 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:8:Invalid property assignment: double expected
+4:8:Invalid property assignment: number expected
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt
index d0a0b00..d2b8c54 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt
@@ -1 +1 @@
-3:19:Invalid property assignment: double expected
+3:19:Invalid property assignment: number expected
diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
index 3ce356e..fcdf926 100644
--- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
@@ -289,6 +289,7 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("importNonExistOlder (installed)") << "importNonExistOlder.qml" << "importNonExistOlder.errors.txt" << false;
QTest::newRow("importNewerVersion (installed)") << "importNewerVersion.qml" << "importNewerVersion.errors.txt" << false;
QTest::newRow("invalidImportID") << "invalidImportID.qml" << "invalidImportID.errors.txt" << false;
+ QTest::newRow("importFile") << "importFile.qml" << "importFile.errors.txt" << false;
QTest::newRow("signal.1") << "signal.1.qml" << "signal.1.errors.txt" << false;
QTest::newRow("signal.2") << "signal.2.qml" << "signal.2.errors.txt" << false;
@@ -1476,12 +1477,12 @@ void tst_qdeclarativelanguage::importsInstalled_data()
// import installed
QTest::newRow("installed import 0")
- << "import com.nokia.installedtest 0.0\n"
+ << "import com.nokia.installedtest0 0.0\n"
"InstalledTestTP {}"
<< "QDeclarativeRectangle"
<< "";
QTest::newRow("installed import 0 as TP")
- << "import com.nokia.installedtest 0.0 as TP\n"
+ << "import com.nokia.installedtest0 0.0 as TP\n"
"TP.InstalledTestTP {}"
<< "QDeclarativeRectangle"
<< "";
@@ -1500,6 +1501,11 @@ void tst_qdeclarativelanguage::importsInstalled_data()
"InstalledTest {}"
<< "QDeclarativeText"
<< "";
+ QTest::newRow("installed import minor version not available") // QTBUG-11936
+ << "import com.nokia.installedtest 0.1\n"
+ "InstalledTest {}"
+ << ""
+ << "module \"com.nokia.installedtest\" version 0.1 is not installed";
QTest::newRow("installed import minor version not available") // QTBUG-9627
<< "import com.nokia.installedtest 1.10\n"
"InstalledTest {}"
diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
index f15ac8f..858c26d 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
@@ -193,8 +193,9 @@ void tst_qdeclarativelistmodel::dynamic_data()
QTest::newRow("count") << "count" << 0 << "";
- QTest::newRow("get1") << "{get(0)}" << 0 << "";
- QTest::newRow("get2") << "{get(-1)}" << 0 << "";
+ QTest::newRow("get1") << "{get(0) === undefined}" << 1 << "";
+ QTest::newRow("get2") << "{get(-1) === undefined}" << 1 << "";
+ QTest::newRow("get3") << "{append({'foo':123});get(0) != undefined}" << 1 << "";
QTest::newRow("append1") << "{append({'foo':123});count}" << 1 << "";
QTest::newRow("append2") << "{append({'foo':123,'bar':456});count}" << 1 << "";
@@ -292,8 +293,6 @@ void tst_qdeclarativelistmodel::dynamic()
if (e.hasError())
qDebug() << e.error(); // errors not expected
- if (QTest::currentDataTag() != QLatin1String("clear3") && QTest::currentDataTag() != QLatin1String("remove3"))
- QVERIFY(!e.hasError());
QCOMPARE(actual,result);
}
@@ -308,6 +307,9 @@ void tst_qdeclarativelistmodel::dynamic_worker()
QFETCH(int, result);
QFETCH(QString, warning);
+ // This is same as dynamic() except it applies the test to a ListModel called
+ // from a WorkerScript (i.e. testing the internal NestedListModel class)
+
QDeclarativeListModel model;
QDeclarativeEngine eng;
QDeclarativeComponent component(&eng, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
diff --git a/tests/auto/declarative/qdeclarativelistview/data/footer.qml b/tests/auto/declarative/qdeclarativelistview/data/footer.qml
new file mode 100644
index 0000000..11cbe16
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistview/data/footer.qml
@@ -0,0 +1,30 @@
+import Qt 4.7
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "#ffffff"
+ Component {
+ id: myDelegate
+ Rectangle {
+ id: wrapper
+ objectName: "wrapper"
+ height: 20
+ width: 240
+ Text {
+ text: index
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ }
+ ListView {
+ id: list
+ objectName: "list"
+ focus: true
+ width: 240
+ height: 320
+ model: testModel
+ delegate: myDelegate
+ footer: Text { objectName: "footer"; text: "Footer"; height: 30 }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index e13bd94..9c24e03 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -97,6 +97,7 @@ private slots:
void QTBUG_9791();
void manualHighlight();
void QTBUG_11105();
+ void footer();
private:
template <class T> void items();
@@ -1558,6 +1559,37 @@ void tst_QDeclarativeListView::QTBUG_11105()
delete canvas;
}
+void tst_QDeclarativeListView::footer()
+{
+ QDeclarativeView *canvas = createView();
+
+ TestModel model;
+ for (int i = 0; i < 3; i++)
+ model.addItem("Item" + QString::number(i), "");
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/footer.qml"));
+ qApp->processEvents();
+
+ QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
+ QTRY_VERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
+
+ QDeclarativeText *footer = findItem<QDeclarativeText>(contentItem, "footer");
+ QVERIFY(footer);
+ QCOMPARE(footer->y(), 60.0);
+
+ model.removeItem(1);
+ QTRY_COMPARE(footer->y(), 40.0);
+
+ model.clear();
+ QTRY_COMPARE(footer->y(), 0.0);
+}
+
void tst_QDeclarativeListView::qListModelInterface_items()
{
items<TestModel>();
diff --git a/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp b/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp
index 8964f8a..b06ad7c 100644
--- a/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp
+++ b/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp
@@ -124,6 +124,7 @@ QML_DECLARE_TYPE(ValueInterceptorTestType);
{ \
cpptype v = (value); cpptype v2 = (value); \
QVERIFY(QDeclarativeMetaType::copy(QMetaType:: metatype, &v, 0)); \
+ QCOMPARE((cpptype)(v),(cpptype)(defaultvalue)); \
QVERIFY(v == (defaultvalue)); \
QVERIFY(QDeclarativeMetaType::copy(QMetaType:: metatype, &v, &v2)); \
QVERIFY(v == (value)); \
@@ -273,7 +274,7 @@ void tst_qdeclarativemetatype::copy()
QWidget widgetValue;
COPY_TEST(QObject *, QObjectStar, &objectValue, 0);
COPY_TEST(QWidget *, QWidgetStar, &widgetValue, 0);
- COPY_TEST(qreal, QReal, 10.2, 0);
+ COPY_TEST(qreal, QReal, 10.5, 0);
{
QVariant tv = QVariant::fromValue(QVariant(10));
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
index f1018b2..0c7780c 100644
--- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
+++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
@@ -138,42 +138,37 @@ void tst_qdeclarativepixmapcache::single()
expectedError = "Cannot open: " + target.toString();
}
- QPixmap pixmap;
+ QDeclarativePixmap pixmap;
QVERIFY(pixmap.width() <= 0); // Check Qt assumption
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(target, &pixmap, &errorString);
+
+ pixmap.load(&engine, target);
if (incache) {
- QCOMPARE(errorString, expectedError);
+ QCOMPARE(pixmap.error(), expectedError);
if (exists) {
- QVERIFY(status == QDeclarativePixmapReply::Ready);
+ QVERIFY(pixmap.status() == QDeclarativePixmap::Ready);
QVERIFY(pixmap.width() > 0);
} else {
- QVERIFY(status == QDeclarativePixmapReply::Error);
+ QVERIFY(pixmap.status() == QDeclarativePixmap::Error);
QVERIFY(pixmap.width() <= 0);
}
} else {
- QDeclarativePixmapReply *reply = QDeclarativePixmapCache::request(&engine, target);
- QVERIFY(reply);
QVERIFY(pixmap.width() <= 0);
Slotter getter;
- connect(reply, SIGNAL(finished()), &getter, SLOT(got()));
+ pixmap.connectFinished(&getter, SLOT(got()));
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
QVERIFY(getter.gotslot);
- QString errorString;
if (exists) {
- QVERIFY(QDeclarativePixmapCache::get(target, &pixmap, &errorString) == QDeclarativePixmapReply::Ready);
+ QVERIFY(pixmap.status() == QDeclarativePixmap::Ready);
QVERIFY(pixmap.width() > 0);
} else {
- QVERIFY(QDeclarativePixmapCache::get(target, &pixmap, &errorString) == QDeclarativePixmapReply::Error);
+ QVERIFY(pixmap.status() == QDeclarativePixmap::Error);
QVERIFY(pixmap.width() <= 0);
}
- QCOMPARE(errorString, expectedError);
+ QCOMPARE(pixmap.error(), expectedError);
}
-
- QCOMPARE(QDeclarativePixmapCache::pendingRequests(), 0);
}
void tst_qdeclarativepixmapcache::parallel_data()
@@ -185,47 +180,36 @@ void tst_qdeclarativepixmapcache::parallel_data()
QTest::addColumn<QUrl>("target2");
QTest::addColumn<int>("incache");
QTest::addColumn<int>("cancel"); // which one to cancel
- QTest::addColumn<int>("requests");
QTest::newRow("local")
<< thisfile.resolved(QUrl("data/exists1.png"))
<< thisfile.resolved(QUrl("data/exists2.png"))
<< (localfile_optimized ? 2 : 0)
- << -1
- << (localfile_optimized ? 0 : 2)
- ;
+ << -1;
QTest::newRow("remote")
<< QUrl("http://127.0.0.1:14452/exists2.png")
<< QUrl("http://127.0.0.1:14452/exists3.png")
<< 0
- << -1
- << 2
- ;
+ << -1;
QTest::newRow("remoteagain")
<< QUrl("http://127.0.0.1:14452/exists2.png")
<< QUrl("http://127.0.0.1:14452/exists3.png")
<< 2
- << -1
- << 0
- ;
+ << -1;
QTest::newRow("remotecopy")
<< QUrl("http://127.0.0.1:14452/exists4.png")
<< QUrl("http://127.0.0.1:14452/exists4.png")
<< 0
- << -1
- << 1
- ;
+ << -1;
QTest::newRow("remotecopycancel")
<< QUrl("http://127.0.0.1:14452/exists5.png")
<< QUrl("http://127.0.0.1:14452/exists5.png")
<< 0
- << 0
- << 1
- ;
+ << 0;
}
void tst_qdeclarativepixmapcache::parallel()
@@ -234,38 +218,38 @@ void tst_qdeclarativepixmapcache::parallel()
QFETCH(QUrl, target2);
QFETCH(int, incache);
QFETCH(int, cancel);
- QFETCH(int, requests);
QList<QUrl> targets;
targets << target1 << target2;
- QList<QDeclarativePixmapReply*> replies;
+ QList<QDeclarativePixmap *> pixmaps;
+ QList<bool> pending;
QList<Slotter*> getters;
+
for (int i=0; i<targets.count(); ++i) {
QUrl target = targets.at(i);
- QPixmap pixmap;
- QString errorString;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(target, &pixmap, &errorString);
- QDeclarativePixmapReply *reply = 0;
- QVERIFY(status != QDeclarativePixmapReply::Error);
- if (status != QDeclarativePixmapReply::Error && status != QDeclarativePixmapReply::Ready)
- reply = QDeclarativePixmapCache::request(&engine, target);
- replies.append(reply);
- if (!reply) {
- QVERIFY(pixmap.width() > 0);
+ QDeclarativePixmap *pixmap = new QDeclarativePixmap;
+
+ pixmap->load(&engine, target);
+
+ QVERIFY(pixmap->status() != QDeclarativePixmap::Error);
+ pixmaps.append(pixmap);
+ if (pixmap->isReady()) {
+ QVERIFY(pixmap->width() > 0);
getters.append(0);
+ pending.append(false);
} else {
- QVERIFY(pixmap.width() <= 0);
+ QVERIFY(pixmap->width() <= 0);
getters.append(new Slotter);
- connect(reply, SIGNAL(finished()), getters[i], SLOT(got()));
+ pixmap->connectFinished(getters[i], SLOT(got()));
+ pending.append(true);
}
}
QCOMPARE(incache+slotters, targets.count());
- QCOMPARE(QDeclarativePixmapCache::pendingRequests(), requests);
if (cancel >= 0) {
- QDeclarativePixmapCache::cancel(targets.at(cancel), getters[cancel]);
+ pixmaps.at(cancel)->clear(getters[cancel]);
slotters--;
}
@@ -275,22 +259,21 @@ void tst_qdeclarativepixmapcache::parallel()
}
for (int i=0; i<targets.count(); ++i) {
- QDeclarativePixmapReply *reply = replies[i];
- if (reply) {
- if (i == cancel) {
- QVERIFY(!getters[i]->gotslot);
- } else {
+ QDeclarativePixmap *pixmap = pixmaps[i];
+
+ if (i == cancel) {
+ QVERIFY(!getters[i]->gotslot);
+ } else {
+ if (pending[i])
QVERIFY(getters[i]->gotslot);
- QPixmap pixmap;
- QString errorString;
- QVERIFY(QDeclarativePixmapCache::get(targets[i], &pixmap, &errorString) == QDeclarativePixmapReply::Ready);
- QVERIFY(pixmap.width() > 0);
- }
+
+ QVERIFY(pixmap->isReady());
+ QVERIFY(pixmap->width() > 0);
delete getters[i];
}
}
- QCOMPARE(QDeclarativePixmapCache::pendingRequests(), 0);
+ qDeleteAll(pixmaps);
}
QTEST_MAIN(tst_qdeclarativepixmapcache)
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml
deleted file mode 100644
index 8c9d8ad..0000000
--- a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml
+++ /dev/null
@@ -1,3 +0,0 @@
-import Qt 4.7
-
-SmoothedFollow {}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml
deleted file mode 100644
index a634302..0000000
--- a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import Qt 4.7
-
-SmoothedFollow {
- to: 10; duration: 300; reversingMode: SmoothedFollow.Immediate
-}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml
deleted file mode 100644
index c60da7f..0000000
--- a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import Qt 4.7
-
-SmoothedFollow {
- to: 10; velocity: 250; reversingMode: SmoothedFollow.Sync
- maximumEasingTime: 150
-}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml
deleted file mode 100644
index 486bdee..0000000
--- a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml
+++ /dev/null
@@ -1,13 +0,0 @@
-import Qt 4.7
-
-Rectangle {
- width: 300; height: 300;
- Rectangle {
- objectName: "theRect"
- color: "red"
- width: 60; height: 60;
- x: 100; y: 100;
- SmoothedFollow on x { id: animX; objectName: "animX"; to: 200; enabled: true; duration: 200 }
- SmoothedFollow on y { id: animY; objectName: "animY"; to: 200; enabled: false; duration: 200 }
- }
-}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml
deleted file mode 100644
index 2e01d74..0000000
--- a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml
+++ /dev/null
@@ -1,13 +0,0 @@
-import Qt 4.7
-
-Rectangle {
- width: 300; height: 300;
- Rectangle {
- objectName: "theRect"
- color: "red"
- width: 60; height: 60;
- x: 100; y: 100;
- SmoothedFollow on x { objectName: "easeX"; to: 200; velocity: 500 }
- SmoothedFollow on y { objectName: "easeY"; to: 200; duration: 250; velocity: 500 }
- }
-}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro b/tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro
deleted file mode 100644
index dff4922..0000000
--- a/tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative gui
-macx:CONFIG -= app_bundle
-
-SOURCES += tst_qdeclarativesmoothedfollow.cpp
-
-symbian: {
- importFiles.sources = data
- importFiles.path = .
- DEPLOYMENT = importFiles
-} else {
- DEFINES += SRCDIR=\\\"$$PWD\\\"
-}
-
-CONFIG += parallel_test
-
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp b/tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp
deleted file mode 100644
index b9ac23f..0000000
--- a/tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp
+++ /dev/null
@@ -1,194 +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 test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <qtest.h>
-#include <QtDeclarative/qdeclarativeengine.h>
-#include <QtDeclarative/qdeclarativecomponent.h>
-#include <QtDeclarative/qdeclarativeview.h>
-
-#include <private/qdeclarativesmoothedfollow_p.h>
-#include <private/qdeclarativerectangle_p.h>
-#include <private/qdeclarativevaluetype_p.h>
-#include "../../../shared/util.h"
-
-#ifdef Q_OS_SYMBIAN
-// In Symbian OS test data is located in applications private dir
-#define SRCDIR "."
-#endif
-
-class tst_qdeclarativesmoothedfollow : public QObject
-{
- Q_OBJECT
-public:
- tst_qdeclarativesmoothedfollow();
-
-private slots:
- void defaultValues();
- void values();
- void disabled();
- void valueSource();
- void followTo();
-
-private:
- QDeclarativeEngine engine;
-};
-
-tst_qdeclarativesmoothedfollow::tst_qdeclarativesmoothedfollow()
-{
-}
-
-void tst_qdeclarativesmoothedfollow::defaultValues()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollow1.qml"));
- QDeclarativeSmoothedFollow *obj = qobject_cast<QDeclarativeSmoothedFollow*>(c.create());
-
- QVERIFY(obj != 0);
-
- QCOMPARE(obj->to(), 0.);
- QCOMPARE(obj->velocity(), 200.);
- QCOMPARE(obj->duration(), -1);
- QCOMPARE(obj->maximumEasingTime(), -1);
- QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedFollow::Eased);
-
- delete obj;
-}
-
-void tst_qdeclarativesmoothedfollow::values()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollow2.qml"));
- QDeclarativeSmoothedFollow *obj = qobject_cast<QDeclarativeSmoothedFollow*>(c.create());
-
- QVERIFY(obj != 0);
-
- QCOMPARE(obj->to(), 10.);
- QCOMPARE(obj->velocity(), 200.);
- QCOMPARE(obj->duration(), 300);
- QCOMPARE(obj->maximumEasingTime(), -1);
- QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedFollow::Immediate);
-
- delete obj;
-}
-
-void tst_qdeclarativesmoothedfollow::disabled()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollow3.qml"));
- QDeclarativeSmoothedFollow *obj = qobject_cast<QDeclarativeSmoothedFollow*>(c.create());
-
- QVERIFY(obj != 0);
-
- QCOMPARE(obj->to(), 10.);
- QCOMPARE(obj->velocity(), 250.);
- QCOMPARE(obj->maximumEasingTime(), 150);
- QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedFollow::Sync);
-
- delete obj;
-}
-
-void tst_qdeclarativesmoothedfollow::valueSource()
-{
- QDeclarativeEngine engine;
-
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollowValueSource.qml"));
-
- QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
-
- QDeclarativeRectangle *theRect = rect->findChild<QDeclarativeRectangle*>("theRect");
- QVERIFY(theRect);
-
- QDeclarativeSmoothedFollow *easeX = rect->findChild<QDeclarativeSmoothedFollow*>("easeX");
- QVERIFY(easeX);
- QVERIFY(easeX->enabled());
-
- QDeclarativeSmoothedFollow *easeY = rect->findChild<QDeclarativeSmoothedFollow*>("easeY");
- QVERIFY(easeY);
- QVERIFY(easeY->enabled());
-
- // XXX get the proper duration
- QTest::qWait(200);
-
- QTRY_COMPARE(theRect->x(), easeX->to());
- QTRY_COMPARE(theRect->y(), easeY->to());
-
- QTRY_COMPARE(theRect->x(), qreal(200));
- QTRY_COMPARE(theRect->y(), qreal(200));
-}
-
-void tst_qdeclarativesmoothedfollow::followTo()
-{
- QDeclarativeView canvas;
- canvas.setFixedSize(240,320);
-
- canvas.setSource(QUrl::fromLocalFile(SRCDIR "/data/smoothedfollowDisabled.qml"));
- canvas.show();
- canvas.setFocus();
- QVERIFY(canvas.rootObject() != 0);
-
- QDeclarativeRectangle *rect = canvas.rootObject()->findChild<QDeclarativeRectangle*>("theRect");
- QVERIFY(rect != 0);
-
- QDeclarativeSmoothedFollow *animX = canvas.rootObject()->findChild<QDeclarativeSmoothedFollow*>("animX");
- QVERIFY(animX != 0);
- QDeclarativeSmoothedFollow *animY = canvas.rootObject()->findChild<QDeclarativeSmoothedFollow*>("animY");
- QVERIFY(animY != 0);
-
- QVERIFY(animX->enabled());
- QVERIFY(!animY->enabled());
-
- // animX should track 'to'
- animX->setTo(50.0);
- // animY should not track this 'to' change
- animY->setTo(50.0);
-
- // XXX get the proper duration
- QTest::qWait(250);
-
- QTRY_COMPARE(rect->x(), animX->to());
-
- QCOMPARE(rect->x(), 50.0);
- QCOMPARE(rect->y(), 100.0);
-}
-
-QTEST_MAIN(tst_qdeclarativesmoothedfollow)
-
-#include "tst_qdeclarativesmoothedfollow.moc"
diff --git a/tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml
new file mode 100644
index 0000000..07587bd
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml
@@ -0,0 +1,4 @@
+import Qt 4.7
+
+SpringAnimation {
+}
diff --git a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml
index 31a740a..562f44a 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml
+++ b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml
@@ -1,8 +1,9 @@
import Qt 4.7
-SpringFollow {
+SpringAnimation {
to: 1.44; velocity: 0.9
spring: 1.0; damping: 0.5
epsilon: 0.25; modulus: 360.0
- mass: 2.0; enabled: true
+ mass: 2.0;
+ running: true;
}
diff --git a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml
index 0fa4aa9..9f70bf4 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml
+++ b/tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml
@@ -1,8 +1,8 @@
import Qt 4.7
-SpringFollow {
+SpringAnimation {
to: 1.44; velocity: 0.9
spring: 1.0; damping: 0.5
epsilon: 0.25; modulus: 360.0
- mass: 2.0; enabled: false
+ mass: 2.0; running: false
}
diff --git a/tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro b/tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro
index 1c17ba0..213b262 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro
+++ b/tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro
@@ -2,7 +2,7 @@ load(qttest_p4)
contains(QT_CONFIG,declarative): QT += declarative gui
macx:CONFIG -= app_bundle
-SOURCES += tst_qdeclarativespringfollow.cpp
+SOURCES += tst_qdeclarativespringanimation.cpp
symbian: {
importFiles.sources = data
diff --git a/tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp b/tests/auto/declarative/qdeclarativespringanimation/tst_qdeclarativespringanimation.cpp
index e0e2892..4b17a47 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp
+++ b/tests/auto/declarative/qdeclarativespringanimation/tst_qdeclarativespringanimation.cpp
@@ -41,7 +41,7 @@
#include <qtest.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
-#include <private/qdeclarativespringfollow_p.h>
+#include <private/qdeclarativespringanimation_p.h>
#include <private/qdeclarativevaluetype_p.h>
#include "../../../shared/util.h"
@@ -50,11 +50,11 @@
#define SRCDIR "."
#endif
-class tst_qdeclarativespringfollow : public QObject
+class tst_qdeclarativespringanimation : public QObject
{
Q_OBJECT
public:
- tst_qdeclarativespringfollow();
+ tst_qdeclarativespringanimation();
private slots:
void defaultValues();
@@ -65,15 +65,15 @@ private:
QDeclarativeEngine engine;
};
-tst_qdeclarativespringfollow::tst_qdeclarativespringfollow()
+tst_qdeclarativespringanimation::tst_qdeclarativespringanimation()
{
}
-void tst_qdeclarativespringfollow::defaultValues()
+void tst_qdeclarativespringanimation::defaultValues()
{
QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/springfollow1.qml"));
- QDeclarativeSpringFollow *obj = qobject_cast<QDeclarativeSpringFollow*>(c.create());
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/springanimation1.qml"));
+ QDeclarativeSpringAnimation *obj = qobject_cast<QDeclarativeSpringAnimation*>(c.create());
QVERIFY(obj != 0);
@@ -83,19 +83,17 @@ void tst_qdeclarativespringfollow::defaultValues()
QCOMPARE(obj->damping(), 0.);
QCOMPARE(obj->epsilon(), 0.01);
QCOMPARE(obj->modulus(), 0.);
- QCOMPARE(obj->value(), 0.);
QCOMPARE(obj->mass(), 1.);
- QCOMPARE(obj->enabled(), true);
- QCOMPARE(obj->inSync(), true);
+ QCOMPARE(obj->isRunning(), false);
delete obj;
}
-void tst_qdeclarativespringfollow::values()
+void tst_qdeclarativespringanimation::values()
{
QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/springfollow2.qml"));
- QDeclarativeSpringFollow *obj = qobject_cast<QDeclarativeSpringFollow*>(c.create());
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/springanimation2.qml"));
+ QDeclarativeSpringAnimation *obj = qobject_cast<QDeclarativeSpringAnimation*>(c.create());
QVERIFY(obj != 0);
@@ -106,19 +104,18 @@ void tst_qdeclarativespringfollow::values()
QCOMPARE(obj->epsilon(), 0.25);
QCOMPARE(obj->modulus(), 360.0);
QCOMPARE(obj->mass(), 2.0);
- QCOMPARE(obj->enabled(), true);
+ QCOMPARE(obj->isRunning(), true);
- QTRY_COMPARE(obj->value(), 1.44);
- QTRY_COMPARE(obj->inSync(), true);
+ QTRY_COMPARE(obj->isRunning(), false);
delete obj;
}
-void tst_qdeclarativespringfollow::disabled()
+void tst_qdeclarativespringanimation::disabled()
{
QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/springfollow3.qml"));
- QDeclarativeSpringFollow *obj = qobject_cast<QDeclarativeSpringFollow*>(c.create());
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/springanimation3.qml"));
+ QDeclarativeSpringAnimation *obj = qobject_cast<QDeclarativeSpringAnimation*>(c.create());
QVERIFY(obj != 0);
@@ -129,14 +126,11 @@ void tst_qdeclarativespringfollow::disabled()
QCOMPARE(obj->epsilon(), 0.25);
QCOMPARE(obj->modulus(), 360.0);
QCOMPARE(obj->mass(), 2.0);
- QCOMPARE(obj->enabled(), false);
-
- QCOMPARE(obj->value(), 0.0);
- QCOMPARE(obj->inSync(), false);
+ QCOMPARE(obj->isRunning(), false);
delete obj;
}
-QTEST_MAIN(tst_qdeclarativespringfollow)
+QTEST_MAIN(tst_qdeclarativespringanimation)
-#include "tst_qdeclarativespringfollow.moc"
+#include "tst_qdeclarativespringanimation.moc"
diff --git a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow1.qml b/tests/auto/declarative/qdeclarativespringfollow/data/springfollow1.qml
deleted file mode 100644
index 8528cfa..0000000
--- a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow1.qml
+++ /dev/null
@@ -1,4 +0,0 @@
-import Qt 4.7
-
-SpringFollow {
-}
diff --git a/tests/auto/declarative/qdeclarativetext/data/alignments.qml b/tests/auto/declarative/qdeclarativetext/data/alignments.qml
index b1f701b..762e2b6 100644
--- a/tests/auto/declarative/qdeclarativetext/data/alignments.qml
+++ b/tests/auto/declarative/qdeclarativetext/data/alignments.qml
@@ -20,9 +20,9 @@ Rectangle {
id: t
anchors.fill: parent
- horizontalAlignment: TextEdit.AlignRight
- verticalAlignment: TextEdit.AlignBottom
- wrapMode: TextEdit.WordWrap
+ horizontalAlignment: Text.AlignRight
+ verticalAlignment: Text.AlignBottom
+ wrapMode: Text.WordWrap
text: top.txt
}
Timer {
diff --git a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
index 8a4f152..80198eb 100644
--- a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
+++ b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
@@ -48,6 +48,7 @@
#include <QGraphicsSceneMouseEvent>
#include <qmath.h>
#include <QDeclarativeView>
+#include <private/qapplication_p.h>
#include "../../../shared/util.h"
#include "testhttpserver.h"
@@ -452,7 +453,9 @@ void tst_qdeclarativetext::alignments()
#ifdef Q_WS_X11
// Font-specific, but not likely platform-specific, so only test on one platform
- QCOMPARE(actual,expect);
+ if (QApplicationPrivate::graphics_system_name == "raster" || QApplicationPrivate::graphics_system_name == "") {
+ QCOMPARE(actual,expect);
+ }
#endif
}
diff --git a/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml b/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml
index b1f701b..9281a06 100644
--- a/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml
+++ b/tests/auto/declarative/qdeclarativetextedit/data/alignments.qml
@@ -16,7 +16,7 @@ Rectangle {
height: 40
color: "green"
- Text {
+ TextEdit {
id: t
anchors.fill: parent
diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
index f1a367f..4783bc7 100644
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -53,14 +53,34 @@
#include <private/qdeclarativetextedit_p_p.h>
#include <QFontMetrics>
#include <QDeclarativeView>
+#include <QDir>
#include <QStyle>
#include <QInputContext>
+#include <private/qapplication_p.h>
+#include <private/qtextcontrol_p.h>
#ifdef Q_OS_SYMBIAN
// In Symbian OS test data is located in applications private dir
#define SRCDIR "."
#endif
+QString createExpectedFileIfNotFound(const QString& filebasename, const QImage& actual)
+{
+ // XXX This will be replaced by some clever persistent platform image store.
+ QString persistent_dir = SRCDIR "/data";
+ QString arch = "unknown-architecture"; // QTest needs to help with this.
+
+ QString expectfile = persistent_dir + QDir::separator() + filebasename + "-" + arch + ".png";
+
+ if (!QFile::exists(expectfile)) {
+ actual.save(expectfile);
+ qWarning() << "created" << expectfile;
+ }
+
+ return expectfile;
+}
+
+
class tst_qdeclarativetextedit : public QObject
{
@@ -94,6 +114,7 @@ private slots:
void delegateLoading();
void navigation();
void readOnly();
+ void copyAndPaste();
void openInputPanelOnClick();
void openInputPanelOnFocus();
void geometrySignals();
@@ -206,7 +227,7 @@ void tst_qdeclarativetextedit::width()
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
QVERIFY(textEditObject != 0);
- QCOMPARE(textEditObject->width(), 1.);//+1 for cursor
+ QCOMPARE(textEditObject->width(), 0.0);
}
for (int i = 0; i < standard.size(); i++)
@@ -222,7 +243,7 @@ void tst_qdeclarativetextedit::width()
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
QVERIFY(textEditObject != 0);
- QCOMPARE(textEditObject->width(), qreal(metricWidth + 1 + 3));//+3 is the current way of accounting for space between cursor and last character.
+ QCOMPARE(textEditObject->width(), qreal(metricWidth));
}
for (int i = 0; i < richText.size(); i++)
@@ -239,7 +260,7 @@ void tst_qdeclarativetextedit::width()
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
QVERIFY(textEditObject != 0);
- QCOMPARE(textEditObject->width(), qreal(documentWidth + 1 + 3));
+ QCOMPARE(textEditObject->width(), qreal(documentWidth));
}
}
@@ -305,17 +326,17 @@ void tst_qdeclarativetextedit::alignments_data()
QTest::addColumn<int>("vAlign");
QTest::addColumn<QString>("expectfile");
- QTest::newRow("LT") << int(Qt::AlignLeft) << int(Qt::AlignTop) << SRCDIR "/data/alignments_lt.png";
- QTest::newRow("RT") << int(Qt::AlignRight) << int(Qt::AlignTop) << SRCDIR "/data/alignments_rt.png";
- QTest::newRow("CT") << int(Qt::AlignHCenter) << int(Qt::AlignTop) << SRCDIR "/data/alignments_ct.png";
+ QTest::newRow("LT") << int(Qt::AlignLeft) << int(Qt::AlignTop) << "alignments_lt";
+ QTest::newRow("RT") << int(Qt::AlignRight) << int(Qt::AlignTop) << "alignments_rt";
+ QTest::newRow("CT") << int(Qt::AlignHCenter) << int(Qt::AlignTop) << "alignments_ct";
- QTest::newRow("LB") << int(Qt::AlignLeft) << int(Qt::AlignBottom) << SRCDIR "/data/alignments_lb.png";
- QTest::newRow("RB") << int(Qt::AlignRight) << int(Qt::AlignBottom) << SRCDIR "/data/alignments_rb.png";
- QTest::newRow("CB") << int(Qt::AlignHCenter) << int(Qt::AlignBottom) << SRCDIR "/data/alignments_cb.png";
+ QTest::newRow("LB") << int(Qt::AlignLeft) << int(Qt::AlignBottom) << "alignments_lb";
+ QTest::newRow("RB") << int(Qt::AlignRight) << int(Qt::AlignBottom) << "alignments_rb";
+ QTest::newRow("CB") << int(Qt::AlignHCenter) << int(Qt::AlignBottom) << "alignments_cb";
- QTest::newRow("LC") << int(Qt::AlignLeft) << int(Qt::AlignVCenter) << SRCDIR "/data/alignments_lc.png";
- QTest::newRow("RC") << int(Qt::AlignRight) << int(Qt::AlignVCenter) << SRCDIR "/data/alignments_rc.png";
- QTest::newRow("CC") << int(Qt::AlignHCenter) << int(Qt::AlignVCenter) << SRCDIR "/data/alignments_cc.png";
+ QTest::newRow("LC") << int(Qt::AlignLeft) << int(Qt::AlignVCenter) << "alignments_lc";
+ QTest::newRow("RC") << int(Qt::AlignRight) << int(Qt::AlignVCenter) << "alignments_rc";
+ QTest::newRow("CC") << int(Qt::AlignHCenter) << int(Qt::AlignVCenter) << "alignments_cc";
}
@@ -325,13 +346,6 @@ void tst_qdeclarativetextedit::alignments()
QFETCH(int, vAlign);
QFETCH(QString, expectfile);
-#ifdef Q_WS_X11
- // Font-specific, but not likely platform-specific, so only test on one platform
- QFont fn;
- fn.setRawName("-misc-fixed-medium-r-*-*-8-*-*-*-*-*-*-*");
- QApplication::setFont(fn);
-#endif
-
QDeclarativeView *canvas = createView(SRCDIR "/data/alignments.qml");
canvas->show();
@@ -349,12 +363,11 @@ void tst_qdeclarativetextedit::alignments()
QPainter p(&actual);
canvas->render(&p);
+ expectfile = createExpectedFileIfNotFound(expectfile, actual);
+
QImage expect(expectfile);
-#ifdef Q_WS_X11
- // Font-specific, but not likely platform-specific, so only test on one platform
QCOMPARE(actual,expect);
-#endif
}
@@ -489,6 +502,23 @@ void tst_qdeclarativetextedit::font()
void tst_qdeclarativetextedit::color()
{
+ //test initial color
+ {
+ QString componentStr = "import Qt 4.7\nTextEdit { text: \"Hello World\" }";
+ QDeclarativeComponent texteditComponent(&engine);
+ texteditComponent.setData(componentStr.toLatin1(), QUrl());
+ QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
+
+ QDeclarativeTextEditPrivate *textEditPrivate = static_cast<QDeclarativeTextEditPrivate*>(QDeclarativeItemPrivate::get(textEditObject));
+
+ QVERIFY(textEditObject);
+ QVERIFY(textEditPrivate);
+ QVERIFY(textEditPrivate->control);
+
+ QPalette pal = textEditPrivate->control->palette();
+ QCOMPARE(textEditPrivate->color, QColor("black"));
+ QCOMPARE(textEditPrivate->color, pal.color(QPalette::Text));
+ }
//test normal
for (int i = 0; i < colorStrings.size(); i++)
{
@@ -821,6 +851,52 @@ void tst_qdeclarativetextedit::navigation()
QVERIFY(input->hasFocus() == true);
}
+void tst_qdeclarativetextedit::copyAndPaste() {
+#ifndef QT_NO_CLIPBOARD
+
+#ifdef Q_WS_MAC
+ {
+ PasteboardRef pasteboard;
+ OSStatus status = PasteboardCreate(0, &pasteboard);
+ if (status == noErr)
+ CFRelease(pasteboard);
+ else
+ QSKIP("This machine doesn't support the clipboard", SkipAll);
+ }
+#endif
+
+ QString componentStr = "import Qt 4.7\nTextEdit { text: \"Hello world!\" }";
+ QDeclarativeComponent textEditComponent(&engine);
+ textEditComponent.setData(componentStr.toLatin1(), QUrl());
+ QDeclarativeTextEdit *textEdit = qobject_cast<QDeclarativeTextEdit*>(textEditComponent.create());
+ QVERIFY(textEdit != 0);
+
+ // copy and paste
+ QCOMPARE(textEdit->text().length(), 12);
+ textEdit->select(0, textEdit->text().length());;
+ textEdit->copy();
+ QCOMPARE(textEdit->selectedText(), QString("Hello world!"));
+ QCOMPARE(textEdit->selectedText().length(), 12);
+ textEdit->setCursorPosition(0);
+ textEdit->paste();
+ QCOMPARE(textEdit->text(), QString("Hello world!Hello world!"));
+ QCOMPARE(textEdit->text().length(), 24);
+
+ // select word
+ textEdit->setCursorPosition(0);
+ textEdit->selectWord();
+ QCOMPARE(textEdit->selectedText(), QString("Hello"));
+
+ // select all and cut
+ textEdit->selectAll();
+ textEdit->cut();
+ QCOMPARE(textEdit->text().length(), 0);
+ textEdit->paste();
+ QCOMPARE(textEdit->text(), QString("Hello world!Hello world!"));
+ QCOMPARE(textEdit->text().length(), 24);
+#endif
+}
+
void tst_qdeclarativetextedit::readOnly()
{
QDeclarativeView *canvas = createView(SRCDIR "/data/readOnly.qml");
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/halign_center.png b/tests/auto/declarative/qdeclarativetextinput/data/halign_center.png
new file mode 100644
index 0000000..53e09a8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextinput/data/halign_center.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/halign_left.png b/tests/auto/declarative/qdeclarativetextinput/data/halign_left.png
new file mode 100644
index 0000000..247acbc
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextinput/data/halign_left.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/halign_right.png b/tests/auto/declarative/qdeclarativetextinput/data/halign_right.png
new file mode 100644
index 0000000..691bc75
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextinput/data/halign_right.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml b/tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml
new file mode 100644
index 0000000..b97f18e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml
@@ -0,0 +1,22 @@
+import Qt 4.7
+
+Rectangle {
+ id: top
+ width: 70; height: 70;
+
+ property alias horizontalAlignment: text.horizontalAlignment
+ property string text: "Test"
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: 60
+ height: 20
+ color: "green"
+
+ TextInput {
+ id: text
+ anchors.fill: parent
+ text: top.text
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/inputmethodhints.qml b/tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml
index da6b81f..405ee22 100644
--- a/tests/auto/declarative/qdeclarativetextinput/data/inputmethodhints.qml
+++ b/tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml
@@ -3,4 +3,5 @@ import Qt 4.7
TextInput {
text: "Hello world!"
inputMethodHints: Qt.ImhNoPredictiveText
+ Keys.onLeftPressed: {}
}
diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
index a55b42e..a48bc39 100644
--- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
+++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
@@ -47,14 +47,32 @@
#include <private/qdeclarativetextinput_p.h>
#include <private/qdeclarativetextinput_p_p.h>
#include <QDebug>
+#include <QDir>
#include <QStyle>
#include <QInputContext>
+#include <private/qapplication_p.h>
#ifdef Q_OS_SYMBIAN
// In Symbian OS test data is located in applications private dir
#define SRCDIR "."
#endif
+QString createExpectedFileIfNotFound(const QString& filebasename, const QImage& actual)
+{
+ // XXX This will be replaced by some clever persistent platform image store.
+ QString persistent_dir = SRCDIR "/data";
+ QString arch = "unknown-architecture"; // QTest needs to help with this.
+
+ QString expectfile = persistent_dir + QDir::separator() + filebasename + "-" + arch + ".png";
+
+ if (!QFile::exists(expectfile)) {
+ actual.save(expectfile);
+ qWarning() << "created" << expectfile;
+ }
+
+ return expectfile;
+}
+
class tst_qdeclarativetextinput : public QObject
{
@@ -63,21 +81,26 @@ public:
tst_qdeclarativetextinput();
private slots:
+
void text();
void width();
void font();
void color();
void selection();
+ void horizontalAlignment_data();
+ void horizontalAlignment();
+
void positionAt();
void maxLength();
void masks();
void validators();
- void inputMethodHints();
+ void inputMethods();
void cursorDelegate();
void navigation();
+ void copyAndPaste();
void readOnly();
void openInputPanelOnClick();
@@ -153,7 +176,7 @@ void tst_qdeclarativetextinput::width()
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
- QCOMPARE(textinputObject->width(), 1.);//1 for the cursor
+ QCOMPARE(textinputObject->width(), 0.0);
delete textinputObject;
}
@@ -170,7 +193,8 @@ void tst_qdeclarativetextinput::width()
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
- QCOMPARE(textinputObject->width(), qreal(metricWidth) + 1.);//1 for the cursor
+ int delta = abs(int(textinputObject->width()) - metricWidth);
+ QVERIFY(delta <= 3.0); // As best as we can hope for cross-platform.
delete textinputObject;
}
@@ -370,6 +394,46 @@ void tst_qdeclarativetextinput::selection()
delete textinputObject;
}
+void tst_qdeclarativetextinput::horizontalAlignment_data()
+{
+ QTest::addColumn<int>("hAlign");
+ QTest::addColumn<QString>("expectfile");
+
+ QTest::newRow("L") << int(Qt::AlignLeft) << "halign_left";
+ QTest::newRow("R") << int(Qt::AlignRight) << "halign_right";
+ QTest::newRow("C") << int(Qt::AlignHCenter) << "halign_center";
+}
+
+void tst_qdeclarativetextinput::horizontalAlignment()
+{
+ QFETCH(int, hAlign);
+ QFETCH(QString, expectfile);
+
+ QDeclarativeView *canvas = createView(SRCDIR "/data/horizontalAlignment.qml");
+
+ canvas->show();
+ QApplication::setActiveWindow(canvas);
+ QTest::qWaitForWindowShown(canvas);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(canvas));
+ QObject *ob = canvas->rootObject();
+ QVERIFY(ob != 0);
+ ob->setProperty("horizontalAlignment",hAlign);
+ QImage actual(canvas->width(), canvas->height(), QImage::Format_RGB32);
+ actual.fill(qRgb(255,255,255));
+ {
+ QPainter p(&actual);
+ canvas->render(&p);
+ }
+
+ expectfile = createExpectedFileIfNotFound(expectfile, actual);
+
+ QImage expect(expectfile);
+
+ QCOMPARE(actual,expect);
+
+ delete canvas;
+}
+
void tst_qdeclarativetextinput::positionAt()
{
QDeclarativeView *canvas = createView(SRCDIR "/data/positionAt.qml");
@@ -412,11 +476,13 @@ void tst_qdeclarativetextinput::positionAt()
void tst_qdeclarativetextinput::maxLength()
{
- //QString componentStr = "import Qt 4.7\nTextInput { maximumLength: 10; }";
QDeclarativeView *canvas = createView(SRCDIR "/data/maxLength.qml");
+ QVERIFY(canvas->rootObject() != 0);
canvas->show();
canvas->setFocus();
- QVERIFY(canvas->rootObject() != 0);
+ QApplication::setActiveWindow(canvas);
+ QTest::qWaitForWindowShown(canvas);
+
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput *>(canvas->rootObject());
QVERIFY(textinputObject != 0);
QVERIFY(textinputObject->text().isEmpty());
@@ -557,18 +623,31 @@ void tst_qdeclarativetextinput::validators()
delete canvas;
}
-void tst_qdeclarativetextinput::inputMethodHints()
+void tst_qdeclarativetextinput::inputMethods()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/inputmethodhints.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/inputmethods.qml");
canvas->show();
canvas->setFocus();
+ QApplication::setActiveWindow(canvas);
+ QTest::qWaitForWindowShown(canvas);
+ // test input method hints
QVERIFY(canvas->rootObject() != 0);
- QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput *>(canvas->rootObject());
- QVERIFY(textinputObject != 0);
- QVERIFY(textinputObject->inputMethodHints() & Qt::ImhNoPredictiveText);
- textinputObject->setInputMethodHints(Qt::ImhUppercaseOnly);
- QVERIFY(textinputObject->inputMethodHints() & Qt::ImhUppercaseOnly);
+ QDeclarativeTextInput *input = qobject_cast<QDeclarativeTextInput *>(canvas->rootObject());
+ QVERIFY(input != 0);
+ QVERIFY(input->inputMethodHints() & Qt::ImhNoPredictiveText);
+ input->setInputMethodHints(Qt::ImhUppercaseOnly);
+ QVERIFY(input->inputMethodHints() & Qt::ImhUppercaseOnly);
+
+ QVERIFY(canvas->rootObject() != 0);
+
+ input->setFocus(true);
+ QVERIFY(input->hasFocus() == true);
+ // test that input method event is committed
+ QInputMethodEvent event;
+ event.setCommitString( "My ", -12, 0);
+ QApplication::sendEvent(canvas, &event);
+ QCOMPARE(input->text(), QString("My Hello world!"));
delete canvas;
}
@@ -619,6 +698,52 @@ void tst_qdeclarativetextinput::navigation()
delete canvas;
}
+void tst_qdeclarativetextinput::copyAndPaste() {
+#ifndef QT_NO_CLIPBOARD
+
+#ifdef Q_WS_MAC
+ {
+ PasteboardRef pasteboard;
+ OSStatus status = PasteboardCreate(0, &pasteboard);
+ if (status == noErr)
+ CFRelease(pasteboard);
+ else
+ QSKIP("This machine doesn't support the clipboard", SkipAll);
+ }
+#endif
+
+ QString componentStr = "import Qt 4.7\nTextInput { text: \"Hello world!\" }";
+ QDeclarativeComponent textInputComponent(&engine);
+ textInputComponent.setData(componentStr.toLatin1(), QUrl());
+ QDeclarativeTextInput *textInput = qobject_cast<QDeclarativeTextInput*>(textInputComponent.create());
+ QVERIFY(textInput != 0);
+
+ // copy and paste
+ QCOMPARE(textInput->text().length(), 12);
+ textInput->select(0, textInput->text().length());;
+ textInput->copy();
+ QCOMPARE(textInput->selectedText(), QString("Hello world!"));
+ QCOMPARE(textInput->selectedText().length(), 12);
+ textInput->setCursorPosition(0);
+ textInput->paste();
+ QCOMPARE(textInput->text(), QString("Hello world!Hello world!"));
+ QCOMPARE(textInput->text().length(), 24);
+
+ // select word
+ textInput->setCursorPosition(0);
+ textInput->selectWord();
+ QCOMPARE(textInput->selectedText(), QString("Hello"));
+
+ // select all and cut
+ textInput->selectAll();
+ textInput->cut();
+ QCOMPARE(textInput->text().length(), 0);
+ textInput->paste();
+ QCOMPARE(textInput->text(), QString("Hello world!Hello world!"));
+ QCOMPARE(textInput->text().length(), 24);
+#endif
+}
+
void tst_qdeclarativetextinput::cursorDelegate()
{
QDeclarativeView* view = createView(SRCDIR "/data/cursorTest.qml");
@@ -930,7 +1055,7 @@ void tst_qdeclarativetextinput::openInputPanelOnFocus()
QCOMPARE(ic.openInputPanelReceived, false);
// input method should be disabled
- // if TextEdit loses focus
+ // if TextInput loses focus
input.setFocus(false);
QApplication::processEvents();
QVERIFY(view.inputContext() == 0);
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
index 81334f2..a4819f3 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
+++ b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
@@ -141,8 +141,8 @@ void tst_qdeclarativevaluetypes::pointf()
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
QVERIFY(object != 0);
- QCOMPARE(object->property("p_x").toDouble(), 11.3);
- QCOMPARE(object->property("p_y").toDouble(), -10.9);
+ QCOMPARE(float(object->property("p_x").toDouble()), float(11.3));
+ QCOMPARE(float(object->property("p_y").toDouble()), float(-10.9));
QCOMPARE(object->property("copy"), QVariant(QPointF(11.3, -10.9)));
delete object;
@@ -191,8 +191,8 @@ void tst_qdeclarativevaluetypes::sizef()
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
QVERIFY(object != 0);
- QCOMPARE(object->property("s_width").toDouble(), 0.1);
- QCOMPARE(object->property("s_height").toDouble(), 100923.2);
+ QCOMPARE(float(object->property("s_width").toDouble()), float(0.1));
+ QCOMPARE(float(object->property("s_height").toDouble()), float(100923.2));
QCOMPARE(object->property("copy"), QVariant(QSizeF(0.1, 100923.2)));
delete object;
@@ -287,10 +287,10 @@ void tst_qdeclarativevaluetypes::rectf()
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
QVERIFY(object != 0);
- QCOMPARE(object->property("r_x").toDouble(), 103.8);
- QCOMPARE(object->property("r_y").toDouble(), 99.2);
- QCOMPARE(object->property("r_width").toDouble(), 88.1);
- QCOMPARE(object->property("r_height").toDouble(), 77.6);
+ QCOMPARE(float(object->property("r_x").toDouble()), float(103.8));
+ QCOMPARE(float(object->property("r_y").toDouble()), float(99.2));
+ QCOMPARE(float(object->property("r_width").toDouble()), float(88.1));
+ QCOMPARE(float(object->property("r_height").toDouble()), float(77.6));
QCOMPARE(object->property("copy"), QVariant(QRectF(103.8, 99.2, 88.1, 77.6)));
delete object;
diff --git a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
index 9660430..b08da0f 100644
--- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
+++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
@@ -113,7 +113,6 @@ void tst_QDeclarativeViewer::orientation()
viewer->rotateOrientation();
qApp->processEvents();
- qApp->processEvents(); // one extra round for the delayed updateSizeHints() call
QCOMPARE(rootItem->width(), 300.0);
QCOMPARE(rootItem->height(), 200.0);
@@ -124,7 +123,6 @@ void tst_QDeclarativeViewer::orientation()
viewer->rotateOrientation();
qApp->processEvents();
- qApp->processEvents(); // one extra round for the delayed updateSizeHints() call
QCOMPARE(rootItem->width(), 200.0);
QCOMPARE(rootItem->height(), 300.0);
@@ -132,6 +130,8 @@ void tst_QDeclarativeViewer::orientation()
QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(200, 300));
QCOMPARE(viewer->size(), QSize(200, 300 + MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ delete viewer;
}
void tst_QDeclarativeViewer::loading()
@@ -157,10 +157,10 @@ void tst_QDeclarativeViewer::loading()
// window resized
QTRY_COMPARE(rootItem->width(), 400.0);
- QTRY_COMPARE(rootItem->height(), 500.0-viewer->menuBar()->height());
- QCOMPARE(viewer->view()->size(), QSize(400, 500-viewer->menuBar()->height()));
+ QTRY_COMPARE(rootItem->height(), 500.0 - MENUBAR_HEIGHT(viewer));
+ QCOMPARE(viewer->view()->size(), QSize(400, 500 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
- QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500-viewer->menuBar()->height()));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), QSize(400, 500));
QCOMPARE(viewer->size(), viewer->sizeHint());
@@ -174,7 +174,7 @@ void tst_QDeclarativeViewer::loading()
QCOMPARE(viewer->view()->size(), QSize(200, 300));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(200, 300));
- QCOMPARE(viewer->size(), QSize(200, 300+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), QSize(200, 300 + MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), viewer->sizeHint());
viewer->resize(QSize(400, 500));
@@ -182,10 +182,10 @@ void tst_QDeclarativeViewer::loading()
// window resized again
QTRY_COMPARE(rootItem->width(), 400.0);
- QTRY_COMPARE(rootItem->height(), 500.0-viewer->menuBar()->height());
- QCOMPARE(viewer->view()->size(), QSize(400, 500-viewer->menuBar()->height()));
+ QTRY_COMPARE(rootItem->height(), 500.0 - MENUBAR_HEIGHT(viewer));
+ QCOMPARE(viewer->view()->size(), QSize(400, 500 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
- QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500-viewer->menuBar()->height()));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), QSize(400, 500));
QCOMPARE(viewer->size(), viewer->sizeHint());
@@ -199,8 +199,10 @@ void tst_QDeclarativeViewer::loading()
QCOMPARE(viewer->view()->size(), QSize(200, 300));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(200, 300));
- QCOMPARE(viewer->size(), QSize(200, 300+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), QSize(200, 300 + MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ delete viewer;
}
void tst_QDeclarativeViewer::fileBrowser()
@@ -235,6 +237,8 @@ void tst_QDeclarativeViewer::fileBrowser()
QVERIFY(viewer->view());
QVERIFY(viewer->menuBar());
QVERIFY(browserItem);
+
+ delete viewer;
}
void tst_QDeclarativeViewer::resizing()
@@ -266,7 +270,7 @@ void tst_QDeclarativeViewer::resizing()
QTRY_COMPARE(viewer->view()->size(), QSize(150, 200));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(150, 200));
- QCOMPARE(viewer->size(), QSize(150, 200+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), QSize(150, 200 + MENUBAR_HEIGHT(viewer)));
// do not size root object to view
viewer->resize(QSize(180,250));
@@ -280,16 +284,18 @@ void tst_QDeclarativeViewer::resizing()
qApp->processEvents();
QTRY_COMPARE(rootItem->width(), 250.0);
- QTRY_COMPARE(rootItem->height(), 350.0-viewer->menuBar()->height());
- QTRY_COMPARE(viewer->view()->size(), QSize(250, 350-viewer->menuBar()->height()));
+ QTRY_COMPARE(rootItem->height(), 350.0 - MENUBAR_HEIGHT(viewer));
+ QTRY_COMPARE(viewer->view()->size(), QSize(250, 350 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
- QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(250, 350-viewer->menuBar()->height()));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(250, 350 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), QSize(250, 350));
// do not size view to root object
rootItem->setWidth(150);
rootItem->setHeight(200);
QTRY_COMPARE(viewer->size(), QSize(250, 350));
+
+ delete viewer;
}
void tst_QDeclarativeViewer::paths()
@@ -302,6 +308,8 @@ void tst_QDeclarativeViewer::paths()
viewer->addPluginPath("miscPluginPath");
viewer->view()->engine()->pluginPathList().contains("miscPluginPath");
+
+ delete viewer;
}
void tst_QDeclarativeViewer::slowMode()
@@ -311,6 +319,8 @@ void tst_QDeclarativeViewer::slowMode()
viewer->setSlowMode(true);
viewer->setSlowMode(false);
+
+ delete viewer;
}
QTEST_MAIN(tst_QDeclarativeViewer)
diff --git a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
index 8e98874..3140265 100644
--- a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
+++ b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
@@ -134,7 +134,7 @@ void tst_QDeclarativeWorkerScript::messaging_data()
QTest::newRow("invalid") << QVariant();
QTest::newRow("bool") << qVariantFromValue(true);
QTest::newRow("int") << qVariantFromValue(1001);
- QTest::newRow("real") << qVariantFromValue(10334.323);
+ QTest::newRow("real") << qVariantFromValue(10334.375);
QTest::newRow("string") << qVariantFromValue(QString("More cheeeese, Gromit!"));
QTest::newRow("variant list") << qVariantFromValue((QVariantList() << "a" << "b" << "c"));
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
index 7ca0ca5..0df727b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
@@ -14,27 +14,27 @@ Rectangle {
}
Rectangle {
- width: 50; height: 20; y: 60; color: "red"
- SmoothedFollow on x { to: rect.x; velocity: 400; enabled: true }
+ width: 50; height: 20; x: rect.x; y: 60; color: "red"
+ Behavior on x { SmoothedAnimation { velocity: 400 } }
}
Rectangle {
- width: 50; height: 20; y: 90; color: "yellow"
- SmoothedFollow on x { to: rect.x; velocity: 300; reversingMode: SmoothedAnimation.Immediate; enabled: true }
+ width: 50; height: 20; x: rect.x; y: 90; color: "yellow"
+ Behavior on x { SmoothedAnimation { velocity: 300; reversingMode: SmoothedAnimation.Immediate } }
}
Rectangle {
- width: 50; height: 20; y: 120; color: "green"
- SmoothedFollow on x { to: rect.x; reversingMode: SmoothedAnimation.Sync; enabled: true }
+ width: 50; height: 20; x: rect.x; y: 120; color: "green"
+ Behavior on x { SmoothedAnimation { reversingMode: SmoothedAnimation.Sync } }
}
Rectangle {
- width: 50; height: 20; y: 150; color: "purple"
- SmoothedFollow on x { to: rect.x; maximumEasingTime: 200; enabled: true }
+ width: 50; height: 20; x: rect.x; y: 150; color: "purple"
+ Behavior on x { SmoothedAnimation { maximumEasingTime: 200 } }
}
Rectangle {
- width: 50; height: 20; y: 180; color: "blue"
- SmoothedFollow on x { to: rect.x; duration: 300; enabled: true }
+ width: 50; height: 20; x: rect.x; y: 180; color: "blue"
+ Behavior on x { SmoothedAnimation { duration: 300 } }
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml
index d981763..c64497a 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml
@@ -22,10 +22,11 @@ Rectangle {
smooth: true
transform: Rotation {
id: hourRotation
- origin.x: 7.5; origin.y: 73; angle: 0
- SpringFollow on angle {
- spring: 2; damping: 0.2; modulus: 360
- to: (clock.hours * 30) + (clock.minutes * 0.5)
+ origin.x: 7.5; origin.y: 73
+ angle: (clock.hours * 30) + (clock.minutes * 0.5)
+
+ Behavior on angle {
+ SpringAnimation { spring: 2; damping: 0.2; modulus: 360 }
}
}
}
@@ -36,10 +37,11 @@ Rectangle {
smooth: true
transform: Rotation {
id: minuteRotation
- origin.x: 6.5; origin.y: 83; angle: 0
- SpringFollow on angle {
- spring: 2; damping: 0.2; modulus: 360
- to: clock.minutes * 6
+ origin.x: 6.5; origin.y: 83
+ angle: clock.minutes * 6
+
+ Behavior on angle {
+ SpringAnimation { spring: 2; damping: 0.2; modulus: 360 }
}
}
}
@@ -50,10 +52,11 @@ Rectangle {
smooth: true
transform: Rotation {
id: secondRotation
- origin.x: 2.5; origin.y: 80; angle: 0
- SpringFollow on angle {
- spring: 5; damping: 0.25; modulus: 360
- to: clock.seconds * 6
+ origin.x: 2.5; origin.y: 80
+ angle: clock.seconds * 6
+
+ Behavior on angle {
+ SpringAnimation { spring: 5; damping: 0.25; modulus: 360 }
}
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
index cabdce7..05b93df 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
@@ -3,6 +3,7 @@ import Qt 4.7
Rectangle {
color: "#ffffff"
width: 320; height: 240
+
Rectangle {
id: rect
color: "#00ff00"
@@ -25,22 +26,22 @@ Rectangle {
Rectangle {
color: "#ff0000"
x: rect.width; width: rect.width; height: 20
- y: 200
- SpringFollow on y { to: rect.y; velocity: 200 }
+ y: rect.y
+ Behavior on y { SpringAnimation { velocity: 200 } }
}
// Spring
Rectangle {
color: "#ff0000"
x: rect.width * 2; width: rect.width/2; height: 20
- y: 200
- SpringFollow on y { to: rect.y; spring: 1.0; damping: 0.2 }
+ y: rect.y
+ Behavior on y { SpringAnimation { spring: 1.0; damping: 0.2 } }
}
Rectangle {
color: "#880000"
x: rect.width * 2.5; width: rect.width/2; height: 20
- y: 200
- SpringFollow on y { to: rect.y; spring: 1.0; damping: 0.2; mass: 3.0 } // "heavier" object
+ y: rect.y
+ Behavior on y { SpringAnimation { spring: 1.0; damping: 0.2; mass: 3.0 } } // "heavier" object
}
// Follow mouse
@@ -49,15 +50,22 @@ Rectangle {
anchors.fill: parent
Rectangle {
id: ball
+ property int targetX: mouseRegion.mouseX - 10
+ property int targetY: mouseRegion.mouseY - 10
+
+ x: targetX
+ y: targetY
width: 20; height: 20
radius: 10
color: "#0000ff"
- SpringFollow on x { id: f1; to: mouseRegion.mouseX-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
- SpringFollow on y { id: f2; to: mouseRegion.mouseY-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
+
+ Behavior on x { SpringAnimation { spring: 1.0; damping: 0.05; epsilon: 0.25 } }
+ Behavior on y { SpringAnimation { spring: 1.0; damping: 0.05; epsilon: 0.25 } }
+
states: [
State {
name: "following"
- when: !f1.inSync || !f2.inSync
+ when: ball.x != ball.targetX || ball.y != ball.targetY
PropertyChanges { target: ball; color: "#ff0000" }
}
]
diff --git a/tests/auto/gui.pro b/tests/auto/gui.pro
index cfaa3fa..2d9ea93 100644
--- a/tests/auto/gui.pro
+++ b/tests/auto/gui.pro
@@ -112,6 +112,7 @@ SUBDIRS=\
qmdisubwindow \
qmessagebox \
qmetaobject \
+ qmimedata \
qmouseevent_modal \
qmovie \
qnetworkaccessmanager_and_qprogressdialog \
diff --git a/tests/auto/network.pro b/tests/auto/network.pro
index 4f205fe..e1898f1 100644
--- a/tests/auto/network.pro
+++ b/tests/auto/network.pro
@@ -7,6 +7,7 @@ SUBDIRS=\
networkselftest \
qabstractnetworkcache \
qabstractsocket \
+ qauthenticator \
qeventloop \
qftp \
qhostaddress \
@@ -36,6 +37,7 @@ SUBDIRS=\
qsslsocket \
contains(QT_CONFIG, private_tests): SUBDIRS -= \
+ qauthenticator \
qhttpnetworkconnection \
qhttpnetworkreply \
qnativesocketengine \
diff --git a/tests/auto/qauthenticator/qauthenticator.pro b/tests/auto/qauthenticator/qauthenticator.pro
new file mode 100644
index 0000000..05f83bc
--- /dev/null
+++ b/tests/auto/qauthenticator/qauthenticator.pro
@@ -0,0 +1,5 @@
+load(qttest_p4)
+requires(contains(QT_CONFIG,private_tests))
+QT = core network
+SOURCES += tst_qauthenticator.cpp
+DEFINES += SRCDIR=\\\"$$PWD/\\\"
diff --git a/tests/auto/qauthenticator/tst_qauthenticator.cpp b/tests/auto/qauthenticator/tst_qauthenticator.cpp
new file mode 100644
index 0000000..37d6774
--- /dev/null
+++ b/tests/auto/qauthenticator/tst_qauthenticator.cpp
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** 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 FOO 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 <QtCore/QString>
+#include <QtTest/QtTest>
+#include <QtCore/QCoreApplication>
+#include <QtNetwork/QAuthenticator>
+
+#include <private/qauthenticator_p.h>
+
+class tst_QAuthenticator : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QAuthenticator();
+
+private Q_SLOTS:
+ void basicAuth();
+ void basicAuth_data();
+
+ void ntlmAuth_data();
+ void ntlmAuth();
+};
+
+tst_QAuthenticator::tst_QAuthenticator()
+{
+}
+
+void tst_QAuthenticator::basicAuth_data()
+{
+ QTest::addColumn<QString>("data");
+ QTest::addColumn<QString>("realm");
+ QTest::addColumn<QString>("user");
+ QTest::addColumn<QString>("password");
+ QTest::addColumn<QByteArray>("expectedReply");
+
+ QTest::newRow("just-user") << "" << "" << "foo" << "" << QByteArray("foo:").toBase64();
+ QTest::newRow("user-password") << "" << "" << "foo" << "bar" << QByteArray("foo:bar").toBase64();
+ QTest::newRow("user-password-realm") << "realm=\"secure area\"" << "secure area" << "foo" << "bar" << QByteArray("foo:bar").toBase64();
+}
+
+void tst_QAuthenticator::basicAuth()
+{
+ QFETCH(QString, data);
+ QFETCH(QString, realm);
+ QFETCH(QString, user);
+ QFETCH(QString, password);
+ QFETCH(QByteArray, expectedReply);
+
+ QAuthenticator auth;
+ auth.detach();
+ QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(auth);
+ QVERIFY(priv->phase == QAuthenticatorPrivate::Start);
+
+ QList<QPair<QByteArray, QByteArray> > headers;
+ headers << qMakePair(QByteArray("WWW-Authenticate"), "Basic " + data.toUtf8());
+ priv->parseHttpResponse(headers, /*isProxy = */ false);
+
+ QCOMPARE(auth.realm(), realm);
+ QCOMPARE(auth.option("realm").toString(), realm);
+
+ auth.setUser(user);
+ auth.setPassword(password);
+
+ QVERIFY(priv->phase == QAuthenticatorPrivate::Start);
+
+ QCOMPARE(priv->calculateResponse("GET", "/").constData(), ("Basic " + expectedReply).constData());
+}
+
+void tst_QAuthenticator::ntlmAuth_data()
+{
+ QTest::addColumn<QString>("data");
+ QTest::addColumn<QString>("realm");
+
+ QTest::newRow("no-realm") << "TlRMTVNTUAACAAAAHAAcADAAAAAFAoEATFZ3OLRQADIAAAAAAAAAAJYAlgBMAAAAUQBUAC0AVABFAFMAVAAtAEQATwBNAEEASQBOAAIAHABRAFQALQBUAEUAUwBUAC0ARABPAE0AQQBJAE4AAQAcAFEAVAAtAFQARQBTAFQALQBTAEUAUgBWAEUAUgAEABYAcQB0AC0AdABlAHMAdAAtAG4AZQB0AAMANABxAHQALQB0AGUAcwB0AC0AcwBlAHIAdgBlAHIALgBxAHQALQB0AGUAcwB0AC0AbgBlAHQAAAAAAA==" << "";
+ QTest::newRow("with-realm") << "TlRMTVNTUAACAAAADAAMADgAAAAFAoECWCZkccFFAzwAAAAAAAAAAL4AvgBEAAAABQLODgAAAA9NAEcARABOAE8ASwACAAwATQBHAEQATgBPAEsAAQAcAE4ATwBLAC0AQQBNAFMAUwBTAEYARQAtADAAMQAEACAAbQBnAGQAbgBvAGsALgBuAG8AawBpAGEALgBjAG8AbQADAD4AbgBvAGsALQBhAG0AcwBzAHMAZgBlAC0AMAAxAC4AbQBnAGQAbgBvAGsALgBuAG8AawBpAGEALgBjAG8AbQAFACAAbQBnAGQAbgBvAGsALgBuAG8AawBpAGEALgBjAG8AbQAAAAAA" << "NOE";
+}
+
+void tst_QAuthenticator::ntlmAuth()
+{
+ QFETCH(QString, data);
+ QFETCH(QString, realm);
+
+ QAuthenticator auth;
+ auth.detach();
+ QAuthenticatorPrivate *priv = QAuthenticatorPrivate::getPrivate(auth);
+ QVERIFY(priv->phase == QAuthenticatorPrivate::Start);
+
+ QList<QPair<QByteArray, QByteArray> > headers;
+
+ // NTLM phase 1: negotiate
+ // This phase of NTLM contains no information, other than what we're willing to negotiate
+ // Current implementation uses flags:
+ // NTLMSSP_NEGOTIATE_UNICODE | NTLMSSP_NEGOTIATE_NTLM | NTLMSSP_REQUEST_TARGET
+ headers << qMakePair<QByteArray, QByteArray>("WWW-Authenticate", "NTLM");
+ priv->parseHttpResponse(headers, /*isProxy = */ false);
+ QCOMPARE(priv->calculateResponse("GET", "/").constData(), "NTLM TlRMTVNTUAABAAAABQIAAAAAAAAAAAAAAAAAAAAAAAA=");
+
+ // NTLM phase 2: challenge
+ headers.clear();
+ headers << qMakePair(QByteArray("WWW-Authenticate"), "NTLM " + data.toUtf8());
+ priv->parseHttpResponse(headers, /*isProxy = */ false);
+
+ QEXPECT_FAIL("with-realm", "NTLM authentication code doesn't extract the realm", Continue);
+ QCOMPARE(auth.realm(), realm);
+
+ auth.setUser("unimportant");
+ auth.setPassword("unimportant");
+
+ QVERIFY(!priv->calculateResponse("GET", "/").isEmpty());
+}
+
+QTEST_MAIN(tst_QAuthenticator);
+
+#include "tst_qauthenticator.moc"
diff --git a/tests/auto/qfiledialog2/tst_qfiledialog2.cpp b/tests/auto/qfiledialog2/tst_qfiledialog2.cpp
index eee495f..6299c24 100644
--- a/tests/auto/qfiledialog2/tst_qfiledialog2.cpp
+++ b/tests/auto/qfiledialog2/tst_qfiledialog2.cpp
@@ -140,6 +140,7 @@ private slots:
void QTBUG4419_lineEditSelectAll();
void QTBUG6558_showDirsOnly();
void QTBUG4842_selectFilterWithHideNameFilterDetails();
+ void dontShowCompleterOnRoot();
private:
QByteArray userSettings;
@@ -1194,5 +1195,26 @@ void tst_QFileDialog2::QTBUG4842_selectFilterWithHideNameFilterDetails()
}
+void tst_QFileDialog2::dontShowCompleterOnRoot()
+{
+ QNonNativeFileDialog fd(0, "TestFileDialog");
+ fd.setAcceptMode(QFileDialog::AcceptSave);
+ fd.show();
+
+ QApplication::setActiveWindow(&fd);
+ QTest::qWaitForWindowShown(&fd);
+ QTRY_COMPARE(fd.isVisible(), true);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget*>(&fd));
+
+ fd.setDirectory("");
+ QLineEdit *lineEdit = qFindChild<QLineEdit*>(&fd, "fileNameEdit");
+ QTRY_VERIFY(lineEdit->text().isEmpty());
+
+ //The gatherer thread will then return the result
+ QApplication::processEvents();
+
+ QTRY_VERIFY(lineEdit->completer()->popup()->isHidden());
+}
+
QTEST_MAIN(tst_QFileDialog2)
#include "tst_qfiledialog2.moc"
diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp
index 4c651bf..93b1891 100644
--- a/tests/auto/qfileinfo/tst_qfileinfo.cpp
+++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp
@@ -1082,7 +1082,7 @@ void tst_QFileInfo::isHidden_data()
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
QVERIFY(QDir("./hidden-directory").exists() || QDir().mkdir("./hidden-directory"));
- QVERIFY(SetFileAttributesW(QString("./hidden-directory").utf16(),FILE_ATTRIBUTE_HIDDEN));
+ QVERIFY(SetFileAttributesW(reinterpret_cast<LPCWSTR>(QString("./hidden-directory").utf16()),FILE_ATTRIBUTE_HIDDEN));
QTest::newRow("C:/path/to/hidden-directory") << QDir::currentPath() + QString::fromLatin1("/hidden-directory") << true;
QTest::newRow("C:/path/to/hidden-directory/.") << QDir::currentPath() + QString::fromLatin1("/hidden-directory/.") << true;
#endif
diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
index b9a5c66..d1d6860 100644
--- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
+++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
@@ -105,6 +105,7 @@ private slots:
void geometries_data();
void geometries();
void avoidRecursionInInsertItem();
+ void styleInfoLeak();
void task236367_maxSizeHint();
};
@@ -2196,6 +2197,12 @@ void tst_QGraphicsGridLayout::avoidRecursionInInsertItem()
QCOMPARE(layout->count(), 0);
}
+void tst_QGraphicsGridLayout::styleInfoLeak()
+{
+ QGraphicsGridLayout grid;
+ grid.horizontalSpacing();
+}
+
void tst_QGraphicsGridLayout::task236367_maxSizeHint()
{
QGraphicsWidget *widget = new QGraphicsWidget;
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 31a6845..3634ce9 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -422,6 +422,7 @@ private slots:
void setGraphicsEffect();
void panel();
void addPanelToActiveScene();
+ void panelWithFocusItem();
void activate();
void setActivePanelOnInactiveScene();
void activationOnShowHide();
@@ -462,6 +463,7 @@ private slots:
void sortItemsWhileAdding();
void doNotMarkFullUpdateIfNotInScene();
void itemDiesDuringDraggingOperation();
+ void QTBUG_12112_focusItem();
private:
QList<QGraphicsItem *> paintedItems;
@@ -8416,6 +8418,54 @@ void tst_QGraphicsItem::panel()
QVERIFY(!panel1->isActive());
}
+void tst_QGraphicsItem::panelWithFocusItem()
+{
+ QGraphicsScene scene;
+ QEvent activate(QEvent::WindowActivate);
+ QApplication::sendEvent(&scene, &activate);
+
+ QGraphicsRectItem *parentPanel = new QGraphicsRectItem;
+ QGraphicsRectItem *parentPanelFocusItem = new QGraphicsRectItem(parentPanel);
+ parentPanel->setFlag(QGraphicsItem::ItemIsPanel);
+ parentPanelFocusItem->setFlag(QGraphicsItem::ItemIsFocusable);
+ parentPanelFocusItem->setFocus();
+ scene.addItem(parentPanel);
+
+ QVERIFY(parentPanel->isActive());
+ QVERIFY(parentPanelFocusItem->hasFocus());
+ QCOMPARE(parentPanel->focusItem(), (QGraphicsItem *)parentPanelFocusItem);
+ QCOMPARE(parentPanelFocusItem->focusItem(), (QGraphicsItem *)parentPanelFocusItem);
+
+ QGraphicsRectItem *childPanel = new QGraphicsRectItem;
+ QGraphicsRectItem *childPanelFocusItem = new QGraphicsRectItem(childPanel);
+ childPanel->setFlag(QGraphicsItem::ItemIsPanel);
+ childPanelFocusItem->setFlag(QGraphicsItem::ItemIsFocusable);
+ childPanelFocusItem->setFocus();
+
+ QVERIFY(!childPanelFocusItem->hasFocus());
+ QCOMPARE(childPanel->focusItem(), (QGraphicsItem *)childPanelFocusItem);
+ QCOMPARE(childPanelFocusItem->focusItem(), (QGraphicsItem *)childPanelFocusItem);
+
+ childPanel->setParentItem(parentPanel);
+
+ QVERIFY(!parentPanel->isActive());
+ QVERIFY(!parentPanelFocusItem->hasFocus());
+ QCOMPARE(parentPanel->focusItem(), (QGraphicsItem *)parentPanelFocusItem);
+ QCOMPARE(parentPanelFocusItem->focusItem(), (QGraphicsItem *)parentPanelFocusItem);
+
+ QVERIFY(childPanel->isActive());
+ QVERIFY(childPanelFocusItem->hasFocus());
+ QCOMPARE(childPanel->focusItem(), (QGraphicsItem *)childPanelFocusItem);
+ QCOMPARE(childPanelFocusItem->focusItem(), (QGraphicsItem *)childPanelFocusItem);
+
+ childPanel->hide();
+
+ QVERIFY(parentPanel->isActive());
+ QVERIFY(parentPanelFocusItem->hasFocus());
+ QCOMPARE(parentPanel->focusItem(), (QGraphicsItem *)parentPanelFocusItem);
+ QCOMPARE(parentPanelFocusItem->focusItem(), (QGraphicsItem *)parentPanelFocusItem);
+}
+
void tst_QGraphicsItem::addPanelToActiveScene()
{
QGraphicsScene scene;
@@ -10675,5 +10725,31 @@ void tst_QGraphicsItem::itemDiesDuringDraggingOperation()
delete item;
QVERIFY(QGraphicsScenePrivate::get(&scene)->dragDropItem == 0);
}
+
+void tst_QGraphicsItem::QTBUG_12112_focusItem()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ QGraphicsRectItem *item1 = new QGraphicsRectItem(0, 0, 20, 20);
+ item1->setFlag(QGraphicsItem::ItemIsFocusable);
+ QGraphicsRectItem *item2 = new QGraphicsRectItem(20, 20, 20, 20);
+ item2->setFlag(QGraphicsItem::ItemIsFocusable);
+ item1->setFocus();
+ scene.addItem(item2);
+ scene.addItem(item1);
+
+ view.show();
+ QApplication::setActiveWindow(&view);
+ QTest::qWaitForWindowShown(&view);
+ QTRY_COMPARE(QApplication::activeWindow(), (QWidget *)&view);
+
+ QVERIFY(item1->focusItem());
+ QVERIFY(!item2->focusItem());
+
+ item2->setFocus();
+ QVERIFY(!item1->focusItem());
+ QVERIFY(item2->focusItem());
+}
+
QTEST_MAIN(tst_QGraphicsItem)
#include "tst_qgraphicsitem.moc"
diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
index c26e5d4..6107fa1 100644
--- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
+++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
@@ -102,6 +102,7 @@ private slots:
void layoutDirection();
void removeLayout();
void avoidRecursionInInsertItem();
+ void styleInfoLeak();
// Task specific tests
void task218400_insertStretchCrash();
@@ -1443,6 +1444,12 @@ void tst_QGraphicsLinearLayout::avoidRecursionInInsertItem()
QCOMPARE(layout->count(), 0);
}
+void tst_QGraphicsLinearLayout::styleInfoLeak()
+{
+ QGraphicsLinearLayout layout;
+ layout.spacing();
+}
+
void tst_QGraphicsLinearLayout::task218400_insertStretchCrash()
{
QGraphicsScene *scene = new QGraphicsScene;
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index ed8ff04..a771332 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -176,6 +176,7 @@ private slots:
void task243004_setStyleCrash();
void task250119_shortcutContext();
void QT_BUG_6544_tabFocusFirstUnsetWhenRemovingItems();
+ void QT_BUG_12056_tabFocusFirstUnsetWhenRemovingItems();
};
@@ -3089,6 +3090,25 @@ void tst_QGraphicsWidget::QT_BUG_6544_tabFocusFirstUnsetWhenRemovingItems()
//This should not crash
}
+void tst_QGraphicsWidget::QT_BUG_12056_tabFocusFirstUnsetWhenRemovingItems()
+{
+ QGraphicsScene scene;
+ QGraphicsWidget* item1 = new QGraphicsWidget;
+ QGraphicsWidget* item2 = new QGraphicsWidget;
+ QGraphicsWidget* item3 = new QGraphicsWidget;
+
+ scene.addItem(item1);
+ scene.addItem(item2);
+
+ scene.removeItem(item2);
+ scene.removeItem(item1);
+ delete item2;
+ delete item1;
+
+ scene.addItem(item3);
+
+ //This should not crash
+}
QTEST_MAIN(tst_QGraphicsWidget)
#include "tst_qgraphicswidget.moc"
diff --git a/tests/auto/qmimedata/qmimedata.pro b/tests/auto/qmimedata/qmimedata.pro
new file mode 100644
index 0000000..13fbe65
--- /dev/null
+++ b/tests/auto/qmimedata/qmimedata.pro
@@ -0,0 +1,4 @@
+load(qttest_p4)
+SOURCES += tst_qmimedata.cpp
+
+
diff --git a/tests/auto/qmimedata/tst_qmimedata.cpp b/tests/auto/qmimedata/tst_qmimedata.cpp
new file mode 100644
index 0000000..be7a654
--- /dev/null
+++ b/tests/auto/qmimedata/tst_qmimedata.cpp
@@ -0,0 +1,343 @@
+/****************************************************************************
+**
+** 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 test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+#include <QtTest/QtTest>
+
+#include <QMimeData>
+
+class tst_QMimeData : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QMimeData()
+ {
+ }
+
+private slots:
+ void clear() const;
+ void colorData() const;
+ void data() const;
+ void formats() const;
+ void hasColor() const;
+ void hasFormat() const;
+ void hasHtml() const;
+ void hasImage() const;
+ // hasText() covered by setText()
+ // hasUrls() covered by setUrls()
+ // html() covered by setHtml()
+ void imageData() const;
+ void removeFormat() const;
+ // setColorData() covered by hasColor()
+ // setData() covered in a few different tests
+ void setHtml() const;
+ // setImageData() covered in a few tests
+ void setText() const;
+ void setUrls() const;
+ // text() covered in setText()
+ // urls() covered by setUrls()
+};
+
+void tst_QMimeData::clear() const
+{
+ QMimeData mimeData;
+
+ // set, clear, verify empty
+ mimeData.setData("text/plain", "pirates");
+ QVERIFY(mimeData.hasText());
+ mimeData.clear();
+ QVERIFY(mimeData.hasText() == false);
+
+ // repopulate, verify not empty
+ mimeData.setData("text/plain", "pirates");
+ QVERIFY(mimeData.hasText());
+}
+
+void tst_QMimeData::colorData() const
+{
+ QMimeData mimeData;
+ QColor red = Qt::red;
+ QColor blue = Qt::blue;
+
+ // set, verify
+ mimeData.setColorData(red);
+ QVERIFY(mimeData.hasColor());
+ QCOMPARE(qvariant_cast<QColor>(mimeData.colorData()), red);
+
+ // change, verify
+ mimeData.setColorData(Qt::blue);
+ QVERIFY(mimeData.hasColor());
+ QCOMPARE(qvariant_cast<QColor>(mimeData.colorData()), blue);
+}
+
+void tst_QMimeData::data() const
+{
+ QMimeData mimeData;
+
+ // set text, verify
+ mimeData.setData("text/plain", "pirates");
+ QCOMPARE(mimeData.data("text/plain"), QByteArray("pirates"));
+ QVERIFY(mimeData.data("text/html").length() == 0);
+
+ // html time
+ mimeData.setData("text/html", "ninjas");
+ QCOMPARE(mimeData.data("text/html"), QByteArray("ninjas"));
+ QCOMPARE(mimeData.data("text/plain"), QByteArray("pirates")); // make sure text not damaged
+ QCOMPARE(mimeData.data("text/html"), mimeData.html().toLatin1());
+}
+
+void tst_QMimeData::formats() const
+{
+ QMimeData mimeData;
+
+ // set text, verify
+ mimeData.setData("text/plain", "pirates");
+ QCOMPARE(mimeData.formats(), QStringList() << "text/plain");
+
+ // set html, verify
+ mimeData.setData("text/html", "ninjas");
+ QCOMPARE(mimeData.formats(), QStringList() << "text/plain" << "text/html");
+
+ // clear, verify
+ mimeData.clear();
+ QCOMPARE(mimeData.formats(), QStringList());
+
+ // set an odd format, verify
+ mimeData.setData("foo/bar", "somevalue");
+ QCOMPARE(mimeData.formats(), QStringList() << "foo/bar");
+}
+
+void tst_QMimeData::hasColor() const
+{
+ QMimeData mimeData;
+
+ // initial state
+ QVERIFY(mimeData.hasColor() == false);
+
+ // set, verify
+ mimeData.setColorData(QColor(Qt::red));
+ QVERIFY(mimeData.hasColor());
+
+ // clear, verify
+ mimeData.clear();
+ QVERIFY(mimeData.hasColor() == false);
+
+ // set something else, verify
+ mimeData.setData("text/plain", "pirates");
+ QVERIFY(mimeData.hasColor() == false);
+}
+
+void tst_QMimeData::hasFormat() const
+{
+ QMimeData mimeData;
+
+ // initial state
+ QVERIFY(mimeData.hasFormat("text/plain") == false);
+
+ // add, verify
+ mimeData.setData("text/plain", "pirates");
+ QVERIFY(mimeData.hasFormat("text/plain"));
+ QVERIFY(mimeData.hasFormat("text/html") == false);
+
+ // clear, verify
+ mimeData.clear();
+ QVERIFY(mimeData.hasFormat("text/plain") == false);
+ QVERIFY(mimeData.hasFormat("text/html") == false);
+}
+
+void tst_QMimeData::hasHtml() const
+{
+ QMimeData mimeData;
+
+ // initial state
+ QVERIFY(mimeData.hasHtml() == false);
+
+ // add plain, verify false
+ mimeData.setData("text/plain", "pirates");
+ QVERIFY(mimeData.hasHtml() == false);
+
+ // add html, verify
+ mimeData.setData("text/html", "ninjas");
+ QVERIFY(mimeData.hasHtml());
+
+ // clear, verify
+ mimeData.clear();
+ QVERIFY(mimeData.hasHtml() == false);
+
+ // readd, verify
+ mimeData.setData("text/html", "ninjas");
+ QVERIFY(mimeData.hasHtml());
+}
+
+void tst_QMimeData::hasImage() const
+{
+ QMimeData mimeData;
+
+ // initial state
+ QVERIFY(mimeData.hasImage() == false);
+
+ // add text, verify false
+ mimeData.setData("text/plain", "pirates");
+ QVERIFY(mimeData.hasImage() == false);
+
+ // add image
+ mimeData.setImageData(QImage());
+ QVERIFY(mimeData.hasImage());
+
+ // clear, verify
+ mimeData.clear();
+ QVERIFY(mimeData.hasImage() == false);
+}
+
+void tst_QMimeData::imageData() const
+{
+ QMimeData mimeData;
+
+ // initial state
+ QCOMPARE(mimeData.imageData(), QVariant());
+
+ // set, test
+ mimeData.setImageData(QImage());
+ QVERIFY(mimeData.hasImage());
+ QCOMPARE(mimeData.imageData(), QVariant(QImage()));
+
+ // clear, verify
+ mimeData.clear();
+ QCOMPARE(mimeData.imageData(), QVariant());
+}
+
+void tst_QMimeData::removeFormat() const
+{
+ QMimeData mimeData;
+
+ // add, verify
+ mimeData.setData("text/plain", "pirates");
+ QVERIFY(mimeData.hasFormat("text/plain"));
+
+ // add another, verify
+ mimeData.setData("text/html", "ninjas");
+ QVERIFY(mimeData.hasFormat("text/html"));
+
+ // remove, verify
+ mimeData.removeFormat("text/plain");
+ QVERIFY(mimeData.hasFormat("text/plain") == false);
+ QVERIFY(mimeData.hasFormat("text/html"));
+
+ // remove, verify
+ mimeData.removeFormat("text/html");
+ QVERIFY(mimeData.hasFormat("text/plain") == false);
+ QVERIFY(mimeData.hasFormat("text/html") == false);
+}
+
+void tst_QMimeData::setHtml() const
+{
+ QMimeData mimeData;
+
+ // initial state
+ QVERIFY(mimeData.hasHtml() == false);
+
+ // add html, verify
+ mimeData.setHtml("ninjas");
+ QVERIFY(mimeData.hasHtml());
+ QCOMPARE(mimeData.html(), QLatin1String("ninjas"));
+
+ // reset html
+ mimeData.setHtml("pirates");
+ QVERIFY(mimeData.hasHtml());
+ QCOMPARE(mimeData.html(), QLatin1String("pirates"));
+}
+
+void tst_QMimeData::setText() const
+{
+ QMimeData mimeData;
+
+ // verify initial state
+ QCOMPARE(mimeData.text(), QLatin1String(""));
+ QVERIFY(mimeData.hasText() == false);
+
+ // set, verify
+ mimeData.setText("pirates");
+ QVERIFY(mimeData.hasText());
+ QCOMPARE(mimeData.text(), QLatin1String("pirates"));
+ QCOMPARE(mimeData.text().toLatin1(), mimeData.data("text/plain"));
+
+ // reset, verify
+ mimeData.setText("ninjas");
+ QVERIFY(mimeData.hasText());
+ QCOMPARE(mimeData.text(), QLatin1String("ninjas"));
+ QCOMPARE(mimeData.text().toLatin1(), mimeData.data("text/plain"));
+
+ // clear, verify
+ mimeData.clear();
+ QCOMPARE(mimeData.text(), QLatin1String(""));
+ QVERIFY(mimeData.hasText() == false);
+}
+
+void tst_QMimeData::setUrls() const
+{
+ QMimeData mimeData;
+ QList<QUrl> shortUrlList;
+ QList<QUrl> longUrlList;
+
+ // set up
+ shortUrlList += QUrl("http://qt.nokia.com");
+ longUrlList = shortUrlList;
+ longUrlList += QUrl("http://www.google.com");
+
+ // verify initial state
+ QVERIFY(mimeData.hasUrls() == false);
+
+ // set a few, verify
+ mimeData.setUrls(shortUrlList);
+ QCOMPARE(mimeData.urls(), shortUrlList);
+
+ // change them, verify
+ mimeData.setUrls(longUrlList);
+ QCOMPARE(mimeData.urls(), longUrlList);
+
+ // clear, verify
+ mimeData.clear();
+ QVERIFY(mimeData.hasUrls() == false);
+}
+
+
+QTEST_MAIN(tst_QMimeData)
+#include "tst_qmimedata.moc"
diff --git a/tests/auto/qscrollbar/tst_qscrollbar.cpp b/tests/auto/qscrollbar/tst_qscrollbar.cpp
index 735b2dd..16d5b42 100644
--- a/tests/auto/qscrollbar/tst_qscrollbar.cpp
+++ b/tests/auto/qscrollbar/tst_qscrollbar.cpp
@@ -130,7 +130,7 @@ void tst_QScrollBar::task_209492()
QMouseEvent mousePressEvent(QEvent::MouseButtonPress, pressPoint, globalPressPoint,
Qt::LeftButton, Qt::LeftButton, 0);
QApplication::sendEvent(verticalScrollBar, &mousePressEvent);
- QTest::qWait(50);
+ QTest::qWait(1);
QMouseEvent mouseReleaseEvent(QEvent::MouseButtonRelease, pressPoint, globalPressPoint,
Qt::LeftButton, Qt::LeftButton, 0);
QApplication::sendEvent(verticalScrollBar, &mouseReleaseEvent);
diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp
index 0cf638b..0c12974 100644
--- a/tests/auto/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp
@@ -55,6 +55,7 @@
#include <QAuthenticator>
#include "private/qhostinfo_p.h"
+#include "private/qsslsocket_openssl_p.h"
#include "../network-settings.h"
@@ -163,6 +164,7 @@ private slots:
void setDefaultCiphers();
void supportedCiphers();
void systemCaCertificates();
+ void wildcardCertificateNames();
void wildcard();
void setEmptyKey();
void spontaneousWrite();
@@ -1063,6 +1065,28 @@ void tst_QSslSocket::systemCaCertificates()
QCOMPARE(certs, QSslSocket::defaultCaCertificates());
}
+void tst_QSslSocket::wildcardCertificateNames()
+{
+ // Passing CN matches
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("www.example.com"), QString("www.example.com")), true );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("www.example.com")), true );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx*.example.com"), QString("xxxwww.example.com")), true );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("foo.example.com")), true );
+
+ // Failing CN matches
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("xxx.example.com"), QString("www.example.com")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www.example.com")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.*.com"), QString("www.example.com")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example.com"), QString("baa.foo.example.com")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("f*.example.com"), QString("baa.example.com")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.com"), QString("example.com")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*fail.com"), QString("example.com")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example.")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*.example."), QString("www.example")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString(""), QString("www")), false );
+ QCOMPARE( QSslSocketBackendPrivate::isMatchingHostname(QString("*"), QString("www")), false );
+}
+
void tst_QSslSocket::wildcard()
{
QSKIP("TODO: solve wildcard problem", SkipAll);
diff --git a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp
index 31cae40..e3b2ca5 100644
--- a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp
+++ b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp
@@ -275,7 +275,7 @@ void tst_QTcpSocket::initTestCase_data()
QTest::newRow("WithHttpProxy") << true << int(HttpProxy) << false;
QTest::newRow("WithHttpProxyBasicAuth") << true << int(HttpProxy | AuthBasic) << false;
-// QTest::newRow("WithHttpProxyNtlmAuth") << true << int(HttpProxy | AuthNtlm) << false;
+ QTest::newRow("WithHttpProxyNtlmAuth") << true << int(HttpProxy | AuthNtlm) << false;
#ifndef QT_NO_OPENSSL
QTest::newRow("WithoutProxy SSL") << false << 0 << true;
@@ -284,7 +284,7 @@ void tst_QTcpSocket::initTestCase_data()
QTest::newRow("WithHttpProxy SSL") << true << int(HttpProxy) << true;
QTest::newRow("WithHttpProxyBasicAuth SSL") << true << int(HttpProxy | AuthBasic) << true;
-// QTest::newRow("WithHttpProxyNtlmAuth SSL") << true << int(HttpProxy | AuthNtlm) << true;
+ QTest::newRow("WithHttpProxyNtlmAuth SSL") << true << int(HttpProxy | AuthNtlm) << true;
#endif
}
diff --git a/tests/auto/qtexttable/tst_qtexttable.cpp b/tests/auto/qtexttable/tst_qtexttable.cpp
index 2e6007e..9dcc369 100644
--- a/tests/auto/qtexttable/tst_qtexttable.cpp
+++ b/tests/auto/qtexttable/tst_qtexttable.cpp
@@ -48,9 +48,14 @@
#include <qtexttable.h>
#include <qdebug.h>
#include <qtextcursor.h>
+#include <qtextdocument.h>
+#include <qtextedit.h>
//TESTED_FILES=
+typedef QList<int> IntList;
+Q_DECLARE_METATYPE(IntList)
+
QT_FORWARD_DECLARE_CLASS(QTextDocument)
class tst_QTextTable : public QObject
@@ -78,6 +83,7 @@ private slots:
void insertRows();
void deleteInTable();
void mergeCells();
+ void mergeAndInsert();
void splitCells();
void blocksForTableShouldHaveEmptyFormat();
void removeTableByRemoveRows();
@@ -93,6 +99,8 @@ private slots:
void removeColumns3();
void removeColumns4();
void removeColumns5();
+ void QTBUG11282_insertBeforeMergedEnding_data();
+ void QTBUG11282_insertBeforeMergedEnding();
private:
QTextTable *create2x2Table();
@@ -586,6 +594,16 @@ void tst_QTextTable::mergeCells()
QVERIFY(table->cellAt(0, 1) == table->cellAt(1, 1));
}
+void tst_QTextTable::mergeAndInsert()
+{
+ QTextTable *table = cursor.insertTable(4,3);
+ table->mergeCells(0,1,3,2);
+ table->mergeCells(3,0,1,3);
+ //Don't crash !
+ table->insertColumns(1,2);
+ QCOMPARE(table->columns(), 5);
+}
+
void tst_QTextTable::splitCells()
{
QTextTable *table = create4x4Table();
@@ -931,5 +949,42 @@ void tst_QTextTable::removeColumns5()
QCOMPARE(table->cellAt(3, 2).firstPosition(), 11);
}
+void tst_QTextTable::QTBUG11282_insertBeforeMergedEnding_data()
+{
+ QTest::addColumn<int>("rows");
+ QTest::addColumn<int>("columns");
+ QTest::addColumn<QList<int> >("merge");
+ QTest::addColumn<QList<int> >("insert");
+
+ QTest::newRow("2x3, merge two, insert one") << 2 << 3 << (QList<int>() << 1 << 2 << 2)
+ << (QList<int>() << 1 << 1) ;
+ QTest::newRow("3x4, merge three, insert one") << 3 << 4 << (QList<int>() << 1 << 3 << 3)
+ << (QList<int>() << 1 << 1) ;
+ QTest::newRow("4x3, merge two, insert two") << 4 << 3 << (QList<int>() << 1 << 4 << 2)
+ << (QList<int>() << 1 << 2) ;
+ QTest::newRow("4x4, merge middle two, insert one") << 4 << 4 << (QList<int>() << 1 << 4 << 2)
+ << (QList<int>() << 1 << 1) ;
+}
+
+void tst_QTextTable::QTBUG11282_insertBeforeMergedEnding()
+{
+ QFETCH(int, rows);
+ QFETCH(int, columns);
+ QFETCH(QList<int>, merge);
+ QFETCH(QList<int>, insert);
+ QTextTable *table = cursor.insertTable(rows, columns);
+ QTextEdit *textEdit = new QTextEdit;
+ textEdit->setDocument(doc);
+ textEdit->show();
+ QTest::qWaitForWindowShown(textEdit);
+ table->mergeCells(0,merge.at(0), merge.at(1), merge.at(2));
+ //Don't crash !
+ table->insertColumns(insert.at(0), insert.at(1));
+ //Check that the final size is what we expected
+ QCOMPARE(table->rows(), rows);
+ QCOMPARE(table->columns(), columns + insert.at(1));
+ delete textEdit;
+}
+
QTEST_MAIN(tst_QTextTable)
#include "tst_qtexttable.moc"
diff --git a/tests/auto/quuid/quuid.pro b/tests/auto/quuid/quuid.pro
index f7608fa..25e2456 100644
--- a/tests/auto/quuid/quuid.pro
+++ b/tests/auto/quuid/quuid.pro
@@ -1,3 +1,6 @@
-load(qttest_p4)
-QT = core
-SOURCES += tst_quuid.cpp
+TEMPLATE = subdirs
+
+SUBDIRS = testProcessUniqueness
+
+SUBDIRS += test
+
diff --git a/tests/auto/quuid/test/test.pro b/tests/auto/quuid/test/test.pro
new file mode 100644
index 0000000..123aa50
--- /dev/null
+++ b/tests/auto/quuid/test/test.pro
@@ -0,0 +1,29 @@
+load(qttest_p4)
+
+QT = core
+SOURCES += ../tst_quuid.cpp
+TARGET = tst_quuid
+
+CONFIG(debug_and_release_target) {
+ CONFIG(debug, debug|release) {
+ DESTDIR = ../debug
+ } else {
+ DESTDIR = ../release
+ }
+} else {
+ DESTDIR = ..
+}
+
+wince* {
+ addFile_processUniqueness.sources = $$OUT_PWD/../testProcessUniqueness/testProcessUniqueness.exe
+ addFile_processUniqueness.path = testProcessUniqueness
+
+ DEPLOYMENT += addFile_processUniqueness
+}
+
+symbian {
+ binDep.sources = testProcessUniqueness.exe
+ binDep.path = \\sys\\bin
+
+ DEPLOYMENT += binDep
+}
diff --git a/tests/auto/quuid/testProcessUniqueness/main.cpp b/tests/auto/quuid/testProcessUniqueness/main.cpp
new file mode 100644
index 0000000..4d33c84
--- /dev/null
+++ b/tests/auto/quuid/testProcessUniqueness/main.cpp
@@ -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 test suite 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 <stdio.h>
+#include <QUuid>
+
+// This is a testcase for QTBUG-11213
+int main(int argc, char **argv)
+{
+ Q_UNUSED(argc)
+ Q_UNUSED(argv)
+
+ // First, break QUuid.
+ qrand();
+
+ // Now print a few uuids.
+ printf("%s", qPrintable(QUuid::createUuid().toString()));
+ printf("%s", qPrintable(QUuid::createUuid().toString()));
+ printf("%s", qPrintable(QUuid::createUuid().toString()));
+
+ // Done
+ return 0;
+}
+
diff --git a/tests/auto/quuid/testProcessUniqueness/testProcessUniqueness.pro b/tests/auto/quuid/testProcessUniqueness/testProcessUniqueness.pro
new file mode 100644
index 0000000..88df1a2
--- /dev/null
+++ b/tests/auto/quuid/testProcessUniqueness/testProcessUniqueness.pro
@@ -0,0 +1,8 @@
+SOURCES = main.cpp
+CONFIG += console
+
+DESTDIR = ./
+
+# no install rule for application used by test
+INSTALLS =
+
diff --git a/tests/auto/quuid/tst_quuid.cpp b/tests/auto/quuid/tst_quuid.cpp
index 47f356a..409d8cf 100644
--- a/tests/auto/quuid/tst_quuid.cpp
+++ b/tests/auto/quuid/tst_quuid.cpp
@@ -73,6 +73,7 @@ private slots:
void versions();
void threadUniqueness();
+ void processUniqueness();
public:
// Variables
@@ -196,5 +197,33 @@ void tst_QUuid::threadUniqueness()
qDeleteAll(threads);
}
+void tst_QUuid::processUniqueness()
+{
+ QProcess process;
+ QString processOneOutput;
+ QString processTwoOutput;
+
+ // Start it once
+#ifdef Q_OS_MAC
+ process.start("testProcessUniqueness/testProcessUniqueness.app");
+#else
+ process.start("testProcessUniqueness/testProcessUniqueness");
+#endif
+ QVERIFY(process.waitForFinished());
+ processOneOutput = process.readAllStandardOutput();
+
+ // Start it twice
+#ifdef Q_OS_MAC
+ process.start("testProcessUniqueness/testProcessUniqueness.app");
+#else
+ process.start("testProcessUniqueness/testProcessUniqueness");
+#endif
+ QVERIFY(process.waitForFinished());
+ processTwoOutput = process.readAllStandardOutput();
+
+ // They should be *different*!
+ QVERIFY(processOneOutput != processTwoOutput);
+}
+
QTEST_MAIN(tst_QUuid)
#include "tst_quuid.moc"
diff --git a/tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp b/tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp
index 8e9de4a..27e5025 100644
--- a/tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp
+++ b/tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp
@@ -40,9 +40,12 @@
****************************************************************************/
#include <qtest.h>
-#include <QPixmap>
#include <QBitmap>
+#include <QDir>
+#include <QImage>
+#include <QImageReader>
#include <QPainter>
+#include <QPixmap>
#include <private/qpixmap_raster_p.h>
class tst_QPixmap : public QObject
@@ -62,6 +65,9 @@ private slots:
void transformed();
void mask_data();
void mask();
+
+ void fromImageReader_data();
+ void fromImageReader();
};
Q_DECLARE_METATYPE(QImage::Format)
@@ -248,6 +254,62 @@ void tst_QPixmap::mask()
}
}
+void tst_QPixmap::fromImageReader_data()
+{
+ const QString tempDir = QDir::tempPath();
+ QTest::addColumn<QString>("filename");
+
+ QImage image(2000, 2000, QImage::Format_ARGB32);
+ image.fill(0);
+ {
+ // Generate an image with opaque and transparent pixels
+ // with an interesting distribution.
+ QPainter painter(&image);
+
+ QRadialGradient radialGrad(QPointF(1000, 1000), 1000);
+ radialGrad.setColorAt(0, QColor(255, 0, 0, 255));
+ radialGrad.setColorAt(0.5, QColor(0, 255, 0, 255));
+ radialGrad.setColorAt(0.9, QColor(0, 0, 255, 100));
+ radialGrad.setColorAt(1, QColor(0, 0, 0, 0));
+
+ painter.fillRect(image.rect(), radialGrad);
+ }
+ image.save("test.png");
+
+ // RGB32
+ const QString rgb32Path = tempDir + QString::fromLatin1("/rgb32.jpg");
+ image.save(rgb32Path);
+ QTest::newRow("gradient RGB32") << rgb32Path;
+
+ // ARGB32
+ const QString argb32Path = tempDir + QString::fromLatin1("/argb32.png");
+ image.save(argb32Path);
+ QTest::newRow("gradient ARGB32") << argb32Path;
+
+ // Indexed 8
+ const QString indexed8Path = tempDir + QString::fromLatin1("/indexed8.gif");
+ image.save(indexed8Path);
+ QTest::newRow("gradient indexed8") << indexed8Path;
+
+}
+
+void tst_QPixmap::fromImageReader()
+{
+ QFETCH(QString, filename);
+ // warmup
+ {
+ QImageReader imageReader(filename);
+ QPixmap::fromImageReader(&imageReader);
+ }
+
+ QBENCHMARK {
+ QImageReader imageReader(filename);
+ QPixmap::fromImageReader(&imageReader);
+ }
+ QFile::remove(filename);
+}
+
+
QTEST_MAIN(tst_QPixmap)
#include "tst_qpixmap.moc"
diff --git a/tests/benchmarks/gui/text/qtext/main.cpp b/tests/benchmarks/gui/text/qtext/main.cpp
index eaa23e9..63daae0 100644
--- a/tests/benchmarks/gui/text/qtext/main.cpp
+++ b/tests/benchmarks/gui/text/qtext/main.cpp
@@ -84,9 +84,11 @@ private slots:
void newLineReplacement();
void formatManipulation();
+ void fontResolution();
void layout_data();
void layout();
+ void formattedLayout();
void paintLayoutToPixmap();
void paintLayoutToPixmap_painterFill();
@@ -306,6 +308,18 @@ void tst_QText::formatManipulation()
}
}
+void tst_QText::fontResolution()
+{
+ QFont font;
+ QFont font2;
+ font.setFamily("DejaVu");
+ font2.setBold(true);
+
+ QBENCHMARK {
+ QFont res = font.resolve(font2);
+ }
+}
+
void tst_QText::layout_data()
{
QTest::addColumn<bool>("wrap");
@@ -339,6 +353,33 @@ void tst_QText::layout()
}
}*/
+void tst_QText::formattedLayout()
+{
+ //set up formatting
+ QList<QTextLayout::FormatRange> ranges;
+ {
+ QTextCharFormat format;
+ format.setForeground(QColor("steelblue"));
+
+ QTextLayout::FormatRange formatRange;
+ formatRange.format = format;
+ formatRange.start = 0;
+ formatRange.length = 50;
+
+ ranges.append(formatRange);
+ }
+
+ QTextLayout layout(m_shortLorem);
+ layout.setAdditionalFormats(ranges);
+ setupTextLayout(&layout);
+
+ QBENCHMARK {
+ QTextLayout layout(m_shortLorem);
+ layout.setAdditionalFormats(ranges);
+ setupTextLayout(&layout);
+ }
+}
+
void tst_QText::paintLayoutToPixmap()
{
QTextLayout layout(m_shortLorem);
diff --git a/tools/assistant/tools/assistant/assistant.pro b/tools/assistant/tools/assistant/assistant.pro
index eb8cc51..d9aff7a 100644
--- a/tools/assistant/tools/assistant/assistant.pro
+++ b/tools/assistant/tools/assistant/assistant.pro
@@ -1,4 +1,4 @@
-include($$QT_SOURCE_TREE/tools/shared/fontpanel/fontpanel.pri)
+include(../../../shared/fontpanel/fontpanel.pri)
TEMPLATE = app
LANGUAGE = C++
TARGET = assistant
diff --git a/tools/assistant/translations/qt_help.pro b/tools/assistant/translations/qt_help.pro
deleted file mode 100644
index 6f66876..0000000
--- a/tools/assistant/translations/qt_help.pro
+++ /dev/null
@@ -1,53 +0,0 @@
-# Include those manually as they do not contain any directory specification
-
-SOURCES += ../lib/qhelpcollectionhandler.cpp \
- ../lib/qhelpcontentwidget.cpp \
- ../lib/qhelpdatainterface.cpp \
- ../lib/qhelpdbreader.cpp \
- ../lib/qhelpengine.cpp \
- ../lib/qhelpenginecore.cpp \
- ../lib/qhelpgenerator.cpp \
- ../lib/qhelpindexwidget.cpp \
- ../lib/qhelpprojectdata.cpp \
- ../lib/qhelpsearchengine.cpp \
- ../lib/qhelpsearchindexreader_clucene.cpp \
- ../lib/qhelpsearchindexreader_default.cpp \
- ../lib/qhelpsearchindexwriter_clucene.cpp \
- ../lib/qhelpsearchindexwriter_default.cpp \
- ../lib/qhelpsearchindex_default.cpp \
- ../lib/qhelpsearchquerywidget.cpp \
- ../lib/qhelpsearchresultwidget.cpp
-
-HEADERS += ../lib/qhelpcollectionhandler_p.h \
- ../lib/qhelpcontentwidget.h \
- ../lib/qhelpdatainterface_p.h \
- ../lib/qhelpdbreader_p.h \
- ../lib/qhelpengine.h \
- ../lib/qhelpenginecore.h \
- ../lib/qhelpengine_p.h \
- ../lib/qhelpgenerator_p.h \
- ../lib/qhelpindexwidget.h \
- ../lib/qhelpprojectdata_p.h \
- ../lib/qhelpsearchengine.h \
- ../lib/qhelpsearchindexreader_clucene_p.h \
- ../lib/qhelpsearchindexreader_default_p.h \
- ../lib/qhelpsearchindexwriter_clucene_p.h \
- ../lib/qhelpsearchindexwriter_default_p.h \
- ../lib/qhelpsearchindex_default_p.h \
- ../lib/qhelpsearchquerywidget.h \
- ../lib/qhelpsearchresultwidget.h \
- ../lib/qhelp_global.h
-
-
-TR_DIR = $$PWD/../../../translations
-TRANSLATIONS = \
- $$TR_DIR/qt_help_cs.ts \
- $$TR_DIR/qt_help_da.ts \
- $$TR_DIR/qt_help_de.ts \
- $$TR_DIR/qt_help_hu.ts \
- $$TR_DIR/qt_help_ja.ts \
- $$TR_DIR/qt_help_pl.ts \
- $$TR_DIR/qt_help_ru.ts \
- $$TR_DIR/qt_help_zh_CN.ts \
- $$TR_DIR/qt_help_zh_TW.ts \
- $$TR_DIR/qt_help_fr.ts
diff --git a/tools/assistant/translations/translations.pro b/tools/assistant/translations/translations.pro
deleted file mode 100644
index c692262..0000000
--- a/tools/assistant/translations/translations.pro
+++ /dev/null
@@ -1,54 +0,0 @@
-# Include those manually as they do not contain any directory specification
-
-FORMS += ../tools/assistant/filternamedialog.ui \
- ../tools/assistant/installdialog.ui \
- ../tools/assistant/preferencesdialog.ui \
- ../tools/assistant/topicchooser.ui \
- ../tools/assistant/bookmarkdialog.ui
-
-SOURCES += ../tools/assistant/aboutdialog.cpp \
- ../tools/assistant/bookmarkmanager.cpp \
- ../tools/assistant/centralwidget.cpp \
- ../tools/assistant/cmdlineparser.cpp \
- ../tools/assistant/contentwindow.cpp \
- ../tools/assistant/filternamedialog.cpp \
- ../tools/assistant/helpviewer.cpp \
- ../tools/assistant/indexwindow.cpp \
- ../tools/assistant/installdialog.cpp \
- ../tools/assistant/main.cpp \
- ../tools/assistant/mainwindow.cpp \
- ../tools/assistant/preferencesdialog.cpp \
- ../tools/assistant/remotecontrol.cpp \
- ../tools/assistant/searchwidget.cpp \
- ../tools/assistant/topicchooser.cpp \
-
-SOURCES += ../../shared/fontpanel/fontpanel.cpp
-
-HEADERS += ../tools/assistant/aboutdialog.h \
- ../tools/assistant/bookmarkmanager.h \
- ../tools/assistant/centralwidget.h \
- ../tools/assistant/cmdlineparser.h \
- ../tools/assistant/contentwindow.h \
- ../tools/assistant/filternamedialog.h \
- ../tools/assistant/helpviewer.h \
- ../tools/assistant/indexwindow.h \
- ../tools/assistant/installdialog.h \
- ../tools/assistant/mainwindow.h \
- ../tools/assistant/preferencesdialog.h \
- ../tools/assistant/remotecontrol.h \
- ../tools/assistant/remotecontrol_win.h \
- ../tools/assistant/searchwidget.h \
- ../tools/assistant/topicchooser.h \
-
-TR_DIR = $$PWD/../../../translations
-TRANSLATIONS = \
- $$TR_DIR/assistant_cs.ts \
- $$TR_DIR/assistant_da.ts \
- $$TR_DIR/assistant_de.ts \
- $$TR_DIR/assistant_fr.ts \
- $$TR_DIR/assistant_hu.ts \
- $$TR_DIR/assistant_ja.ts \
- $$TR_DIR/assistant_pl.ts \
- $$TR_DIR/assistant_ru.ts \
- $$TR_DIR/assistant_zh_CN.ts \
- $$TR_DIR/assistant_zh_TW.ts
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 952d4e0..7f2d53b 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2439,7 +2439,9 @@ void Configure::generateOutputVars()
qmakeFormatPlugins += "gif";
if (dictionary[ "TIFF" ] == "no")
- qtConfig += "no-tiff";
+ qtConfig += "no-tiff";
+ else if (dictionary[ "TIFF" ] == "yes")
+ qtConfig += "tiff";
else if (dictionary[ "TIFF" ] == "plugin")
qmakeFormatPlugins += "tiff";
if (dictionary[ "LIBTIFF" ] == "system")
@@ -2447,6 +2449,8 @@ void Configure::generateOutputVars()
if (dictionary[ "JPEG" ] == "no")
qtConfig += "no-jpeg";
+ else if (dictionary[ "JPEG" ] == "yes")
+ qtConfig += "jpeg";
else if (dictionary[ "JPEG" ] == "plugin")
qmakeFormatPlugins += "jpeg";
if (dictionary[ "LIBJPEG" ] == "system")
@@ -3160,16 +3164,6 @@ void Configure::generateConfigfiles()
QFile::remove(outName);
tmpFile.copy(outName);
tmpFile.close();
-
- if (!QFile::exists(buildPath + "/include/QtCore/qconfig.h")) {
- if (!writeToFile("#include \"../../src/corelib/global/qconfig.h\"\n",
- buildPath + "/include/QtCore/qconfig.h")
- || !writeToFile("#include \"../../src/corelib/global/qconfig.h\"\n",
- buildPath + "/include/Qt/qconfig.h")) {
- dictionary["DONE"] = "error";
- return;
- }
- }
}
// Copy configured mkspec to default directory, but remove the old one first, if there is any
diff --git a/tools/designer/src/components/lib/lib.pro b/tools/designer/src/components/lib/lib.pro
index 8d0e692..0ada845 100644
--- a/tools/designer/src/components/lib/lib.pro
+++ b/tools/designer/src/components/lib/lib.pro
@@ -44,11 +44,11 @@ SOURCES += qdesigner_components.cpp
}
INCLUDEPATH += . .. \
- $$QT_SOURCE_TREE/tools/designer/src/lib/components \
- $$QT_SOURCE_TREE/tools/designer/src/lib/sdk \
- $$QT_SOURCE_TREE/tools/designer/src/lib/extension \
- $$QT_SOURCE_TREE/tools/designer/src/lib/uilib \
- $$QT_SOURCE_TREE/tools/designer/src/lib/shared
+ $$PWD/../../lib/components \
+ $$PWD/../../lib/sdk \
+ $$PWD/../../lib/extension \
+ $$PWD/../../lib/uilib \
+ $$PWD/../../lib/shared
include(../propertyeditor/propertyeditor.pri)
include(../objectinspector/objectinspector.pri)
diff --git a/tools/designer/src/components/objectinspector/objectinspector.pri b/tools/designer/src/components/objectinspector/objectinspector.pri
index 733c4b3..565f78b 100644
--- a/tools/designer/src/components/objectinspector/objectinspector.pri
+++ b/tools/designer/src/components/objectinspector/objectinspector.pri
@@ -3,7 +3,7 @@
contains(CONFIG, static) {
INCLUDEPATH *= $$QT_SOURCE_TREE/tools/shared/findwidget
} else {
- include($$QT_SOURCE_TREE/tools/shared/findwidget/findwidget.pri)
+ include(../../../../shared/findwidget/findwidget.pri)
}
INCLUDEPATH += $$PWD
diff --git a/tools/designer/src/components/propertyeditor/propertyeditor.pri b/tools/designer/src/components/propertyeditor/propertyeditor.pri
index a8ed37e..7d2e7cb 100644
--- a/tools/designer/src/components/propertyeditor/propertyeditor.pri
+++ b/tools/designer/src/components/propertyeditor/propertyeditor.pri
@@ -10,8 +10,8 @@ contains(CONFIG, static) {
INCLUDEPATH *= $$QT_SOURCE_TREE/tools/shared/qtpropertybrowser
INCLUDEPATH *= $$QT_SOURCE_TREE/tools/shared/qtgradienteditor
} else {
- include($$QT_SOURCE_TREE/tools/shared/qtpropertybrowser/qtpropertybrowser.pri)
- include($$QT_SOURCE_TREE/tools/shared/qtgradienteditor/qtcolorbutton.pri)
+ include(../../../../shared/qtpropertybrowser/qtpropertybrowser.pri)
+ include(../../../../shared/qtgradienteditor/qtcolorbutton.pri)
}
FORMS += $$PWD/paletteeditor.ui \
diff --git a/tools/designer/src/designer/designer.pro b/tools/designer/src/designer/designer.pro
index 8590c7b..8564e96 100644
--- a/tools/designer/src/designer/designer.pro
+++ b/tools/designer/src/designer/designer.pro
@@ -25,8 +25,8 @@ contains(CONFIG, static) {
TARGET = designer
-include($$QT_SOURCE_TREE/tools/shared/fontpanel/fontpanel.pri)
-include($$QT_SOURCE_TREE/tools/shared/qttoolbardialog/qttoolbardialog.pri)
+include(../../../shared/fontpanel/fontpanel.pri)
+include(../../../shared/qttoolbardialog/qttoolbardialog.pri)
HEADERS += \
qdesigner.h \
@@ -88,4 +88,3 @@ INSTALLS += target
include(../sharedcomponents.pri)
unix:!mac:LIBS += -lm
-TRANSLATIONS = designer_de.ts
diff --git a/tools/designer/src/lib/shared/shared.pri b/tools/designer/src/lib/shared/shared.pri
index 570b208..8286360 100644
--- a/tools/designer/src/lib/shared/shared.pri
+++ b/tools/designer/src/lib/shared/shared.pri
@@ -2,11 +2,11 @@
INCLUDEPATH += $$PWD
contains(QT_CONFIG, script): QT += script
-include($$QT_SOURCE_TREE/tools/shared/qtpropertybrowser/qtpropertybrowser.pri)
-include($$QT_SOURCE_TREE/tools/shared/deviceskin/deviceskin.pri)
-include($$QT_SOURCE_TREE/src/tools/rcc/rcc.pri)
-include($$QT_SOURCE_TREE/tools/shared/findwidget/findwidget.pri)
-include($$QT_SOURCE_TREE/tools/shared/qtgradienteditor/qtgradienteditor.pri)
+include(../../../../shared/qtpropertybrowser/qtpropertybrowser.pri)
+include(../../../../shared/deviceskin/deviceskin.pri)
+include(../../../../../src/tools/rcc/rcc.pri)
+include(../../../../shared/findwidget/findwidget.pri)
+include(../../../../shared/qtgradienteditor/qtgradienteditor.pri)
# Input
FORMS += $$PWD/addlinkdialog.ui \
diff --git a/tools/designer/translations/translations.pro b/tools/designer/translations/translations.pro
deleted file mode 100644
index 103c1fe..0000000
--- a/tools/designer/translations/translations.pro
+++ /dev/null
@@ -1,141 +0,0 @@
-include(../src/components/buddyeditor/buddyeditor.pri)
-include(../src/components/component.pri)
-include(../src/components/formeditor/formeditor.pri)
-include(../src/components/objectinspector/objectinspector.pri)
-include(../src/components/propertyeditor/propertyeditor.pri)
-include(../src/components/signalsloteditor/signalsloteditor.pri)
-include(../src/components/tabordereditor/tabordereditor.pri)
-include(../src/components/taskmenu/taskmenu.pri)
-include(../src/components/widgetbox/widgetbox.pri)
-include(../src/lib/extension/extension.pri)
-include(../src/lib/sdk/sdk.pri)
-include(../src/lib/shared/shared.pri)
-include(../src/lib/uilib/uilib.pri)
-include(../../shared/qttoolbardialog/qttoolbardialog.pri)
-include(../../shared/qtpropertybrowser/qtpropertybrowser.pri)
-include(../../shared/qtgradienteditor/qtgradienteditor.pri)
-
-# Include ActiveQt plugin
-SOURCES += ../src/plugins/activeqt/qaxwidgetextrainfo.cpp \
- ../src/plugins/activeqt/qaxwidgetplugin.cpp \
- ../src/plugins/activeqt/qaxwidgetpropertysheet.cpp \
- ../src/plugins/activeqt/qaxwidgettaskmenu.cpp \
- ../src/plugins/activeqt/qdesigneraxwidget.cpp
-
-HEADERS += ../src/plugins/activeqt/qaxwidgetextrainfo.h \
- ../src/plugins/activeqt/qaxwidgetplugin.h \
- ../src/plugins/activeqt/qaxwidgetpropertysheet.h \
- ../src/plugins/activeqt/qaxwidgettaskmenu.h \
- ../src/plugins/activeqt/qdesigneraxwidget.h \
- ../../../src/activeqt/shared/qaxtypes.h
-
-
-# Include Qt3Support plugin
-
-SOURCES += ../src/plugins/widgets/qt3supportwidgets.cpp
-HEADERS += ../src/plugins/widgets/q3iconview/q3iconview_extrainfo.h \
- ../src/plugins/widgets/q3iconview/q3iconview_plugin.h \
- ../src/plugins/widgets/q3listview/q3listview_extrainfo.h \
- ../src/plugins/widgets/q3listview/q3listview_plugin.h \
- ../src/plugins/widgets/q3mainwindow/q3mainwindow_container.h \
- ../src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.h \
- ../src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.h \
- ../src/plugins/widgets/q3toolbar/q3toolbar_plugin.h \
- ../src/plugins/widgets/q3widgetstack/q3widgetstack_container.h \
- ../src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.h \
- ../src/plugins/widgets/q3widgetstack/qdesigner_q3widgetstack_p.h \
- ../src/plugins/widgets/q3wizard/q3wizard_container.h \
- ../src/plugins/widgets/q3wizard/q3wizard_plugin.h \
- ../src/plugins/widgets/q3listbox/q3listbox_extrainfo.h \
- ../src/plugins/widgets/q3listbox/q3listbox_plugin.h \
- ../src/plugins/widgets/q3table/q3table_extrainfo.h \
- ../src/plugins/widgets/q3table/q3table_plugin.h \
- ../src/plugins/widgets/q3textedit/q3textedit_extrainfo.h \
- ../src/plugins/widgets/q3textedit/q3textedit_plugin.h \
- ../src/plugins/widgets/q3widgets/q3widget_plugins.h
-
-SOURCES += ../src/plugins/widgets/q3iconview/q3iconview_extrainfo.cpp \
- ../src/plugins/widgets/q3iconview/q3iconview_plugin.cpp \
- ../src/plugins/widgets/q3listview/q3listview_extrainfo.cpp \
- ../src/plugins/widgets/q3listview/q3listview_plugin.cpp \
- ../src/plugins/widgets/q3mainwindow/q3mainwindow_container.cpp \
- ../src/plugins/widgets/q3mainwindow/q3mainwindow_plugin.cpp \
- ../src/plugins/widgets/q3toolbar/q3toolbar_extrainfo.cpp \
- ../src/plugins/widgets/q3toolbar/q3toolbar_plugin.cpp \
- ../src/plugins/widgets/q3widgetstack/q3widgetstack_container.cpp \
- ../src/plugins/widgets/q3widgetstack/q3widgetstack_plugin.cpp \
- ../src/plugins/widgets/q3widgetstack/qdesigner_q3widgetstack.cpp \
- ../src/plugins/widgets/q3wizard/q3wizard_container.cpp \
- ../src/plugins/widgets/q3wizard/q3wizard_plugin.cpp \
- ../src/plugins/widgets/q3listbox/q3listbox_extrainfo.cpp \
- ../src/plugins/widgets/q3listbox/q3listbox_plugin.cpp \
- ../src/plugins/widgets/q3table/q3table_extrainfo.cpp \
- ../src/plugins/widgets/q3table/q3table_plugin.cpp \
- ../src/plugins/widgets/q3textedit/q3textedit_extrainfo.cpp \
- ../src/plugins/widgets/q3textedit/q3textedit_plugin.cpp \
- ../src/plugins/widgets/q3widgets/q3widget_plugins.cpp
-
-# Include those manually as they do not contain any directory specification
-APP_DIR=../src/designer
-SOURCES += $$APP_DIR/appfontdialog.cpp \
- $$APP_DIR/assistantclient.cpp \
- $$APP_DIR/main.cpp \
- $$APP_DIR/mainwindow.cpp \
- $$APP_DIR/newform.cpp \
- $$APP_DIR/preferencesdialog.cpp \
- $$APP_DIR/qdesigner_actions.cpp \
- $$APP_DIR/qdesigner_appearanceoptions.cpp \
- $$APP_DIR/qdesigner.cpp \
- $$APP_DIR/qdesigner_formwindow.cpp \
- $$APP_DIR/qdesigner_server.cpp \
- $$APP_DIR/qdesigner_settings.cpp \
- $$APP_DIR/qdesigner_toolwindow.cpp \
- $$APP_DIR/qdesigner_workbench.cpp \
- $$APP_DIR/saveformastemplate.cpp \
- $$APP_DIR/versiondialog.cpp
-
-HEADERS+= $$APP_DIR/appfontdialog.h \
- $$APP_DIR/assistantclient.h \
- $$APP_DIR/designer_enums.h \
- $$APP_DIR/mainwindow.h \
- $$APP_DIR/newform.h \
- $$APP_DIR/preferencesdialog.h \
- $$APP_DIR/qdesigner_actions.h \
- $$APP_DIR/qdesigner_appearanceoptions.h \
- $$APP_DIR/qdesigner_formwindow.h \
- $$APP_DIR/qdesigner.h \
- $$APP_DIR/qdesigner_pch.h \
- $$APP_DIR/qdesigner_server.h \
- $$APP_DIR/qdesigner_settings.h \
- $$APP_DIR/qdesigner_toolwindow.h \
- $$APP_DIR/qdesigner_workbench.h \
- $$APP_DIR/saveformastemplate.h \
- $$APP_DIR/versiondialog.h
-
-FORMS += $$APP_DIR/preferencesdialog.ui \
- $$APP_DIR/qdesigner_appearanceoptions.ui \
- $$APP_DIR/saveformastemplate.ui
-
-# Shared solutions
-SOURCES += ../../shared/fontpanel/fontpanel.cpp \
- ../../shared/deviceskin/deviceskin.cpp \
- ../../shared/findwidget/abstractfindwidget.cpp \
- ../../shared/findwidget/itemviewfindwidget.cpp \
- ../../shared/findwidget/texteditfindwidget.cpp \
-
-HEADERS += ../../shared/findwidget/abstractfindwidget.h \
- ../../shared/findwidget/itemviewfindwidget.h \
- ../../shared/findwidget/texteditfindwidget.h
-
-TR_DIR = $$PWD/../../../translations
-TRANSLATIONS = \
- $$TR_DIR/designer_cs.ts \
- $$TR_DIR/designer_de.ts \
- $$TR_DIR/designer_fr.ts \
- $$TR_DIR/designer_hu.ts \
- $$TR_DIR/designer_ja.ts \
- $$TR_DIR/designer_pl.ts \
- $$TR_DIR/designer_ru.ts \
- $$TR_DIR/designer_sl.ts \
- $$TR_DIR/designer_zh_CN.ts \
- $$TR_DIR/designer_zh_TW.ts
diff --git a/tools/linguist/linguist/linguist.pro b/tools/linguist/linguist/linguist.pro
index 4f7ed8a..ce8d585 100644
--- a/tools/linguist/linguist/linguist.pro
+++ b/tools/linguist/linguist/linguist.pro
@@ -94,15 +94,3 @@ FORMS += statistics.ui \
translationsettings.ui \
finddialog.ui
RESOURCES += linguist.qrc
-
-TR_DIR = $$PWD/../../../translations
-TRANSLATIONS = \
- $$TR_DIR/linguist_cs.ts \
- $$TR_DIR/linguist_de.ts \
- $$TR_DIR/linguist_fr.ts \
- $$TR_DIR/linguist_hu.ts \
- $$TR_DIR/linguist_ja.ts \
- $$TR_DIR/linguist_pl.ts \
- $$TR_DIR/linguist_ru.ts \
- $$TR_DIR/linguist_zh_CN.ts \
- $$TR_DIR/linguist_zh_TW.ts
diff --git a/tools/qdoc3/doc/files/qt.qdocconf b/tools/qdoc3/doc/files/qt.qdocconf
index 942d023..09c112a 100644
--- a/tools/qdoc3/doc/files/qt.qdocconf
+++ b/tools/qdoc3/doc/files/qt.qdocconf
@@ -8,7 +8,7 @@ project = Qt
versionsym =
version = %VERSION%
description = Qt Reference Documentation
-url = http://qt.nokia.com/doc/4.6
+url = http://qt.nokia.com/doc/4.7
edition.Console.modules = QtCore QtDBus QtNetwork QtScript QtSql QtXml \
QtXmlPatterns QtTest
@@ -22,7 +22,7 @@ edition.DesktopLight.groups = -graphicsview-api
qhp.projects = Qt
qhp.Qt.file = qt.qhp
-qhp.Qt.namespace = com.trolltech.qt.460
+qhp.Qt.namespace = com.trolltech.qt.470
qhp.Qt.virtualFolder = qdoc
qhp.Qt.indexTitle = Qt Reference Documentation
qhp.Qt.indexRoot =
@@ -36,9 +36,9 @@ qhp.Qt.extraFiles = classic.css \
images/dynamiclayouts-example.png \
images/stylesheet-coffee-plastique.png
-qhp.Qt.filterAttributes = qt 4.6.0 qtrefdoc
-qhp.Qt.customFilters.Qt.name = Qt 4.6.0
-qhp.Qt.customFilters.Qt.filterAttributes = qt 4.6.0
+qhp.Qt.filterAttributes = qt 4.7.0 qtrefdoc
+qhp.Qt.customFilters.Qt.name = Qt 4.7.0
+qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.0
qhp.Qt.subprojects = classes overviews examples
qhp.Qt.subprojects.classes.title = Classes
qhp.Qt.subprojects.classes.indexTitle = Qt's Classes
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 16b45d6..9977df0 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -63,6 +63,12 @@ QT_BEGIN_NAMESPACE
int HtmlGenerator::id = 0;
bool HtmlGenerator::debugging_on = false;
+#if 0
+QString HtmlGenerator::divNavTop = "<div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>";
+#endif
+
+QString HtmlGenerator::divNavTop = "";
+
QString HtmlGenerator::sinceTitles[] =
{
" New Namespaces",
@@ -214,7 +220,7 @@ HtmlGenerator::HtmlGenerator()
numTableRows(0),
threeColumnEnumValueTable(true),
offlineDocs(true),
- creatorDocs(false),
+ creatorDocs(true),
funcLeftParen("\\S(\\()"),
myTree(0),
slow(false),
@@ -277,7 +283,7 @@ void HtmlGenerator::initializeGenerator(const Config &config)
project = config.getString(CONFIG_PROJECT);
offlineDocs = !config.getBool(CONFIG_ONLINE);
- creatorDocs = !config.getBool(CONFIG_CREATOR);
+ creatorDocs = false; //!config.getBool(CONFIG_CREATOR);
projectDescription = config.getString(CONFIG_DESCRIPTION);
if (projectDescription.isEmpty() && !project.isEmpty())
projectDescription = project + " Reference Documentation";
@@ -1055,11 +1061,11 @@ int HtmlGenerator::generateAtom(const Atom *atom,
}
sectionNumber.last() = QString::number(sectionNumber.last().toInt() + 1);
}
- out() << "<a name=\"sec-" << sectionNumber.join("-") << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ out() << "<a name=\"sec-" << sectionNumber.join("-") << "\"></a>" << divNavTop << "\n";
}
#else
out() << "<a name=\"" << Doc::canonicalTitle(Text::sectionHeading(atom).toString())
- << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ << "\"></a>" << divNavTop << "\n";
#endif
break;
case Atom::SectionRight:
@@ -1307,7 +1313,7 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner,
// out() << "<hr />\n";
out() << "<a name=\""
<< registerRef((*s).name.toLower())
- << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ << "\"></a>" << divNavTop << "\n";
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n";
generateSection(s->members, inner, marker, CodeMarker::Summary);
}
@@ -1316,7 +1322,7 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner,
// out() << "<hr />\n";
out() << "<a name=\""
<< registerRef(name.toLower())
- << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ << "\"></a>" << divNavTop << "\n";
out() << "<h2>" << protectEnc(name) << "</h2>\n";
generateSection(s->reimpMembers, inner, marker, CodeMarker::Summary);
}
@@ -1343,15 +1349,17 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner,
out() << "</ul>\n";
}
- out() << "<a name=\"" << registerRef("details") << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ out() << "<a name=\"" << registerRef("details") << "\"></a>" << divNavTop << "\n";
if (!inner->doc().isEmpty()) {
+ generateExtractionMark(inner, DetailedDescriptionMark);
//out() << "<hr />\n"
- out() << "<div class=\"descr\"/>\n" // QTBUG-9504
+ out() << "<div class=\"descr\">\n" // QTBUG-9504
<< "<h2>" << "Detailed Description" << "</h2>\n";
generateBody(inner, marker);
out() << "</div>\n"; // QTBUG-9504
generateAlsoList(inner, marker);
+ generateExtractionMark(inner, EndMark);
}
sections = marker->sections(inner, CodeMarker::Detailed, CodeMarker::Okay);
@@ -1359,7 +1367,7 @@ void HtmlGenerator::generateClassLikeNode(const InnerNode *inner,
while (s != sections.end()) {
//out() << "<hr />\n";
if (!(*s).divClass.isEmpty())
- out() << "<div class=\"" << (*s).divClass << "\"/>\n"; // QTBUG-9504
+ out() << "<div class=\"" << (*s).divClass << "\">\n"; // QTBUG-9504
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n";
NodeList::ConstIterator m = (*s).members.begin();
@@ -1483,12 +1491,12 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
generateStatus(fake, marker);
if (moduleNamespaceMap.contains(fake->name())) {
- out() << "<a name=\"" << registerRef("namespaces") << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ out() << "<a name=\"" << registerRef("namespaces") << "\"></a>" << divNavTop << "\n";
out() << "<h2>Namespaces</h2>\n";
generateAnnotatedList(fake, marker, moduleNamespaceMap[fake->name()]);
}
if (moduleClassMap.contains(fake->name())) {
- out() << "<a name=\"" << registerRef("classes") << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ out() << "<a name=\"" << registerRef("classes") << "\"></a>" << divNavTop << "\n";
out() << "<h2>Classes</h2>\n";
generateAnnotatedList(fake, marker, moduleClassMap[fake->name()]);
}
@@ -1551,18 +1559,20 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
sections = marker->qmlSections(qml_cn,CodeMarker::Summary);
s = sections.begin();
while (s != sections.end()) {
- out() << "<a name=\"" << registerRef((*s).name) << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ out() << "<a name=\"" << registerRef((*s).name) << "\"></a>" << divNavTop << "\n";
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n";
generateQmlSummary(*s,fake,marker);
++s;
}
- out() << "<a name=\"" << registerRef("details") << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ generateExtractionMark(fake, DetailedDescriptionMark);
+ out() << "<a name=\"" << registerRef("details") << "\"></a>" << divNavTop << "\n";
out() << "<h2>" << "Detailed Description" << "</h2>\n";
generateBody(fake, marker);
if (cn)
generateQmlText(cn->doc().body(), cn, marker, fake->name());
generateAlsoList(fake, marker);
+ generateExtractionMark(fake, EndMark);
//out() << "<hr />\n";
sections = marker->qmlSections(qml_cn,CodeMarker::Detailed);
@@ -1587,7 +1597,7 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
sections = marker->sections(fake, CodeMarker::Summary, CodeMarker::Okay);
s = sections.begin();
while (s != sections.end()) {
- out() << "<a name=\"" << registerRef((*s).name) << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ out() << "<a name=\"" << registerRef((*s).name) << "\"></a>" << divNavTop << "\n";
out() << "<h2>" << protectEnc((*s).name) << "</h2>\n";
generateSectionList(*s, fake, marker, CodeMarker::Summary);
++s;
@@ -1595,16 +1605,20 @@ void HtmlGenerator::generateFakeNode(const FakeNode *fake, CodeMarker *marker)
Text brief = fake->doc().briefText();
if (fake->subType() == Node::Module && !brief.isEmpty()) {
- out() << "<a name=\"" << registerRef("details") << "\"></a><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
- out() << "<div class=\"descr\"/>\n"; // QTBUG-9504
+ generateExtractionMark(fake, DetailedDescriptionMark);
+ out() << "<a name=\"" << registerRef("details") << "\"></a>" << divNavTop << "\n";
+ out() << "<div class=\"descr\">\n"; // QTBUG-9504
out() << "<h2>" << "Detailed Description" << "</h2>\n";
}
- else
- out() << "<div class=\"descr\"/>\n"; // QTBUG-9504
+ else {
+ generateExtractionMark(fake, DetailedDescriptionMark);
+ out() << "<div class=\"descr\">\n"; // QTBUG-9504
+ }
generateBody(fake, marker);
out() << "</div>\n"; // QTBUG-9504
generateAlsoList(fake, marker);
+ generateExtractionMark(fake, EndMark);
if (!fake->groupMembers().isEmpty()) {
NodeMap groupMembersMap;
@@ -1702,8 +1716,9 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title,
}
}
else if (node->subType() == Node::Page) {
- if (fn->name() == QString("examples.html")) {
- out() << " <li>Examples</li>";
+ if (fn->name() == QString("qdeclarativeexamples.html")) {
+ out() << " <li><a href=\"all-examples.html\">Examples</a></li>";
+ out() << " <li>QML Examples & Demos</li>";
}
else if (fn->name().startsWith("examples-")) {
out() << " <li><a href=\"all-examples.html\">Examples</a></li>";
@@ -1723,10 +1738,14 @@ void HtmlGenerator::generateBreadCrumbs(const QString& title,
else if (node->subType() == Node::Example) {
out() << " <li><a href=\"all-examples.html\">Examples</a></li>";
QStringList sl = fn->name().split('/');
- QString name = "examples-" + sl.at(0) + ".html";
- QString t = CodeParser::titleFromName(name);
- out() << " <li><a href=\"" << name << "\">"
- << t << "</a></li>";
+ if (sl.contains("declarative"))
+ out() << " <li><a href=\"qdeclarativeexamples.html\">QML Examples & Demos</a></li>";
+ else {
+ QString name = "examples-" + sl.at(0) + ".html";
+ QString t = CodeParser::titleFromName(name);
+ out() << " <li><a href=\"" << name << "\">"
+ << t << "</a></li>";
+ }
out() << " <li>" << title << "</li>";
}
}
@@ -1777,16 +1796,14 @@ void HtmlGenerator::generateHeader(const QString& title,
// Setting assistant configuration
if (offlineDocs)
{
- out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/creatorStyle.css\" />"; // Only for Qt Creator
+ out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />"; // Only for Qt Creator
out() << "</head>\n";
- //out() << "<body class=\"offline narrow \">\n"; // offline for Assistant
- out() << "<body class=\"offline narrow creator\">\n"; // offline for Creator
+ out() << "<body class=\"offline \">\n"; // offline for Assistant
}
if (creatorDocs)
{
- out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/creatorStyle.css\" />"; // Only for Qt Creator
+ out() << " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/style.css\" />"; // Only for Qt Creator
out() << "</head>\n";
- //out() << "<body class=\"offline narrow \">\n"; // offline for Assistant
out() << "<body class=\"offline narrow creator\">\n"; // offline for Creator
}
// Setting online doc configuration
@@ -1884,6 +1901,7 @@ void HtmlGenerator::generateBrief(const Node *node, CodeMarker *marker,
{
Text brief = node->doc().briefText();
if (!brief.isEmpty()) {
+ generateExtractionMark(node, BriefMark);
out() << "<p>";
generateText(brief, node, marker);
if (!relative || node == relative)
@@ -1891,6 +1909,7 @@ void HtmlGenerator::generateBrief(const Node *node, CodeMarker *marker,
else
out() << " <a href=\"" << linkForNode(node, relative) << "#";
out() << registerRef("details") << "\">More...</a></p>\n";
+ generateExtractionMark(node, EndMark);
}
}
@@ -3459,6 +3478,7 @@ void HtmlGenerator::generateDetailedMember(const Node *node,
#ifdef GENERATE_MAC_REFS
generateMacRef(node, marker);
#endif
+ generateExtractionMark(node, MemberMark);
if (node->type() == Node::Enum
&& (enume = static_cast<const EnumNode *>(node))->flagsType()) {
#ifdef GENERATE_MAC_REFS
@@ -3478,7 +3498,7 @@ void HtmlGenerator::generateDetailedMember(const Node *node,
out() << "<h3 class=\"fn\">";
out() << "<a name=\"" + refForNode(node) + "\"></a>";
generateSynopsis(node, relative, marker, CodeMarker::Detailed);
- out() << "</h3><div class=\"navTop\"><a href=\"#toc\"><img src=\"./images/bullet_up.png\"></a></div>\n";
+ out() << "</h3>" << divNavTop << "\n";
}
generateStatus(node, marker);
@@ -3521,6 +3541,7 @@ void HtmlGenerator::generateDetailedMember(const Node *node,
}
}
generateAlsoList(node, marker);
+ generateExtractionMark(node, EndMark);
}
void HtmlGenerator::findAllClasses(const InnerNode *node)
@@ -4067,6 +4088,7 @@ void HtmlGenerator::generateDetailedQmlMember(const Node *node,
#ifdef GENERATE_MAC_REFS
generateMacRef(node, marker);
#endif
+ generateExtractionMark(node, MemberMark);
out() << "<div class=\"qmlitem\">";
if (node->subType() == Node::QmlPropertyGroup) {
const QmlPropGroupNode* qpgn = static_cast<const QmlPropGroupNode*>(node);
@@ -4138,6 +4160,7 @@ void HtmlGenerator::generateDetailedQmlMember(const Node *node,
generateAlsoList(node, marker);
out() << "</div>";
out() << "</div>";
+ generateExtractionMark(node, EndMark);
}
/*!
@@ -4379,6 +4402,40 @@ void HtmlGenerator::generatePageIndex(const QString& fileName, CodeMarker* marke
file.close();
}
+void HtmlGenerator::generateExtractionMark(const Node *node, ExtractionMarkType markType)
+{
+ if (markType != EndMark) {
+ out() << "<!-- $$$" + node->name();
+ if (markType == MemberMark) {
+ if (node->type() == Node::Function) {
+ const FunctionNode *func = static_cast<const FunctionNode *>(node);
+ if (!func->associatedProperty()) {
+ if (func->overloadNumber() == 1)
+ out() << "[overload1]";
+ out() << "$$$" + func->name() + func->rawParameters().remove(' ');
+ }
+ } else if (node->type() == Node::Property) {
+ const PropertyNode *prop = static_cast<const PropertyNode *>(node);
+ out() << "-prop";
+ const NodeList &list = prop->functions();
+ foreach (const Node *propFuncNode, list) {
+ if (propFuncNode->type() == Node::Function) {
+ const FunctionNode *func = static_cast<const FunctionNode *>(propFuncNode);
+ out() << "$$$" + func->name() + func->rawParameters().remove(' ');
+ }
+ }
+ }
+ } else if (markType == BriefMark) {
+ out() << "-brief";
+ } else if (markType == DetailedDescriptionMark) {
+ out() << "-description";
+ }
+ out() << " -->\n";
+ } else {
+ out() << "<!-- @@@" + node->name() + " -->\n";
+ }
+}
+
#endif
QT_END_NAMESPACE
diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h
index abfca60..aaf2318 100644
--- a/tools/qdoc3/htmlgenerator.h
+++ b/tools/qdoc3/htmlgenerator.h
@@ -123,6 +123,12 @@ class HtmlGenerator : public PageGenerator
private:
enum SubTitleSize { SmallSubTitle, LargeSubTitle };
+ enum ExtractionMarkType {
+ BriefMark,
+ DetailedDescriptionMark,
+ MemberMark,
+ EndMark
+ };
const QPair<QString,QString> anchorForNode(const Node *node);
const Node *findNodeForTarget(const QString &target,
@@ -266,6 +272,7 @@ class HtmlGenerator : public PageGenerator
CodeMarker* marker) const;
void generatePageIndex(const QString& fileName,
CodeMarker* marker) const;
+ void generateExtractionMark(const Node *node, ExtractionMarkType markType);
#if 0
NavigationBar currentNavigationBar;
@@ -324,6 +331,7 @@ class HtmlGenerator : public PageGenerator
static int id;
public:
static bool debugging_on;
+ static QString divNavTop;
};
#define HTMLGENERATOR_ADDRESS "address"
diff --git a/tools/qdoc3/node.cpp b/tools/qdoc3/node.cpp
index da62e29..0ca4870 100644
--- a/tools/qdoc3/node.cpp
+++ b/tools/qdoc3/node.cpp
@@ -1246,6 +1246,24 @@ QStringList FunctionNode::parameterNames() const
}
/*!
+ Returns a raw list of parameters. If \a names is true, the
+ names are included. If \a values is true, the default values
+ are included, if any are present.
+ */
+QString FunctionNode::rawParameters(bool names, bool values) const
+{
+ QString raw;
+ foreach (const Parameter &parameter, parameters()) {
+ raw += parameter.leftType() + parameter.rightType();
+ if (names)
+ raw += parameter.name();
+ if (values)
+ raw += parameter.defaultValue();
+ }
+ return raw;
+}
+
+/*!
Returns the list of reconstructed parameters. If \a values
is true, the default values are included, if any are present.
*/
diff --git a/tools/qdoc3/node.h b/tools/qdoc3/node.h
index e9f2d74..121b818 100644
--- a/tools/qdoc3/node.h
+++ b/tools/qdoc3/node.h
@@ -616,6 +616,7 @@ class FunctionNode : public LeafNode
int numOverloads() const;
const QList<Parameter>& parameters() const { return params; }
QStringList parameterNames() const;
+ QString rawParameters(bool names = false, bool values = false) const;
const FunctionNode* reimplementedFrom() const { return rf; }
const QList<FunctionNode*> &reimplementedBy() const { return rb; }
const PropertyNode* associatedProperty() const { return ap; }
diff --git a/tools/qdoc3/test/assistant.qdocconf b/tools/qdoc3/test/assistant.qdocconf
index 4b52992..8d5fa89 100644
--- a/tools/qdoc3/test/assistant.qdocconf
+++ b/tools/qdoc3/test/assistant.qdocconf
@@ -17,7 +17,10 @@ qhp.Assistant.namespace = com.trolltech.assistant.470
qhp.Assistant.virtualFolder = qdoc
qhp.Assistant.indexTitle = Qt Assistant Manual
qhp.Assistant.extraFiles = images/bg_l.png \
- images/bg_l_blank.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,24 +28,27 @@ qhp.Assistant.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 \
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
+ 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.Assistant.filterAttributes = qt 4.7.0 tools assistant
qhp.Assistant.customFilters.Assistant.name = Qt Assistant Manual
diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf
index 0433c9f..facec5c 100644
--- a/tools/qdoc3/test/qdeclarative.qdocconf
+++ b/tools/qdoc3/test/qdeclarative.qdocconf
@@ -55,9 +55,9 @@ qhp.Qml.extraFiles = images/bg_l.png \
style/style_ie8.css \
style/style.css
-qhp.Qml.filterAttributes = qt 4.6.0 qtrefdoc
-qhp.Qml.customFilters.Qt.name = Qt 4.6.0
-qhp.Qml.customFilters.Qt.filterAttributes = qt 4.6.0
+qhp.Qml.filterAttributes = qt 4.7.0 qtrefdoc
+qhp.Qml.customFilters.Qt.name = Qt 4.7.0
+qhp.Qml.customFilters.Qt.filterAttributes = qt 4.7.0
qhp.Qml.subprojects = classes
qhp.Qml.subprojects.classes.title = Elements
qhp.Qml.subprojects.classes.indexTitle = Qml Elements
diff --git a/tools/qdoc3/test/qt-build-docs.qdocconf b/tools/qdoc3/test/qt-build-docs.qdocconf
index 140b81f..4ac4f47 100644
--- a/tools/qdoc3/test/qt-build-docs.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs.qdocconf
@@ -24,6 +24,9 @@ qhp.Qt.indexTitle = Qt Reference Documentation
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 \
@@ -31,12 +34,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 \
@@ -44,17 +47,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/qml/deviceorientation_symbian.cpp b/tools/qml/deviceorientation_symbian.cpp
new file mode 100644
index 0000000..c305f94
--- /dev/null
+++ b/tools/qml/deviceorientation_symbian.cpp
@@ -0,0 +1,162 @@
+/****************************************************************************
+**
+** 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 tools applications 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 "deviceorientation.h"
+
+#include <e32base.h>
+#include <sensrvchannelfinder.h>
+#include <sensrvdatalistener.h>
+#include <sensrvchannel.h>
+#include <sensrvorientationsensor.h>
+
+class SymbianOrientation : public DeviceOrientation, public MSensrvDataListener
+{
+ Q_OBJECT
+public:
+ SymbianOrientation()
+ : DeviceOrientation(), m_current(UnknownOrientation), m_sensorChannel(0)
+ {
+ TRAP_IGNORE(initL());
+ if (!m_sensorChannel)
+ qWarning("No valid sensors found.");
+ }
+
+ ~SymbianOrientation()
+ {
+ if (m_sensorChannel) {
+ m_sensorChannel->StopDataListening();
+ m_sensorChannel->CloseChannel();
+ delete m_sensorChannel;
+ }
+ }
+
+ void initL()
+ {
+ CSensrvChannelFinder *channelFinder = CSensrvChannelFinder::NewLC();
+ RSensrvChannelInfoList channelInfoList;
+ CleanupClosePushL(channelInfoList);
+
+ TSensrvChannelInfo searchConditions;
+ searchConditions.iChannelType = KSensrvChannelTypeIdOrientationData;
+ channelFinder->FindChannelsL(channelInfoList, searchConditions);
+
+ for (int i = 0; i < channelInfoList.Count(); ++i) {
+ TRAPD(error, m_sensorChannel = CSensrvChannel::NewL(channelInfoList[i]));
+ if (!error)
+ TRAP(error, m_sensorChannel->OpenChannelL());
+ if (!error) {
+ TRAP(error, m_sensorChannel->StartDataListeningL(this, 1, 1, 0));
+ break;
+ }
+ if (error) {
+ delete m_sensorChannel;
+ m_sensorChannel = 0;
+ }
+ }
+
+ channelInfoList.Close();
+ CleanupStack::Pop(&channelInfoList);
+ CleanupStack::PopAndDestroy(channelFinder);
+ }
+
+ Orientation orientation() const
+ {
+ return m_current;
+ }
+
+ void setOrientation(Orientation) { }
+
+private:
+ DeviceOrientation::Orientation m_current;
+ CSensrvChannel *m_sensorChannel;
+
+ void DataReceived(CSensrvChannel &channel, TInt count, TInt dataLost)
+ {
+ if (channel.GetChannelInfo().iChannelType == KSensrvChannelTypeIdOrientationData) {
+ TSensrvOrientationData data;
+ for (int i = 0; i < count; ++i) {
+ TPckgBuf<TSensrvOrientationData> dataBuf;
+ channel.GetData(dataBuf);
+ data = dataBuf();
+ Orientation o = UnknownOrientation;
+ switch (data.iDeviceOrientation) {
+ case TSensrvOrientationData::EOrientationDisplayUp:
+ o = Portrait;
+ break;
+ case TSensrvOrientationData::EOrientationDisplayRightUp:
+ o = Landscape;
+ break;
+ case TSensrvOrientationData::EOrientationDisplayLeftUp:
+ case TSensrvOrientationData::EOrientationDisplayDown:
+ case TSensrvOrientationData::EOrientationUndefined:
+ case TSensrvOrientationData::EOrientationDisplayUpwards:
+ case TSensrvOrientationData::EOrientationDisplayDownwards:
+ default:
+ break;
+ }
+
+ if (m_current != o && o != UnknownOrientation) {
+ m_current = o;
+ emit orientationChanged();
+ }
+ }
+ }
+ }
+
+ void DataError(CSensrvChannel& /* channel */, TSensrvErrorSeverity /* error */)
+ {
+ }
+
+ void GetDataListenerInterfaceL(TUid /* interfaceUid */, TAny*& /* interface */)
+ {
+ }
+};
+
+
+DeviceOrientation* DeviceOrientation::instance()
+{
+ static SymbianOrientation *o = 0;
+ if (!o)
+ o = new SymbianOrientation;
+ return o;
+}
+
+#include "deviceorientation_symbian.moc"
diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp
index 900a464..4b1162e 100644
--- a/tools/qml/main.cpp
+++ b/tools/qml/main.cpp
@@ -49,12 +49,15 @@
#include <QTranslator>
#include <QDebug>
#include <QMessageBox>
+#include <QAtomicInt>
#include "qdeclarativetester.h"
QT_USE_NAMESPACE
QtMsgHandler systemMsgOutput = 0;
+
+
#if defined (Q_OS_SYMBIAN)
#include <unistd.h>
#include <sys/types.h>
@@ -89,19 +92,25 @@ void showWarnings()
}
}
+static QAtomicInt recursiveLock(0);
+
void myMessageOutput(QtMsgType type, const char *msg)
{
- if (!logger.isNull()) {
- QString strMsg = QString::fromAscii(msg);
- QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg));
+ QString strMsg = QString::fromLatin1(msg);
+
+ if (!logger.isNull() && !QCoreApplication::closingDown()) {
+ if (recursiveLock.testAndSetOrdered(0, 1)) {
+ QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg));
+ recursiveLock = 0;
+ }
} else {
- warnings += msg;
+ warnings += strMsg;
warnings += QLatin1Char('\n');
}
if (systemMsgOutput) { // Windows
systemMsgOutput(type, msg);
} else { // Unix
- fprintf(stderr, "%s\n",msg);
+ fprintf(stderr, "%s\n", msg);
fflush(stderr);
}
}
@@ -200,6 +209,8 @@ int main(int argc, char ** argv)
app.setOrganizationName("Nokia");
app.setOrganizationDomain("nokia.com");
+
+
QDeclarativeViewer::registerTypes();
QDeclarativeTester::registerTypes();
diff --git a/tools/qml/qml.pri b/tools/qml/qml.pri
index 3e5a88b..80afb45 100644
--- a/tools/qml/qml.pri
+++ b/tools/qml/qml.pri
@@ -17,7 +17,11 @@ SOURCES += $$PWD/qmlruntime.cpp \
$$PWD/loggerwidget.cpp
RESOURCES = $$PWD/qmlruntime.qrc
-maemo5 {
+symbian:!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
+ SOURCES += $$PWD/deviceorientation_symbian.cpp
+ FORMS = $$PWD/recopts.ui \
+ $$PWD/proxysettings.ui
+} else:maemo5 {
QT += dbus
HEADERS += $$PWD/texteditautoresizer_maemo5.h
SOURCES += $$PWD/deviceorientation_maemo5.cpp
diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro
index 63efff1..bb69e8a 100644
--- a/tools/qml/qml.pro
+++ b/tools/qml/qml.pro
@@ -37,6 +37,9 @@ symbian {
include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri)
TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
TARGET.CAPABILITY = NetworkServices ReadUserData
+ !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
+ LIBS += -lsensrvclient -lsensrvutil
+ }
}
mac {
QMAKE_INFO_PLIST=Info_mac.plist
diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp
index debc902..951b187 100644
--- a/tools/qml/qmlruntime.cpp
+++ b/tools/qml/qmlruntime.cpp
@@ -431,65 +431,82 @@ private:
mutable QMutex mutex;
};
-class NetworkAccessManagerFactory : public QDeclarativeNetworkAccessManagerFactory
+class SystemProxyFactory : public QNetworkProxyFactory
{
public:
- NetworkAccessManagerFactory() : cacheSize(0) {}
- ~NetworkAccessManagerFactory() {}
-
- QNetworkAccessManager *create(QObject *parent);
+ SystemProxyFactory() : proxyDirty(true), httpProxyInUse(false) {
+ }
- void setupProxy(QNetworkAccessManager *nam)
+ virtual QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query)
{
- class SystemProxyFactory : public QNetworkProxyFactory
- {
- public:
- virtual QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query)
- {
- QString protocolTag = query.protocolTag();
- if (httpProxyInUse && (protocolTag == "http" || protocolTag == "https")) {
- QList<QNetworkProxy> ret;
- ret << httpProxy;
- return ret;
- }
+ if (proxyDirty)
+ setupProxy();
+ QString protocolTag = query.protocolTag();
+ if (httpProxyInUse && (protocolTag == "http" || protocolTag == "https")) {
+ QList<QNetworkProxy> ret;
+ ret << httpProxy;
+ return ret;
+ }
#ifdef Q_OS_WIN
- // systemProxyForQuery can take insanely long on Windows (QTBUG-10106)
- return QNetworkProxyFactory::proxyForQuery(query);
+ // systemProxyForQuery can take insanely long on Windows (QTBUG-10106)
+ return QNetworkProxyFactory::proxyForQuery(query);
#else
- return QNetworkProxyFactory::systemProxyForQuery(query);
+ return QNetworkProxyFactory::systemProxyForQuery(query);
#endif
- }
- void setHttpProxy (QNetworkProxy proxy)
- {
- httpProxy = proxy;
- httpProxyInUse = true;
- }
- void unsetHttpProxy ()
- {
- httpProxyInUse = false;
- }
- private:
- bool httpProxyInUse;
- QNetworkProxy httpProxy;
- };
-
- SystemProxyFactory *proxyFactory = new SystemProxyFactory;
- if (ProxySettings::httpProxyInUse())
- proxyFactory->setHttpProxy(ProxySettings::httpProxy());
- else
- proxyFactory->unsetHttpProxy();
- nam->setProxyFactory(proxyFactory);
}
+ void setupProxy() {
+ // Don't bother locking because we know that the proxy only
+ // changes in response to the settings dialog and that
+ // the view will be reloaded.
+ proxyDirty = false;
+ httpProxyInUse = ProxySettings::httpProxyInUse();
+ if (httpProxyInUse)
+ httpProxy = ProxySettings::httpProxy();
+ }
+
+ void proxyChanged() {
+ proxyDirty = true;
+ }
+
+private:
+ volatile bool proxyDirty;
+ bool httpProxyInUse;
+ QNetworkProxy httpProxy;
+};
+
+class NetworkAccessManagerFactory : public QObject, public QDeclarativeNetworkAccessManagerFactory
+{
+ Q_OBJECT
+public:
+ NetworkAccessManagerFactory() : cacheSize(0) {}
+ ~NetworkAccessManagerFactory() {}
+
+ QNetworkAccessManager *create(QObject *parent);
+
void setCacheSize(int size) {
if (size != cacheSize) {
cacheSize = size;
}
}
+ void proxyChanged() {
+ foreach (QNetworkAccessManager *nam, namList) {
+ static_cast<SystemProxyFactory*>(nam->proxyFactory())->proxyChanged();
+ }
+ }
+
static PersistentCookieJar *cookieJar;
+
+private slots:
+ void managerDestroyed(QObject *obj) {
+ namList.removeOne(static_cast<QNetworkAccessManager*>(obj));
+ }
+
+private:
QMutex mutex;
int cacheSize;
+ QList<QNetworkAccessManager*> namList;
};
PersistentCookieJar *NetworkAccessManagerFactory::cookieJar = 0;
@@ -510,7 +527,7 @@ QNetworkAccessManager *NetworkAccessManagerFactory::create(QObject *parent)
}
manager->setCookieJar(cookieJar);
cookieJar->setParent(0);
- setupProxy(manager);
+ manager->setProxyFactory(new SystemProxyFactory);
if (cacheSize > 0) {
QNetworkDiskCache *cache = new QNetworkDiskCache;
cache->setCacheDirectory(QDir::tempPath()+QLatin1String("/qml-viewer-network-cache"));
@@ -519,6 +536,8 @@ QNetworkAccessManager *NetworkAccessManagerFactory::create(QObject *parent)
} else {
manager->setCache(0);
}
+ connect(manager, SIGNAL(destroyed(QObject*)), this, SLOT(managerDestroyed(QObject*)));
+ namList.append(manager);
qDebug() << "created new network access manager for" << parent;
return manager;
}
@@ -777,6 +796,7 @@ void QDeclarativeViewer::showProxySettings()
void QDeclarativeViewer::proxySettingsChanged()
{
+ namFactory->proxyChanged();
reload ();
}
@@ -924,13 +944,7 @@ void QDeclarativeViewer::statusChanged()
if (canvas->status() == QDeclarativeView::Ready) {
initialSize = canvas->initialSize();
- if (canvas->resizeMode() == QDeclarativeView::SizeRootObjectToView) {
- if (!isFullScreen() && !isMaximized()) {
- canvas->setFixedSize(initialSize);
- resize(1, 1); // workaround for QMainWindowLayout NOT shrinking the window if the centralWidget() shrink
- QTimer::singleShot(0, this, SLOT(updateSizeHints()));
- }
- }
+ updateSizeHints(true);
}
}
@@ -1055,13 +1069,9 @@ void QDeclarativeViewer::setRecordRate(int fps)
record_rate = fps;
}
-void QDeclarativeViewer::sceneResized(QSize size)
+void QDeclarativeViewer::sceneResized(QSize)
{
- if (size.width() > 0 && size.height() > 0) {
- if (canvas->resizeMode() == QDeclarativeView::SizeViewToRootObject) {
- updateSizeHints();
- }
- }
+ updateSizeHints();
}
void QDeclarativeViewer::keyPressEvent(QKeyEvent *event)
@@ -1324,17 +1334,7 @@ void QDeclarativeViewer::changeOrientation(QAction *action)
void QDeclarativeViewer::orientationChanged()
{
- if (canvas->resizeMode() == QDeclarativeView::SizeRootObjectToView) {
- if (canvas->rootObject()) {
- QSizeF rootObjectSize = canvas->rootObject()->boundingRect().size();
- if (size() != rootObjectSize.toSize()) {
- canvas->setMinimumSize(rootObjectSize.toSize());
- canvas->resize(rootObjectSize.toSize());
- resize(rootObjectSize.toSize());
- resize(1, 1); // workaround for QMainWindowLayout NOT shrinking the window if the centralWidget() shrinks
- }
- }
- }
+ updateSizeHints();
}
void QDeclarativeViewer::setDeviceKeys(bool on)
@@ -1383,20 +1383,32 @@ void QDeclarativeViewer::setSizeToView(bool sizeToView)
}
}
-void QDeclarativeViewer::updateSizeHints()
+void QDeclarativeViewer::updateSizeHints(bool initial)
{
- if (canvas->resizeMode() == QDeclarativeView::SizeViewToRootObject) {
- QSize newWindowSize = canvas->sizeHint();
+ static bool isRecursive = false;
+
+ if (isRecursive)
+ return;
+ isRecursive = true;
+
+ if (initial || (canvas->resizeMode() == QDeclarativeView::SizeViewToRootObject)) {
+ QSize newWindowSize = initial ? initialSize : canvas->sizeHint();
+ //qWarning() << "USH:" << (initial ? "INIT:" : "V2R:") << "setting fixed size " << newWindowSize;
if (!isFullScreen() && !isMaximized()) {
- canvas->setMinimumSize(newWindowSize);
- canvas->resize(newWindowSize);
- resize(1, 1); // workaround for QMainWindowLayout NOT shrinking the window if the centralWidget() shrinks
- canvas->setMinimumSize(QSize(0, 0));
+ canvas->setFixedSize(newWindowSize);
+ resize(1, 1);
+ layout()->setSizeConstraint(QLayout::SetFixedSize);
+ layout()->activate();
}
- } else { // QDeclarativeView::SizeRootObjectToView
- canvas->setMinimumSize(QSize(0,0));
- canvas->setMaximumSize(QSize(16777215,16777215));
}
+ //qWarning() << "USH: R2V: setting free size ";
+ layout()->setSizeConstraint(QLayout::SetNoConstraint);
+ layout()->activate();
+ setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
+ canvas->setMinimumSize(QSize(0,0));
+ canvas->setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
+
+ isRecursive = false;
}
void QDeclarativeViewer::registerTypes()
diff --git a/tools/qml/qmlruntime.h b/tools/qml/qmlruntime.h
index e70e69f..68d3452 100644
--- a/tools/qml/qmlruntime.h
+++ b/tools/qml/qmlruntime.h
@@ -145,9 +145,9 @@ private slots:
void warningsWidgetOpened();
void warningsWidgetClosed();
- void updateSizeHints();
-
private:
+ void updateSizeHints(bool initial = false);
+
QString getVideoFileName();
LoggerWidget *loggerWindow;
diff --git a/tools/qtconfig/translations/translations.pro b/tools/qtconfig/translations/translations.pro
deleted file mode 100644
index 5d35b6a..0000000
--- a/tools/qtconfig/translations/translations.pro
+++ /dev/null
@@ -1,16 +0,0 @@
-# Include those manually as they do not contain any directory specification
-
-SOURCES += ../colorbutton.cpp ../main.cpp ../previewframe.cpp ../previewwidget.cpp ../mainwindow.cpp ../paletteeditoradvanced.cpp \
- ../mainwindowbase.cpp ../paletteeditoradvancedbase.cpp ../previewwidgetbase.cpp
-HEADERS += ../colorbutton.h ../previewframe.h ../previewwidget.h ../mainwindow.h ../paletteeditoradvanced.h \
- ../mainwindowbase.h ../paletteeditoradvancedbase.h ../previewwidgetbase.h
-
-FORMS = ../mainwindowbase.ui ../paletteeditoradvancedbase.ui ../previewwidgetbase.ui
-
-TR_DIR = $$PWD/../../../translations
-TRANSLATIONS = \
- $$TR_DIR/qtconfig_hu.ts \
- $$TR_DIR/qtconfig_pl.ts \
- $$TR_DIR/qtconfig_ru.ts \
- $$TR_DIR/qtconfig_zh_CN.ts \
- $$TR_DIR/qtconfig_zh_TW.ts
diff --git a/tools/qvfb/qvfb.pro b/tools/qvfb/qvfb.pro
index dde7e8d..c101d00 100644
--- a/tools/qvfb/qvfb.pro
+++ b/tools/qvfb/qvfb.pro
@@ -35,7 +35,7 @@ SOURCES = qvfb.cpp \
../../src/gui/embedded/qlock.cpp \
../../src/gui/embedded/qwssignalhandler.cpp
-include($$QT_SOURCE_TREE/tools/shared/deviceskin/deviceskin.pri)
+include(../shared/deviceskin/deviceskin.pri)
contains(QT_CONFIG, opengl) {
QT += opengl
diff --git a/tools/qvfb/translations/translations.pro b/tools/qvfb/translations/translations.pro
deleted file mode 100644
index b0b1af4..0000000
--- a/tools/qvfb/translations/translations.pro
+++ /dev/null
@@ -1,35 +0,0 @@
-# Include those manually as they do not contain any directory specification
-
-FORMS = ../config.ui
-HEADERS = ../qvfb.h \
- ../qvfbview.h \
- ../qvfbratedlg.h \
- ../qanimationwriter.h \
- ../gammaview.h \
- ../qvfbprotocol.h \
- ../qvfbshmem.h \
- ../qvfbmmap.h \
- ../../../src/gui/embedded/qvfbhdr.h \
- ../../../src/gui/embedded/qlock_p.h \
- ../../../src/gui/embedded/qwssignalhandler_p.h \
- ../../shared/deviceskin/deviceskin.h
-
-SOURCES = ../qvfb.cpp \
- ../qvfbview.cpp \
- ../qvfbratedlg.cpp \
- ../main.cpp \
- ../qanimationwriter.cpp \
- ../qvfbprotocol.cpp \
- ../qvfbshmem.cpp \
- ../qvfbmmap.cpp \
- ../../../src/gui/embedded/qlock.cpp \
- ../../../src/gui/embedded/qwssignalhandler.cpp \
- ../../shared/deviceskin/deviceskin.cpp
-
-TR_DIR = $$PWD/../../../translations
-TRANSLATIONS = \
- $$TR_DIR/qvfb_hu.ts \
- $$TR_DIR/qvfb_pl.ts \
- $$TR_DIR/qvfb_ru.ts \
- $$TR_DIR/qvfb_zh_CN.ts \
- $$TR_DIR/qvfb_zh_TW.ts
diff --git a/tools/runonphone/main.cpp b/tools/runonphone/main.cpp
index 885d029..7767e4b 100644
--- a/tools/runonphone/main.cpp
+++ b/tools/runonphone/main.cpp
@@ -62,6 +62,8 @@ void printUsage(QTextStream& outstream, QString exeName)
<< "-v, --verbose show debugging output" << endl
<< "-q, --quiet hide progress messages" << endl
<< "-d, --download <remote file> <local file> copy file from phone to PC after running test" << endl
+ << "--nocrashlog Don't capture call stack if test crashes" << endl
+ << "--crashlogpath <dir> Path to save crash logs (default=working dir)" << endl
<< endl
<< "USB COM ports can usually be autodetected, use -p or -f to force a specific port." << endl
<< "If using System TRK, it is possible to copy the program directly to sys/bin on the phone." << endl
@@ -85,6 +87,8 @@ int main(int argc, char *argv[])
QString downloadLocalFile;
int loglevel=1;
int timeout=0;
+ bool crashlog = true;
+ QString crashlogpath;
QListIterator<QString> it(args);
it.next(); //skip name of program
while (it.hasNext()) {
@@ -126,6 +130,12 @@ int main(int argc, char *argv[])
loglevel=2;
else if (arg == "--quiet" || arg == "-q")
loglevel=0;
+ else if (arg == "--nocrashlog")
+ crashlog = false;
+ else if (arg == "--crashlogpath") {
+ CHECK_PARAMETER_EXISTS
+ crashlogpath = it.next();
+ }
else
errstream << "unknown command line option " << arg << endl;
} else {
@@ -145,7 +155,7 @@ int main(int argc, char *argv[])
if (serialPortName.isEmpty()) {
if (loglevel > 0)
outstream << "Detecting serial ports" << endl;
- foreach (const SerialPortId &id, enumerateSerialPorts()) {
+ foreach (const SerialPortId &id, enumerateSerialPorts(loglevel)) {
if (loglevel > 0)
outstream << "Port Name: " << id.portName << ", "
<< "Friendly Name:" << id.friendlyName << endl;
@@ -199,6 +209,8 @@ int main(int argc, char *argv[])
TrkSignalHandler handler;
handler.setLogLevel(loglevel);
+ handler.setCrashLogging(crashlog);
+ handler.setCrashLogPath(crashlogpath);
QObject::connect(launcher.data(), SIGNAL(copyingStarted()), &handler, SLOT(copyingStarted()));
QObject::connect(launcher.data(), SIGNAL(canNotConnect(const QString &)), &handler, SLOT(canNotConnect(const QString &)));
@@ -215,8 +227,12 @@ int main(int argc, char *argv[])
QObject::connect(launcher.data(), SIGNAL(copyProgress(int)), &handler, SLOT(copyProgress(int)));
QObject::connect(launcher.data(), SIGNAL(stateChanged(int)), &handler, SLOT(stateChanged(int)));
QObject::connect(launcher.data(), SIGNAL(processStopped(uint,uint,uint,QString)), &handler, SLOT(stopped(uint,uint,uint,QString)));
+ QObject::connect(launcher.data(), SIGNAL(libraryLoaded(trk::Library)), &handler, SLOT(libraryLoaded(trk::Library)));
+ QObject::connect(launcher.data(), SIGNAL(libraryUnloaded(trk::Library)), &handler, SLOT(libraryUnloaded(trk::Library)));
+ QObject::connect(launcher.data(), SIGNAL(registersAndCallStackReadComplete(const QList<uint> &,const QByteArray &)), &handler, SLOT(registersAndCallStackReadComplete(const QList<uint> &,const QByteArray &)));
QObject::connect(&handler, SIGNAL(resume(uint,uint)), launcher.data(), SLOT(resumeProcess(uint,uint)));
QObject::connect(&handler, SIGNAL(terminate()), launcher.data(), SLOT(terminate()));
+ QObject::connect(&handler, SIGNAL(getRegistersAndCallStack(uint,uint)), launcher.data(), SLOT(getRegistersAndCallStack(uint,uint)));
QObject::connect(launcher.data(), SIGNAL(finished()), &handler, SLOT(finished()));
QTimer timer;
diff --git a/tools/runonphone/serenum.h b/tools/runonphone/serenum.h
index b794b97..a65c8cb 100644
--- a/tools/runonphone/serenum.h
+++ b/tools/runonphone/serenum.h
@@ -51,6 +51,6 @@ struct SerialPortId
QString friendlyName;
};
-QList<SerialPortId> enumerateSerialPorts();
+QList<SerialPortId> enumerateSerialPorts(int loglevel);
#endif // WIN32SERENUM_H
diff --git a/tools/runonphone/serenum_unix.cpp b/tools/runonphone/serenum_unix.cpp
index b6f0293..db6375e 100644
--- a/tools/runonphone/serenum_unix.cpp
+++ b/tools/runonphone/serenum_unix.cpp
@@ -48,9 +48,32 @@
#include <usb.h>
-QList<SerialPortId> enumerateSerialPorts()
+class InterfaceInfo
{
- QList<QString> eligableInterfaces;
+public:
+ InterfaceInfo(const QString &mf, const QString &pr, int mfid, int prid);
+ QString manufacturer;
+ QString product;
+ int manufacturerid;
+ int productid;
+};
+
+InterfaceInfo::InterfaceInfo(const QString &mf, const QString &pr, int mfid, int prid) :
+ manufacturer(mf),
+ product(pr),
+ manufacturerid(mfid),
+ productid(prid)
+{
+ if(mf.isEmpty())
+ manufacturer = QString("[%1]").arg(mfid, 4, 16, QChar('0'));
+ if(pr.isEmpty())
+ product = QString("[%1]").arg(prid, 4, 16, QChar('0'));
+}
+
+QList<SerialPortId> enumerateSerialPorts(int loglevel)
+{
+ QList<QString> eligibleInterfaces;
+ QList<InterfaceInfo> eligibleInterfacesInfo;
QList<SerialPortId> list;
usb_init();
@@ -85,6 +108,41 @@ QList<SerialPortId> enumerateSerialPorts()
}
}
}
+
+ if (usableInterfaces.isEmpty())
+ continue;
+
+ QString manufacturerString;
+ QString productString;
+
+ usb_dev_handle *devh = usb_open(device);
+ if (devh) {
+ QByteArray buf;
+ buf.resize(256);
+ int err = usb_get_string_simple(devh, device->descriptor.iManufacturer, buf.data(), buf.size());
+ if (err < 0) {
+ if (loglevel > 1)
+ qDebug() << " can't read manufacturer name, error:" << err;
+ } else {
+ manufacturerString = QString::fromAscii(buf);
+ if (loglevel > 1)
+ qDebug() << " manufacturer:" << manufacturerString;
+ }
+
+ buf.resize(256);
+ err = usb_get_string_simple(devh, device->descriptor.iProduct, buf.data(), buf.size());
+ if (err < 0) {
+ if (loglevel > 1)
+ qDebug() << " can't read product name, error:" << err;
+ } else {
+ productString = QString::fromAscii(buf);
+ if (loglevel > 1)
+ qDebug() << " product:" << productString;
+ }
+ usb_close(devh);
+ } else if (loglevel > 0) {
+ qDebug() << " can't open usb device";
+ }
// second loop to find the actual data interface.
foreach (int i, usableInterfaces) {
@@ -94,11 +152,22 @@ QList<SerialPortId> enumerateSerialPorts()
if (descriptor.bInterfaceNumber != i)
continue;
if (descriptor.bInterfaceClass == 10) { // "CDC Data"
- // qDebug() << " found the data port"
- // << "bus:" << bus->dirname
- // << "device" << device->filename
- // << "interface" << descriptor.bInterfaceNumber;
- eligableInterfaces << QString("if%1").arg(QString::number(i), 2, QChar('0')); // fix!
+ if (loglevel > 1) {
+ qDebug() << " found the data port"
+ << "bus:" << bus->dirname
+ << "device" << device->filename
+ << "interface" << descriptor.bInterfaceNumber;
+ }
+ // ### manufacturer and product strings are only readable as root :(
+ if (!manufacturerString.isEmpty() && !productString.isEmpty()) {
+ eligibleInterfaces << QString("usb-%1_%2-if%3")
+ .arg(manufacturerString.replace(QChar(' '), QChar('_')))
+ .arg(productString.replace(QChar(' '), QChar('_')))
+ .arg(i, 2, 16, QChar('0'));
+ } else {
+ eligibleInterfaces << QString("if%1").arg(i, 2, 16, QChar('0')); // fix!
+ }
+ eligibleInterfacesInfo << InterfaceInfo(manufacturerString, productString, device->descriptor.idVendor, device->descriptor.idProduct);
}
}
}
@@ -106,13 +175,18 @@ QList<SerialPortId> enumerateSerialPorts()
}
}
}
+
+ if (loglevel > 1)
+ qDebug() << " searching for interfaces:" << eligibleInterfaces;
QDir dir("/dev/serial/by-id/");
foreach (const QFileInfo &info, dir.entryInfoList()) {
if (!info.isDir()) {
- bool usable = eligableInterfaces.isEmpty();
- foreach (const QString &iface, eligableInterfaces) {
+ bool usable = eligibleInterfaces.isEmpty();
+ foreach (const QString &iface, eligibleInterfaces) {
if (info.fileName().contains(iface)) {
+ if (loglevel > 1)
+ qDebug() << " found device file:" << info.fileName() << endl;
usable = true;
break;
}
@@ -126,6 +200,21 @@ QList<SerialPortId> enumerateSerialPorts()
list << id;
}
}
+
+ if (list.isEmpty() && !eligibleInterfacesInfo.isEmpty() && loglevel > 0) {
+ qDebug() << "Possible USB devices found, but without serial drivers:";
+ foreach(const InterfaceInfo &iface, eligibleInterfacesInfo) {
+ qDebug() << " Manufacturer:"
+ << iface.manufacturer
+ << "Product:"
+ << iface.product
+ << endl
+ << " Load generic driver using:"
+ << QString("sudo modprobe usbserial vendor=0x%1 product=0x%2")
+ .arg(iface.manufacturerid, 4, 16, QChar('0'))
+ .arg(iface.productid, 4, 16, QChar('0'));
+ }
+ }
return list;
}
diff --git a/tools/runonphone/serenum_win.cpp b/tools/runonphone/serenum_win.cpp
index 572161c..070cac2 100644
--- a/tools/runonphone/serenum_win.cpp
+++ b/tools/runonphone/serenum_win.cpp
@@ -53,7 +53,7 @@
//{4d36e978-e325-11ce-bfc1-08002be10318}
//DEFINE_GUID(GUID_DEVCLASS_PORTS, 0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18 );
-QList<SerialPortId> enumerateSerialPorts()
+QList<SerialPortId> enumerateSerialPorts(int)
{
DWORD index=0;
SP_DEVINFO_DATA info;
diff --git a/tools/runonphone/symbianutils/json.cpp b/tools/runonphone/symbianutils/json.cpp
new file mode 100644
index 0000000..2d58824
--- /dev/null
+++ b/tools/runonphone/symbianutils/json.cpp
@@ -0,0 +1,490 @@
+/****************************************************************************
+**
+** 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 tools applications 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 "json.h"
+
+#ifdef TODO_USE_CREATOR
+#include <utils/qtcassert.h>
+#endif // TODO_USE_CREATOR
+
+#include <QtCore/QByteArray>
+#include <QtCore/QTextStream>
+#include <QtCore/QDebug>
+#include <QtCore/QStringList>
+
+#include <ctype.h>
+
+//#define DEBUG_JASON
+#ifdef DEBUG_JASON
+#define JDEBUG(s) qDebug() << s
+#else
+#define JDEBUG(s)
+#endif
+
+namespace tcftrk {
+
+static void skipSpaces(const char *&from, const char *to)
+{
+ while (from != to && isspace(*from))
+ ++from;
+}
+
+QTextStream &operator<<(QTextStream &os, const JsonValue &mi)
+{
+ return os << mi.toString();
+}
+
+void JsonValue::parsePair(const char *&from, const char *to)
+{
+ skipSpaces(from, to);
+ JDEBUG("parsePair: " << QByteArray(from, to - from));
+ m_name = parseCString(from, to);
+ skipSpaces(from, to);
+ while (from < to && *from != ':') {
+ JDEBUG("not a colon" << *from);
+ ++from;
+ }
+ ++from;
+ parseValue(from, to);
+ skipSpaces(from, to);
+}
+
+QByteArray JsonValue::parseNumber(const char *&from, const char *to)
+{
+ QByteArray result;
+ if (from < to && *from == '-') // Leading '-'.
+ result.append(*from++);
+ while (from < to && *from >= '0' && *from <= '9')
+ result.append(*from++);
+ return result;
+}
+
+QByteArray JsonValue::parseCString(const char *&from, const char *to)
+{
+ QByteArray result;
+ JDEBUG("parseCString: " << QByteArray(from, to - from));
+ if (*from != '"') {
+ qDebug() << "JSON Parse Error, double quote expected";
+ ++from; // So we don't hang
+ return QByteArray();
+ }
+ const char *ptr = from;
+ ++ptr;
+ while (ptr < to) {
+ if (*ptr == '"') {
+ ++ptr;
+ result = QByteArray(from + 1, ptr - from - 2);
+ break;
+ }
+ if (*ptr == '\\') {
+ ++ptr;
+ if (ptr == to) {
+ qDebug() << "JSON Parse Error, unterminated backslash escape";
+ from = ptr; // So we don't hang
+ return QByteArray();
+ }
+ }
+ ++ptr;
+ }
+ from = ptr;
+
+ int idx = result.indexOf('\\');
+ if (idx >= 0) {
+ char *dst = result.data() + idx;
+ const char *src = dst + 1, *end = result.data() + result.length();
+ do {
+ char c = *src++;
+ switch (c) {
+ case 'a': *dst++ = '\a'; break;
+ case 'b': *dst++ = '\b'; break;
+ case 'f': *dst++ = '\f'; break;
+ case 'n': *dst++ = '\n'; break;
+ case 'r': *dst++ = '\r'; break;
+ case 't': *dst++ = '\t'; break;
+ case 'v': *dst++ = '\v'; break;
+ case '"': *dst++ = '"'; break;
+ case '\\': *dst++ = '\\'; break;
+ default:
+ {
+ int chars = 0;
+ uchar prod = 0;
+ forever {
+ if (c < '0' || c > '7') {
+ --src;
+ break;
+ }
+ prod = prod * 8 + c - '0';
+ if (++chars == 3 || src == end)
+ break;
+ c = *src++;
+ }
+ if (!chars) {
+ qDebug() << "JSON Parse Error, unrecognized backslash escape";
+ return QByteArray();
+ }
+ *dst++ = prod;
+ }
+ }
+ while (src != end) {
+ char c = *src++;
+ if (c == '\\')
+ break;
+ *dst++ = c;
+ }
+ } while (src != end);
+ *dst = 0;
+ result.truncate(dst - result.data());
+ }
+
+ JDEBUG("parseCString, got " << result);
+ return result;
+}
+
+
+
+void JsonValue::parseValue(const char *&from, const char *to)
+{
+ JDEBUG("parseValue: " << QByteArray(from, to - from));
+ switch (*from) {
+ case '{':
+ parseObject(from, to);
+ break;
+ case 't':
+ if (to - from >= 4 && qstrncmp(from, "true", 4) == 0) {
+ m_data = QByteArray(from, 4);
+ from += m_data.size();
+ m_type = Boolean;
+ }
+ break;
+ case 'f':
+ if (to - from >= 5 && qstrncmp(from, "false", 5) == 0) {
+ m_data = QByteArray(from, 5);
+ from += m_data.size();
+ m_type = Boolean;
+ }
+ break;
+ case 'n':
+ if (to - from >= 4 && qstrncmp(from, "null", 4) == 0) {
+ m_data = QByteArray(from, 4);
+ from += m_data.size();
+ m_type = NullObject;
+ }
+ break;
+ case '[':
+ parseArray(from, to);
+ break;
+ case '"':
+ m_type = String;
+ m_data = parseCString(from, to);
+ break;
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ case '-':
+ m_type = Number;
+ m_data = parseNumber(from, to);
+ default:
+ break;
+ }
+}
+
+void JsonValue::parseObject(const char *&from, const char *to)
+{
+ JDEBUG("parseObject: " << QByteArray(from, to - from));
+#ifdef TODO_USE_CREATOR
+ QTC_ASSERT(*from == '{', /**/);
+#endif
+ ++from;
+ m_type = Object;
+ while (from < to) {
+ if (*from == '}') {
+ ++from;
+ break;
+ }
+ JsonValue child;
+ child.parsePair(from, to);
+ if (!child.isValid())
+ return;
+ m_children += child;
+ if (*from == ',')
+ ++from;
+ }
+}
+
+void JsonValue::parseArray(const char *&from, const char *to)
+{
+ JDEBUG("parseArray: " << QByteArray(from, to - from));
+#ifdef TODO_USE_CREATOR
+ QTC_ASSERT(*from == '[', /**/);
+#endif
+ ++from;
+ m_type = Array;
+ while (from < to) {
+ if (*from == ']') {
+ ++from;
+ break;
+ }
+ JsonValue child;
+ child.parseValue(from, to);
+ if (child.isValid())
+ m_children += child;
+ if (*from == ',')
+ ++from;
+ }
+}
+
+void JsonValue::setStreamOutput(const QByteArray &name, const QByteArray &content)
+{
+ if (content.isEmpty())
+ return;
+ JsonValue child;
+ child.m_type = String;
+ child.m_name = name;
+ child.m_data = content;
+ m_children += child;
+ if (m_type == Invalid)
+ m_type = Object;
+}
+
+static QByteArray ind(int indent)
+{
+ return QByteArray(2 * indent, ' ');
+}
+
+void JsonValue::dumpChildren(QByteArray * str, bool multiline, int indent) const
+{
+ for (int i = 0; i < m_children.size(); ++i) {
+ if (i != 0) {
+ *str += ',';
+ if (multiline)
+ *str += '\n';
+ }
+ if (multiline)
+ *str += ind(indent);
+ *str += m_children.at(i).toString(multiline, indent);
+ }
+}
+
+class MyString : public QString {
+public:
+ ushort at(int i) const { return constData()[i].unicode(); }
+};
+
+template<class ST, typename CT>
+inline ST escapeCStringTpl(const ST &ba)
+{
+ ST ret;
+ ret.reserve(ba.length() * 2);
+ for (int i = 0; i < ba.length(); ++i) {
+ CT c = ba.at(i);
+ switch (c) {
+ case '\\': ret += "\\\\"; break;
+ case '\a': ret += "\\a"; break;
+ case '\b': ret += "\\b"; break;
+ case '\f': ret += "\\f"; break;
+ case '\n': ret += "\\n"; break;
+ case '\r': ret += "\\r"; break;
+ case '\t': ret += "\\t"; break;
+ case '\v': ret += "\\v"; break;
+ case '"': ret += "\\\""; break;
+ default:
+ if (c < 32 || c == 127) {
+ ret += '\\';
+ ret += '0' + (c >> 6);
+ ret += '0' + ((c >> 3) & 7);
+ ret += '0' + (c & 7);
+ } else {
+ ret += c;
+ }
+ }
+ }
+ return ret;
+}
+
+QString JsonValue::escapeCString(const QString &ba)
+{
+ return escapeCStringTpl<MyString, ushort>(static_cast<const MyString &>(ba));
+}
+
+QByteArray JsonValue::escapeCString(const QByteArray &ba)
+{
+ return escapeCStringTpl<QByteArray, uchar>(ba);
+}
+
+QByteArray JsonValue::toString(bool multiline, int indent) const
+{
+ QByteArray result;
+ switch (m_type) {
+ case Invalid:
+ if (multiline)
+ result += ind(indent) + "Invalid\n";
+ else
+ result += "Invalid";
+ break;
+ case String:
+ if (!m_name.isEmpty())
+ result += m_name + "=";
+ result += '"' + escapeCString(m_data) + '"';
+ break;
+ case Number:
+ if (!m_name.isEmpty())
+ result += '"' + m_name + "\":";
+ result += m_data;
+ break;
+ case Boolean:
+ case NullObject:
+ if (!m_name.isEmpty())
+ result += '"' + m_name + "\":";
+ result += m_data;
+ break;
+ case Object:
+ if (!m_name.isEmpty())
+ result += m_name + '=';
+ if (multiline) {
+ result += "{\n";
+ dumpChildren(&result, multiline, indent + 1);
+ result += '\n' + ind(indent) + "}";
+ } else {
+ result += "{";
+ dumpChildren(&result, multiline, indent + 1);
+ result += "}";
+ }
+ break;
+ case Array:
+ if (!m_name.isEmpty())
+ result += m_name + "=";
+ if (multiline) {
+ result += "[\n";
+ dumpChildren(&result, multiline, indent + 1);
+ result += '\n' + ind(indent) + "]";
+ } else {
+ result += "[";
+ dumpChildren(&result, multiline, indent + 1);
+ result += "]";
+ }
+ break;
+ }
+ return result;
+}
+
+void JsonValue::fromString(const QByteArray &ba)
+{
+ const char *from = ba.constBegin();
+ const char *to = ba.constEnd();
+ parseValue(from, to);
+}
+
+JsonValue JsonValue::findChild(const char *name) const
+{
+ for (int i = 0; i < m_children.size(); ++i)
+ if (m_children.at(i).m_name == name)
+ return m_children.at(i);
+ return JsonValue();
+}
+
+void JsonInputStream::appendCString(const char *s)
+{
+ m_target.append('"');
+ for (const char *p = s; *p; p++) {
+ if (*p == '"' || *p == '\\')
+ m_target.append('\\');
+ m_target.append(*p);
+ }
+ m_target.append('"');
+}
+
+void JsonInputStream::appendString(const QString &in)
+{
+ if (in.isEmpty()) {
+ m_target.append("\"\"");
+ return;
+ }
+
+ const QChar doubleQuote('"');
+ const QChar backSlash('\\');
+ QString rc;
+ const int inSize = in.size();
+ rc.reserve(in.size() + 5);
+ rc.append(doubleQuote);
+ for (int i = 0; i < inSize; i++) {
+ const QChar c = in.at(i);
+ if (c == doubleQuote || c == backSlash)
+ rc.append(backSlash);
+ rc.append(c);
+ }
+ rc.append(doubleQuote);
+ m_target.append(rc.toUtf8());
+ return;
+}
+
+JsonInputStream &JsonInputStream::operator<<(const QStringList &in)
+{
+ m_target.append('[');
+ const int count = in.size();
+ for (int i = 0 ; i < count; i++) {
+ if (i)
+ m_target.append(',');
+ appendString(in.at(i));
+ }
+ m_target.append(']');
+ return *this;
+}
+
+JsonInputStream &JsonInputStream::operator<<(const QVector<QByteArray> &ba)
+{
+ m_target.append('[');
+ const int count = ba.size();
+ for (int i = 0 ; i < count; i++) {
+ if (i)
+ m_target.append(',');
+ appendCString(ba.at(i).constData());
+ }
+ m_target.append(']');
+ return *this;
+}
+
+JsonInputStream &JsonInputStream::operator<<(bool b)
+{
+ m_target.append(b ? "true" : "false");
+ return *this;
+}
+
+} // namespace tcftrk
+
diff --git a/tools/runonphone/symbianutils/json.h b/tools/runonphone/symbianutils/json.h
new file mode 100644
index 0000000..ffcb7ab
--- /dev/null
+++ b/tools/runonphone/symbianutils/json.h
@@ -0,0 +1,149 @@
+/****************************************************************************
+**
+** 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 tools applications 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 SYMBIANUTILS_JSON_H
+#define SYMBIANUTILS_JSON_H
+
+#include "symbianutils_global.h"
+
+#include <QtCore/QByteArray>
+#include <QtCore/QStringList>
+#include <QtCore/QVector>
+
+namespace tcftrk {
+
+class SYMBIANUTILS_EXPORT JsonValue
+{
+public:
+ JsonValue() : m_type(Invalid) {}
+ explicit JsonValue(const QByteArray &str) { fromString(str); }
+
+ QByteArray m_name;
+ QByteArray m_data;
+ QList<JsonValue> m_children;
+
+ enum Type {
+ Invalid,
+ String,
+ Number,
+ Boolean,
+ Object,
+ NullObject,
+ Array,
+ };
+
+ Type m_type;
+
+ inline Type type() const { return m_type; }
+ inline QByteArray name() const { return m_name; }
+ inline bool hasName(const char *name) const { return m_name == name; }
+
+ inline bool isValid() const { return m_type != Invalid; }
+ inline bool isNumber() const { return m_type == Number; }
+ inline bool isString() const { return m_type == String; }
+ inline bool isObject() const { return m_type == Object; }
+ inline bool isArray() const { return m_type == Array; }
+
+
+ inline QByteArray data() const { return m_data; }
+ inline const QList<JsonValue> &children() const { return m_children; }
+ inline int childCount() const { return m_children.size(); }
+
+ const JsonValue &childAt(int index) const { return m_children[index]; }
+ JsonValue &childAt(int index) { return m_children[index]; }
+ JsonValue findChild(const char *name) const;
+
+ QByteArray toString(bool multiline = false, int indent = 0) const;
+ void fromString(const QByteArray &str);
+ void setStreamOutput(const QByteArray &name, const QByteArray &content);
+
+private:
+ static QByteArray parseCString(const char *&from, const char *to);
+ static QByteArray parseNumber(const char *&from, const char *to);
+ static QByteArray escapeCString(const QByteArray &ba);
+ static QString escapeCString(const QString &ba);
+ void parsePair(const char *&from, const char *to);
+ void parseValue(const char *&from, const char *to);
+ void parseObject(const char *&from, const char *to);
+ void parseArray(const char *&from, const char *to);
+
+ void dumpChildren(QByteArray *str, bool multiline, int indent) const;
+};
+
+/* Thin wrapper around QByteArray for formatting JSON input. Use as in:
+ * JsonInputStream(byteArray) << '{' << "bla" << ':' << "blup" << '}';
+ * Note that strings get double quotes and JSON-escaping, characters should be
+ * used for the array/hash delimiters.
+ * */
+class SYMBIANUTILS_EXPORT JsonInputStream {
+public:
+ explicit JsonInputStream(QByteArray &a) : m_target(a) {}
+
+ JsonInputStream &operator<<(char c) { m_target.append(c); return *this; }
+ JsonInputStream &operator<<(const char *c) { appendCString(c); return *this; }
+ JsonInputStream &operator<<(const QByteArray &a) { appendCString(a.constData()); return *this; }
+ JsonInputStream &operator<<(const QString &c) { appendString(c); return *this; }
+
+ // Format as array
+ JsonInputStream &operator<<(const QStringList &c);
+
+ // Format as array
+ JsonInputStream &operator<<(const QVector<QByteArray> &ba);
+
+ JsonInputStream &operator<<(bool b);
+
+ JsonInputStream &operator<<(int i)
+ { m_target.append(QByteArray::number(i)); return *this; }
+ JsonInputStream &operator<<(unsigned i)
+ { m_target.append(QByteArray::number(i)); return *this; }
+ JsonInputStream &operator<<(quint64 i)
+ { m_target.append(QByteArray::number(i)); return *this; }
+
+private:
+ void appendString(const QString &);
+ void appendCString(const char *c);
+
+ QByteArray &m_target;
+};
+
+} // namespace tcftrk
+
+#endif // SYMBIANUTILS_JSON_H
diff --git a/tools/runonphone/symbianutils/launcher.cpp b/tools/runonphone/symbianutils/launcher.cpp
index ecb067e..ee87480 100644
--- a/tools/runonphone/symbianutils/launcher.cpp
+++ b/tools/runonphone/symbianutils/launcher.cpp
@@ -58,6 +58,33 @@
namespace trk {
+struct CrashReportState {
+ CrashReportState();
+ void clear();
+
+ typedef uint Thread;
+ typedef QList<Thread> Threads;
+ Threads threads;
+
+ QList<uint> registers;
+ QByteArray stack;
+ uint sp;
+ uint fetchingStackPID;
+ uint fetchingStackTID;
+};
+
+CrashReportState::CrashReportState()
+{
+ clear();
+}
+
+void CrashReportState::clear()
+{
+ threads.clear();
+ stack.clear();
+ sp = fetchingStackPID = fetchingStackTID = 0;
+}
+
struct LauncherPrivate {
struct CopyState {
QString sourceFileName;
@@ -86,6 +113,7 @@ struct LauncherPrivate {
int m_verbose;
Launcher::Actions m_startupActions;
bool m_closeDevice;
+ CrashReportState m_crashReportState;
};
LauncherPrivate::LauncherPrivate(const TrkDevicePtr &d) :
@@ -202,6 +230,7 @@ void Launcher::setCloseDevice(bool c)
bool Launcher::startServer(QString *errorMessage)
{
errorMessage->clear();
+ d->m_crashReportState.clear();
if (d->m_verbose) {
QString msg;
QTextStream str(&msg);
@@ -375,7 +404,7 @@ void Launcher::handleResult(const TrkResult &result)
logMessage("TEXT TRACE: " + msg);
}
} else {
- logMessage("APPLICATION OUTPUT: " + result.data);
+ logMessage("APPLICATION OUTPUT: " + stringFromArray(result.data));
msg = result.data;
}
msg.replace("\r\n", "\n");
@@ -416,49 +445,54 @@ void Launcher::handleResult(const TrkResult &result)
// target->host OS notification
case TrkNotifyCreated: { // Notify Created
- /*
- const char *data = result.data.data();
- byte error = result.data.at(0);
- byte type = result.data.at(1); // type: 1 byte; for dll item, this value is 2.
- uint pid = extractInt(data + 2); // ProcessID: 4 bytes;
- uint tid = extractInt(data + 6); //threadID: 4 bytes
- uint codeseg = extractInt(data + 10); //code address: 4 bytes; code base address for the library
- uint dataseg = extractInt(data + 14); //data address: 4 bytes; data base address for the library
- uint len = extractShort(data + 18); //length: 2 bytes; length of the library name string to follow
- QByteArray name = result.data.mid(20, len); // name: library name
-
- logMessage(prefix + "NOTE: LIBRARY LOAD: " + str);
- logMessage(prefix + "TOKEN: " + result.token);
- logMessage(prefix + "ERROR: " + int(error));
- logMessage(prefix + "TYPE: " + int(type));
- logMessage(prefix + "PID: " + pid);
- logMessage(prefix + "TID: " + tid);
- logMessage(prefix + "CODE: " + codeseg);
- logMessage(prefix + "DATA: " + dataseg);
- logMessage(prefix + "LEN: " + len);
- logMessage(prefix + "NAME: " + name);
- */
if (result.data.size() < 10)
break;
+ const char *data = result.data.constData();
+ const byte error = result.data.at(0);
+ Q_UNUSED(error)
+ const byte type = result.data.at(1); // type: 1 byte; for dll item, this value is 2.
+ const uint tid = extractInt(data + 6); //threadID: 4 bytes
+ Q_UNUSED(tid)
+ if (type == kDSOSDLLItem && result.data.size() >=20) {
+ const Library lib = Library(result);
+ d->m_session.libraries.push_back(lib);
+ emit libraryLoaded(lib);
+ }
QByteArray ba;
ba.append(result.data.mid(2, 8));
d->m_device->sendTrkMessage(TrkContinue, TrkCallback(), ba, "CONTINUE");
- //d->m_device->sendTrkAck(result.token)
break;
}
case TrkNotifyDeleted: { // NotifyDeleted
const ushort itemType = (unsigned char)result.data.at(1);
- const ushort len = result.data.size() > 12 ? extractShort(result.data.data() + 10) : ushort(0);
+ const uint pid = result.data.size() >= 6 ? extractShort(result.data.constData() + 2) : 0;
+ const uint tid = result.data.size() >= 10 ? extractShort(result.data.constData() + 6) : 0;
+ Q_UNUSED(tid)
+ const ushort len = result.data.size() > 12 ? extractShort(result.data.constData() + 10) : ushort(0);
const QString name = len ? QString::fromAscii(result.data.mid(12, len)) : QString();
logMessage(QString::fromLatin1("%1 %2 UNLOAD: %3").
arg(QString::fromAscii(prefix)).arg(itemType ? QLatin1String("LIB") : QLatin1String("PROCESS")).
arg(name));
d->m_device->sendTrkAck(result.token);
- if (itemType == 0 // process
+ if (itemType == kDSOSProcessItem // process
&& result.data.size() >= 10
&& d->m_session.pid == extractInt(result.data.data() + 6)) {
- copyFileFromRemote();
+ if (d->m_startupActions & ActionDownload)
+ copyFileFromRemote();
+ else
+ disconnectTrk();
+ }
+ else if (itemType == kDSOSDLLItem && len) {
+ // Remove libraries of process.
+ for (QList<Library>::iterator it = d->m_session.libraries.begin(); it != d->m_session.libraries.end(); ) {
+ if ((*it).pid == pid && (*it).name == name) {
+ emit libraryUnloaded(*it);
+ it = d->m_session.libraries.erase(it);
+ } else {
+ ++it;
+ }
+ }
}
break;
}
@@ -705,6 +739,15 @@ void Launcher::handleCreateProcess(const TrkResult &result)
logMessage(msg);
}
emit applicationRunning(d->m_session.pid);
+ //create a "library" entry for the executable which launched the process
+ Library lib;
+ lib.pid = d->m_session.pid;
+ lib.codeseg = d->m_session.codeseg;
+ lib.dataseg = d->m_session.dataseg;
+ lib.name = d->m_fileName.toUtf8();
+ d->m_session.libraries << lib;
+ emit libraryLoaded(lib);
+
QByteArray ba;
appendInt(&ba, d->m_session.pid);
appendInt(&ba, d->m_session.tid);
@@ -856,6 +899,30 @@ QByteArray Launcher::startProcessMessage(const QString &executable,
return ba;
}
+QByteArray Launcher::readMemoryMessage(uint pid, uint tid, uint from, uint len)
+{
+ QByteArray ba;
+ ba.reserve(11);
+ ba.append(char(0x8)); // Options, FIXME: why?
+ appendShort(&ba, len);
+ appendInt(&ba, from);
+ appendInt(&ba, pid);
+ appendInt(&ba, tid);
+ return ba;
+}
+
+QByteArray Launcher::readRegistersMessage(uint pid, uint tid)
+{
+ QByteArray ba;
+ ba.reserve(15);
+ ba.append(char(0)); // Register set, only 0 supported
+ appendShort(&ba, 0); //R0
+ appendShort(&ba, 16); // last register CPSR
+ appendInt(&ba, pid);
+ appendInt(&ba, tid);
+ return ba;
+}
+
void Launcher::startInferiorIfNeeded()
{
emit startingApplication();
@@ -907,4 +974,63 @@ void Launcher::releaseToDeviceManager(Launcher *launcher)
sdm->releaseDevice(launcher->trkServerName());
}
+void Launcher::getRegistersAndCallStack(uint pid, uint tid)
+{
+ d->m_device->sendTrkMessage(TrkReadRegisters,
+ TrkCallback(this, &Launcher::handleReadRegisters),
+ Launcher::readRegistersMessage(pid, tid));
+ d->m_crashReportState.fetchingStackPID = pid;
+ d->m_crashReportState.fetchingStackTID = tid;
+}
+
+void Launcher::handleReadRegisters(const TrkResult &result)
+{
+ if(result.errorCode() || result.data.size() < (17*4)) {
+ terminate();
+ return;
+ }
+ const char* data = result.data.constData() + 1;
+ d->m_crashReportState.registers.clear();
+ d->m_crashReportState.stack.clear();
+ for (int i=0;i<17;i++) {
+ uint r = extractInt(data);
+ data += 4;
+ d->m_crashReportState.registers.append(r);
+ }
+ d->m_crashReportState.sp = d->m_crashReportState.registers.at(13);
+
+ const ushort len = 1024 - (d->m_crashReportState.sp % 1024); //read to 1k boundary first
+ const QByteArray ba = Launcher::readMemoryMessage(d->m_crashReportState.fetchingStackPID,
+ d->m_crashReportState.fetchingStackTID,
+ d->m_crashReportState.sp,
+ len);
+ d->m_device->sendTrkMessage(TrkReadMemory, TrkCallback(this, &Launcher::handleReadStack), ba);
+ d->m_crashReportState.sp += len;
+}
+
+void Launcher::handleReadStack(const TrkResult &result)
+{
+ if (result.errorCode()) {
+ //error implies memory fault when reaching end of stack
+ emit registersAndCallStackReadComplete(d->m_crashReportState.registers, d->m_crashReportState.stack);
+ return;
+ }
+
+ const uint len = extractShort(result.data.constData() + 1);
+ d->m_crashReportState.stack.append(result.data.mid(3, len));
+
+ if (d->m_crashReportState.sp - d->m_crashReportState.registers.at(13) > 0x10000) {
+ //read enough stack, stop here
+ emit registersAndCallStackReadComplete(d->m_crashReportState.registers, d->m_crashReportState.stack);
+ return;
+ }
+ //read 1k more
+ const QByteArray ba = Launcher::readMemoryMessage(d->m_crashReportState.fetchingStackPID,
+ d->m_crashReportState.fetchingStackTID,
+ d->m_crashReportState.sp,
+ 1024);
+ d->m_device->sendTrkMessage(TrkReadMemory, TrkCallback(this, &Launcher::handleReadStack), ba);
+ d->m_crashReportState.sp += 1024;
+}
+
} // namespace trk
diff --git a/tools/runonphone/symbianutils/launcher.h b/tools/runonphone/symbianutils/launcher.h
index 6db69d0..230a122 100644
--- a/tools/runonphone/symbianutils/launcher.h
+++ b/tools/runonphone/symbianutils/launcher.h
@@ -43,6 +43,7 @@
#define LAUNCHER_H
#include "trkdevice.h"
+#include "trkutils.h"
#include <QtCore/QObject>
#include <QtCore/QVariant>
@@ -122,6 +123,9 @@ public:
// Create Trk message to start a process.
static QByteArray startProcessMessage(const QString &executable,
const QStringList &arguments);
+ // Create Trk message to read memory
+ static QByteArray readMemoryMessage(uint pid, uint tid, uint from, uint len);
+ static QByteArray readRegistersMessage(uint pid, uint tid);
// Parse a TrkNotifyStopped message
static bool parseNotifyStopped(const QByteArray &a,
uint *pid, uint *tid, uint *address,
@@ -149,12 +153,18 @@ signals:
void copyProgress(int percent);
void stateChanged(int);
void processStopped(uint pc, uint pid, uint tid, const QString& reason);
+ void processResumed(uint pid, uint tid);
+ void libraryLoaded(const trk::Library &lib);
+ void libraryUnloaded(const trk::Library &lib);
+ void registersAndCallStackReadComplete(const QList<uint>& registers, const QByteArray& stack);
// Emitted by the destructor, for releasing devices of SymbianDeviceManager by name
void destroyed(const QString &serverName);
public slots:
void terminate();
void resumeProcess(uint pid, uint tid);
+ //can be used to obtain traceback after a breakpoint / exception
+ void getRegistersAndCallStack(uint pid, uint tid);
private slots:
void handleResult(const trk::TrkResult &data);
@@ -182,6 +192,8 @@ private:
void handleStop(const TrkResult &result);
void handleSupportMask(const TrkResult &result);
void handleTrkVersion(const TrkResult &result);
+ void handleReadRegisters(const TrkResult &result);
+ void handleReadStack(const TrkResult &result);
void copyFileToRemote();
void copyFileFromRemote();
diff --git a/tools/runonphone/symbianutils/symbianutils.pri b/tools/runonphone/symbianutils/symbianutils.pri
index 6309517..f07e494 100644
--- a/tools/runonphone/symbianutils/symbianutils.pri
+++ b/tools/runonphone/symbianutils/symbianutils.pri
@@ -1,5 +1,7 @@
INCLUDEPATH *= $$PWD
+QT += network
+
# Input
HEADERS += $$PWD/symbianutils_global.h \
$$PWD/callback.h \
@@ -9,14 +11,20 @@ HEADERS += $$PWD/symbianutils_global.h \
$$PWD/launcher.h \
$$PWD/bluetoothlistener.h \
$$PWD/communicationstarter.h \
- $$PWD/symbiandevicemanager.h
+ $$PWD/symbiandevicemanager.h \
+ $$PWD/tcftrkdevice.h \
+ $$PWD/tcftrkmessage.h \
+ $$PWD/json.h
SOURCES += $$PWD/trkutils.cpp \
$$PWD/trkdevice.cpp \
$$PWD/launcher.cpp \
$$PWD/bluetoothlistener.cpp \
$$PWD/communicationstarter.cpp \
- $$PWD/symbiandevicemanager.cpp
+ $$PWD/symbiandevicemanager.cpp \
+ $$PWD/tcftrkdevice.cpp \
+ $$PWD/tcftrkmessage.cpp \
+ $$PWD/json.cpp
# Tests/trklauncher is a console application
contains(QT, gui) {
diff --git a/tools/runonphone/symbianutils/tcftrkdevice.cpp b/tools/runonphone/symbianutils/tcftrkdevice.cpp
new file mode 100644
index 0000000..50e3937
--- /dev/null
+++ b/tools/runonphone/symbianutils/tcftrkdevice.cpp
@@ -0,0 +1,929 @@
+/****************************************************************************
+**
+** 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 tools applications 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 "tcftrkdevice.h"
+#include "json.h"
+
+#include <QtNetwork/QAbstractSocket>
+#include <QtCore/QDebug>
+#include <QtCore/QVector>
+#include <QtCore/QQueue>
+#include <QtCore/QTextStream>
+#include <QtCore/QDateTime>
+#include <QtCore/QFileInfo>
+
+enum { debug = 0 };
+
+static const char messageTerminatorC[] = "\003\001";
+
+namespace tcftrk {
+// ------------- TcfTrkCommandError
+
+TcfTrkCommandError::TcfTrkCommandError() : timeMS(0), code(0), alternativeCode(0)
+{
+}
+
+void TcfTrkCommandError::clear()
+{
+ timeMS = 0;
+ code = alternativeCode = 0;
+ format.clear();
+ alternativeOrganization.clear();
+}
+
+void TcfTrkCommandError::write(QTextStream &str) const
+{
+ if (timeMS) {
+ const QDateTime time(QDate(1970, 1, 1));
+ str << time.addMSecs(timeMS).toString(Qt::ISODate) << ": Error code: " << code
+ << " '" << format << '\'';
+ if (!alternativeOrganization.isEmpty())
+ str << " ('" << alternativeOrganization << "', code: " << alternativeCode << ')';
+ } else{
+ str << "<No error>";
+ }
+}
+
+QString TcfTrkCommandError::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ write(str);
+ return rc;
+}
+
+/* {"Time":1277459762255,"Code":1,"AltCode":-6,"AltOrg":"POSIX","Format":"Unknown error: -6"} */
+bool TcfTrkCommandError::parse(const QVector<JsonValue> &values)
+{
+ // Parse an arbitrary hash (that could as well be a command response)
+ // and check for error elements.
+ unsigned errorKeyCount = 0;
+ clear();
+ do {
+ if (values.isEmpty() || values.front().type() != JsonValue::Object)
+ break;
+ foreach (const JsonValue &c, values.front().children()) {
+ if (c.name() == "Time") {
+ timeMS = c.data().toULongLong();
+ errorKeyCount++;
+ } else if (c.name() == "Code") {
+ code = c.data().toInt();
+ errorKeyCount++;
+ } else if (c.name() == "Format") {
+ format = c.data();
+ errorKeyCount++;
+ } else if (c.name() == "AltCode") {
+ alternativeCode = c.data().toInt();
+ errorKeyCount++;
+ } else if (c.name() == "AltOrg") {
+ alternativeOrganization = c.data();
+ errorKeyCount++;
+ }
+ }
+ } while (false);
+ const bool errorFound = errorKeyCount >= 2u; // Should be at least 'Time', 'Code'.
+ if (!errorFound)
+ clear();
+ if (debug) {
+ qDebug() << "TcfTrkCommandError::parse: Found error: " << errorFound;
+ if (!values.isEmpty())
+ qDebug() << values.front().toString();
+ }
+ return errorFound;
+}
+
+// ------------ TcfTrkCommandResult
+
+TcfTrkCommandResult::TcfTrkCommandResult(Type t) :
+ type(t), service(LocatorService)
+{
+}
+
+TcfTrkCommandResult::TcfTrkCommandResult(char typeChar, Services s,
+ const QByteArray &r,
+ const QVector<JsonValue> &v,
+ const QVariant &ck) :
+ type(FailReply), service(s), request(r), values(v), cookie(ck)
+{
+ switch (typeChar) {
+ case 'N':
+ type = FailReply;
+ break;
+ case 'P':
+ type = ProgressReply;
+ break;
+ case 'R':
+ type = commandError.parse(values) ? CommandErrorReply : SuccessReply;
+ break;
+ default:
+ qWarning("Unknown TCF reply type '%c'", typeChar);
+ }
+}
+
+QString TcfTrkCommandResult::errorString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+
+ switch (type) {
+ case SuccessReply:
+ case ProgressReply:
+ str << "<No error>";
+ return rc;
+ case FailReply:
+ str << "NAK";
+ case CommandErrorReply:
+ commandError.write(str);
+ break;
+ }
+ // Append the failed command for reference
+ str << " (Command was: '";
+ QByteArray printableRequest = request;
+ printableRequest.replace('\0', '|');
+ str << printableRequest << "')";
+ return rc;
+}
+
+QString TcfTrkCommandResult::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ str << "Command answer ";
+ switch (type) {
+ case SuccessReply:
+ str << "[success]";
+ break;
+ case CommandErrorReply:
+ str << "[command error]";
+ break;
+ case FailReply:
+ str << "[fail (NAK)]";
+ break;
+ case ProgressReply:
+ str << "[progress]";
+ break;
+ }
+ str << ", " << values.size() << " values(s) to request: '";
+ QByteArray printableRequest = request;
+ printableRequest.replace('\0', '|');
+ str << printableRequest << "' ";
+ if (cookie.isValid())
+ str << " cookie: " << cookie.toString();
+ str << '\n';
+ for (int i = 0, count = values.size(); i < count; i++)
+ str << '#' << i << ' ' << values.at(i).toString() << '\n';
+ if (type == CommandErrorReply)
+ str << "Error: " << errorString();
+ return rc;
+}
+
+struct TcfTrkSendQueueEntry
+{
+ typedef TcfTrkDevice::MessageType MessageType;
+
+ explicit TcfTrkSendQueueEntry(MessageType mt,
+ int tok,
+ Services s,
+ const QByteArray &d,
+ const TcfTrkCallback &cb= TcfTrkCallback(),
+ const QVariant &ck = QVariant()) :
+ messageType(mt), service(s), data(d), token(tok), cookie(ck), callback(cb) {}
+
+ MessageType messageType;
+ Services service;
+ QByteArray data;
+ int token;
+ QVariant cookie;
+ TcfTrkCallback callback;
+};
+
+struct TcfTrkDevicePrivate {
+ typedef TcfTrkDevice::IODevicePtr IODevicePtr;
+ typedef QHash<int, TcfTrkSendQueueEntry> TokenWrittenMessageMap;
+
+ TcfTrkDevicePrivate();
+
+ const QByteArray m_messageTerminator;
+
+ IODevicePtr m_device;
+ unsigned m_verbose;
+ QByteArray m_readBuffer;
+ int m_token;
+ QQueue<TcfTrkSendQueueEntry> m_sendQueue;
+ TokenWrittenMessageMap m_writtenMessages;
+ QVector<QByteArray> m_registerNames;
+};
+
+TcfTrkDevicePrivate::TcfTrkDevicePrivate() :
+ m_messageTerminator(messageTerminatorC),
+ m_verbose(0), m_token(0)
+{
+}
+
+TcfTrkDevice::TcfTrkDevice(QObject *parent) :
+ QObject(parent), d(new TcfTrkDevicePrivate)
+{
+}
+
+TcfTrkDevice::~TcfTrkDevice()
+{
+ delete d;
+}
+
+QVector<QByteArray> TcfTrkDevice::registerNames() const
+{
+ return d->m_registerNames;
+}
+
+void TcfTrkDevice::setRegisterNames(const QVector<QByteArray>& n)
+{
+ d->m_registerNames = n;
+ if (d->m_verbose) {
+ QString msg;
+ QTextStream str(&msg);
+ const int count = n.size();
+ str << "Registers (" << count << "): ";
+ for (int i = 0; i < count; i++)
+ str << '#' << i << '=' << n.at(i) << ' ';
+ emitLogMessage(msg);
+ }
+}
+
+TcfTrkDevice::IODevicePtr TcfTrkDevice::device() const
+{
+ return d->m_device;
+}
+
+TcfTrkDevice::IODevicePtr TcfTrkDevice::takeDevice()
+{
+ const IODevicePtr old = d->m_device;
+ if (!old.isNull()) {
+ old.data()->disconnect(this);
+ d->m_device = IODevicePtr();
+ }
+ d->m_readBuffer.clear();
+ d->m_token = 0;
+ d->m_sendQueue.clear();
+ return old;
+}
+
+void TcfTrkDevice::setDevice(const IODevicePtr &dp)
+{
+ if (dp.data() == d->m_device.data())
+ return;
+ if (dp.isNull()) {
+ emitLogMessage(QLatin1String("Internal error: Attempt to set NULL device."));
+ return;
+ }
+ takeDevice();
+ d->m_device = dp;
+ connect(dp.data(), SIGNAL(readyRead()), this, SLOT(slotDeviceReadyRead()));
+ if (QAbstractSocket *s = qobject_cast<QAbstractSocket *>(dp.data())) {
+ connect(s, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotDeviceError()));
+ connect(s, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(slotDeviceSocketStateChanged()));
+ }
+}
+
+void TcfTrkDevice::slotDeviceError()
+{
+ const QString message = d->m_device->errorString();
+ emitLogMessage(message);
+ emit error(message);
+}
+
+void TcfTrkDevice::slotDeviceSocketStateChanged()
+{
+ if (const QAbstractSocket *s = qobject_cast<const QAbstractSocket *>(d->m_device.data())) {
+ const QAbstractSocket::SocketState st = s->state();
+ switch (st) {
+ case QAbstractSocket::UnconnectedState:
+ emitLogMessage(QLatin1String("Unconnected"));
+ break;
+ case QAbstractSocket::HostLookupState:
+ emitLogMessage(QLatin1String("HostLookupState"));
+ break;
+ case QAbstractSocket::ConnectingState:
+ emitLogMessage(QLatin1String("Connecting"));
+ break;
+ case QAbstractSocket::ConnectedState:
+ emitLogMessage(QLatin1String("Connected"));
+ break;
+ case QAbstractSocket::ClosingState:
+ emitLogMessage(QLatin1String("Closing"));
+ break;
+ default:
+ emitLogMessage(QString::fromLatin1("State %1").arg(st));
+ break;
+ }
+ }
+}
+
+static inline QString debugMessage(QByteArray message, const char *prefix = 0)
+{
+ message.replace('\0', '|');
+ const QString messageS = QString::fromLatin1(message);
+ return prefix ?
+ (QLatin1String(prefix) + messageS) : messageS;
+}
+
+void TcfTrkDevice::slotDeviceReadyRead()
+{
+ d->m_readBuffer += d->m_device->readAll();
+ // Take complete message off front of readbuffer.
+ do {
+ const int messageEndPos = d->m_readBuffer.indexOf(d->m_messageTerminator);
+ if (messageEndPos == -1)
+ break;
+ const QByteArray message = d->m_readBuffer.left(messageEndPos);
+ if (debug)
+ qDebug("Read:\n%s", qPrintable(formatData(message)));
+ if (const int errorCode = parseMessage(message)) {
+ emitLogMessage(QString::fromLatin1("Parse error %1 for: %2").arg(errorCode).arg(debugMessage(message)));
+ }
+ d->m_readBuffer.remove(0, messageEndPos + d->m_messageTerminator.size());
+ } while (!d->m_readBuffer.isEmpty());
+ checkSendQueue(); // Send off further message
+}
+
+// Split \0-terminated message into tokens, skipping the initial type character
+static inline QVector<QByteArray> splitMessage(const QByteArray &message)
+{
+ QVector<QByteArray> tokens;
+ tokens.reserve(7);
+ const int messageSize = message.size();
+ for (int pos = 2; pos < messageSize; ) {
+ const int nextPos = message.indexOf('\0', pos);
+ if (nextPos == -1)
+ break;
+ tokens.push_back(message.mid(pos, nextPos - pos));
+ pos = nextPos + 1;
+ }
+ return tokens;
+}
+
+int TcfTrkDevice::parseMessage(const QByteArray &message)
+{
+ if (d->m_verbose)
+ emitLogMessage(debugMessage(message, "TCF ->"));
+ // Special JSON parse error message or protocol format error.
+ // The port is usually closed after receiving it.
+ // "\3\2{"Time":1276096098255,"Code":3,"Format": "Protocol format error"}"
+ if (message.startsWith("\003\002")) {
+ QByteArray text = message.mid(2);
+ const QString errorMessage = QString::fromLatin1("Parse error received: %1").arg(QString::fromAscii(text));
+ emit error(errorMessage);
+ return 0;
+ }
+ if (message.size() < 4 || message.at(1) != '\0')
+ return 1;
+ // Split into tokens
+ const char type = message.at(0);
+ const QVector<QByteArray> tokens = splitMessage(message);
+ switch (type) {
+ case 'E':
+ return parseTcfEvent(tokens);
+ case 'R': // Command replies
+ case 'N':
+ case 'P':
+ return parseTcfCommandReply(type, tokens);
+ default:
+ emitLogMessage(QString::fromLatin1("Unhandled message type: %1").arg(debugMessage(message)));
+ return 756;
+ }
+ return 0;
+}
+
+int TcfTrkDevice::parseTcfCommandReply(char type, const QVector<QByteArray> &tokens)
+{
+ typedef TcfTrkDevicePrivate::TokenWrittenMessageMap::iterator TokenWrittenMessageMapIterator;
+ // Find the corresponding entry in the written messages hash.
+ const int tokenCount = tokens.size();
+ if (tokenCount < 1)
+ return 234;
+ bool tokenOk;
+ const int token = tokens.at(0).toInt(&tokenOk);
+ if (!tokenOk)
+ return 235;
+ const TokenWrittenMessageMapIterator it = d->m_writtenMessages.find(token);
+ if (it == d->m_writtenMessages.end()) {
+ qWarning("TcfTrkDevice: Internal error: token %d not found for '%s'",
+ token, qPrintable(joinByteArrays(tokens)));
+ return 236;
+ }
+ // No callback: remove entry from map, happy
+ if (!it.value().callback) {
+ d->m_writtenMessages.erase(it);
+ return 0;
+ }
+ // Parse values into JSON
+ QVector<JsonValue> values;
+ values.reserve(tokenCount);
+ for (int i = 1; i < tokenCount; i++) {
+ if (!tokens.at(i).isEmpty()) { // Strange: Empty tokens occur.
+ const JsonValue value(tokens.at(i));
+ if (value.isValid()) {
+ values.push_back(value);
+ } else {
+ qWarning("JSON parse error for reply to command token %d: #%d '%s'",
+ token, i, tokens.at(i).constData());
+ d->m_writtenMessages.erase(it);
+ return -1;
+ }
+ }
+ }
+
+ // Construct result and invoke callback, remove entry from map.
+ TcfTrkCallback callback = it.value().callback;
+ TcfTrkCommandResult result(type, it.value().service, it.value().data,
+ values, it.value().cookie);
+ d->m_writtenMessages.erase(it);
+ callback(result);
+ return 0;
+}
+
+static const char locatorAnswerC[] = "E\0Locator\0Hello\0[\"Locator\"]";
+
+int TcfTrkDevice::parseTcfEvent(const QVector<QByteArray> &tokens)
+{
+ // Event: Ignore the periodical heartbeat event, answer 'Hello',
+ // emit signal for the rest
+ if (tokens.size() < 3)
+ return 433;
+ const Services service = serviceFromName(tokens.at(0).constData());
+ if (service == LocatorService && tokens.at(1) == "peerHeartBeat")
+ return 0;
+ QVector<JsonValue> values;
+ for (int i = 2; i < tokens.size(); i++) {
+ const JsonValue value(tokens.at(i));
+ if (!value.isValid())
+ return 434;
+ values.push_back(value);
+ }
+ // Parse known events, emit signals
+ QScopedPointer<TcfTrkEvent> knownEvent(TcfTrkEvent::parseEvent(service, tokens.at(1), values));
+ if (!knownEvent.isNull()) {
+ // Answer hello event.
+ if (knownEvent->type() == TcfTrkEvent::LocatorHello)
+ writeMessage(QByteArray(locatorAnswerC, sizeof(locatorAnswerC)));
+ emit tcfEvent(*knownEvent);
+ }
+ emit genericTcfEvent(service, tokens.at(1), values);
+
+ if (debug || d->m_verbose) {
+ QString msg;
+ QTextStream str(&msg);
+ if (knownEvent.isNull()) {
+ str << "Event: " << tokens.at(0) << ' ' << tokens.at(1) << '\n';
+ foreach(const JsonValue &val, values)
+ str << " " << val.toString() << '\n';
+ } else {
+ str << knownEvent->toString();
+ }
+ emitLogMessage(msg);
+ }
+
+ return 0;
+}
+
+unsigned TcfTrkDevice::verbose() const
+{
+ return d->m_verbose;
+}
+
+void TcfTrkDevice::setVerbose(unsigned v)
+{
+ d->m_verbose = v;
+}
+
+void TcfTrkDevice::emitLogMessage(const QString &m)
+{
+ if (debug)
+ qWarning("%s", qPrintable(m));
+ emit logMessage(m);
+}
+
+bool TcfTrkDevice::checkOpen()
+{
+ if (d->m_device.isNull()) {
+ emitLogMessage(QLatin1String("Internal error: No device set on TcfTrkDevice."));
+ return false;
+ }
+ if (!d->m_device->isOpen()) {
+ emitLogMessage(QLatin1String("Internal error: Device not open in TcfTrkDevice."));
+ return false;
+ }
+ return true;
+}
+
+void TcfTrkDevice::sendTcfTrkMessage(MessageType mt, Services service, const char *command,
+ const char *commandParameters, int commandParametersLength,
+ const TcfTrkCallback &callBack,
+ const QVariant &cookie)
+
+{
+ if (!checkOpen())
+ return;
+ // Format the message
+ const int token = d->m_token++;
+ QByteArray data;
+ data.reserve(30 + commandParametersLength);
+ data.append('C');
+ data.append('\0');
+ data.append(QByteArray::number(token));
+ data.append('\0');
+ data.append(serviceName(service));
+ data.append('\0');
+ data.append(command);
+ data.append('\0');
+ if (commandParametersLength)
+ data.append(commandParameters, commandParametersLength);
+ const TcfTrkSendQueueEntry entry(mt, token, service, data, callBack, cookie);
+ d->m_sendQueue.enqueue(entry);
+ checkSendQueue();
+}
+
+void TcfTrkDevice::sendTcfTrkMessage(MessageType mt, Services service, const char *command,
+ const QByteArray &commandParameters,
+ const TcfTrkCallback &callBack,
+ const QVariant &cookie)
+{
+ sendTcfTrkMessage(mt, service, command, commandParameters.constData(), commandParameters.size(),
+ callBack, cookie);
+}
+
+// Enclose in message frame and write.
+void TcfTrkDevice::writeMessage(QByteArray data)
+{
+ if (!checkOpen())
+ return;
+
+ if (d->m_verbose)
+ emitLogMessage(debugMessage(data, "TCF <-"));
+
+ // Ensure \0-termination which easily gets lost in QByteArray CT.
+ if (!data.endsWith('\0'))
+ data.append('\0');
+ data += d->m_messageTerminator;
+
+ if (debug > 1)
+ qDebug("Writing:\n%s", qPrintable(formatData(data)));
+
+ d->m_device->write(data);
+ if (QAbstractSocket *as = qobject_cast<QAbstractSocket *>(d->m_device.data()))
+ as->flush();
+}
+
+void TcfTrkDevice::checkSendQueue()
+{
+ // Fire off messages or invoke noops until a message with reply is found
+ // and an entry to writtenMessages is made.
+ while (d->m_writtenMessages.empty()) {
+ if (d->m_sendQueue.isEmpty())
+ break;
+ TcfTrkSendQueueEntry entry = d->m_sendQueue.dequeue();
+ switch (entry.messageType) {
+ case MessageWithReply:
+ d->m_writtenMessages.insert(entry.token, entry);
+ writeMessage(entry.data);
+ break;
+ case MessageWithoutReply:
+ writeMessage(entry.data);
+ break;
+ case NoopMessage: // Invoke the noop-callback for synchronization
+ if (entry.callback) {
+ TcfTrkCommandResult noopResult(TcfTrkCommandResult::SuccessReply);
+ noopResult.cookie = entry.cookie;
+ entry.callback(noopResult);
+ }
+ break;
+ }
+ }
+}
+
+// Fix slashes
+static inline QString fixFileName(QString in)
+{
+ in.replace(QLatin1Char('/'), QLatin1Char('\\'));
+ return in;
+}
+
+// Start a process (consisting of a non-reply setSettings and start).
+void TcfTrkDevice::sendProcessStartCommand(const TcfTrkCallback &callBack,
+ const QString &binaryIn,
+ unsigned uid,
+ QStringList arguments,
+ QString workingDirectory,
+ bool debugControl,
+ const QStringList &additionalLibraries,
+ const QVariant &cookie)
+{
+ // Obtain the bin directory, expand by c:/sys/bin if missing
+ const QChar backSlash('\\');
+ int slashPos = binaryIn.lastIndexOf(QLatin1Char('/'));
+ if (slashPos == -1)
+ slashPos = binaryIn.lastIndexOf(backSlash);
+ const QString sysBin = QLatin1String("c:/sys/bin");
+ const QString binaryFileName = slashPos == -1 ? binaryIn : binaryIn.mid(slashPos + 1);
+ const QString binaryDirectory = slashPos == -1 ? sysBin : binaryIn.left(slashPos);
+ const QString binary = fixFileName(binaryDirectory + QLatin1Char('/') + binaryFileName);
+
+ // Fixup: Does argv[0] convention exist on Symbian?
+ arguments.push_front(binary);
+ if (workingDirectory.isEmpty())
+ workingDirectory = sysBin;
+
+ // Format settings with empty dummy parameter
+ QByteArray setData;
+ JsonInputStream setStr(setData);
+ setStr << "" << '\0'
+ << '[' << "exeToLaunch" << ',' << "addExecutables" << ',' << "addLibraries" << ']'
+ << '\0' << '['
+ << binary << ','
+ << '{' << binaryFileName << ':' << QString::number(uid, 16) << '}' << ','
+ << additionalLibraries
+ << ']';
+ sendTcfTrkMessage(MessageWithoutReply, SettingsService, "set", setData);
+
+ QByteArray startData;
+ JsonInputStream startStr(startData);
+ startStr << fixFileName(workingDirectory)
+ << '\0' << binary << '\0' << arguments << '\0'
+ << QStringList() << '\0' // Env is an array ["PATH=value"] (non-standard)
+ << debugControl;
+ sendTcfTrkMessage(MessageWithReply, ProcessesService, "start", startData, callBack, cookie);
+}
+
+void TcfTrkDevice::sendProcessTerminateCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie)
+{
+ QByteArray data;
+ JsonInputStream str(data);
+ str << id;
+ sendTcfTrkMessage(MessageWithReply, ProcessesService, "terminate", data, callBack, cookie);
+}
+
+void TcfTrkDevice::sendRunControlTerminateCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie)
+{
+ QByteArray data;
+ JsonInputStream str(data);
+ str << id;
+ sendTcfTrkMessage(MessageWithReply, RunControlService, "terminate", data, callBack, cookie);
+}
+
+// Non-standard: Remove executable from settings
+void TcfTrkDevice::sendSettingsRemoveExecutableCommand(const QString &binaryIn,
+ unsigned uid,
+ const QStringList &additionalLibraries,
+ const QVariant &cookie)
+{
+ QByteArray setData;
+ JsonInputStream setStr(setData);
+ setStr << "" << '\0'
+ << '[' << "removedExecutables" << ',' << "removedLibraries" << ']'
+ << '\0' << '['
+ << '{' << QFileInfo(binaryIn).fileName() << ':' << QString::number(uid, 16) << '}' << ','
+ << additionalLibraries
+ << ']';
+ sendTcfTrkMessage(MessageWithoutReply, SettingsService, "set", setData, TcfTrkCallback(), cookie);
+}
+
+void TcfTrkDevice::sendRunControlResumeCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ RunControlResumeMode mode,
+ unsigned count,
+ quint64 rangeStart,
+ quint64 rangeEnd,
+ const QVariant &cookie)
+{
+ QByteArray resumeData;
+ JsonInputStream str(resumeData);
+ str << id << '\0' << int(mode) << '\0' << count;
+ switch (mode) {
+ case RM_STEP_OVER_RANGE:
+ case RM_STEP_INTO_RANGE:
+ case RM_REVERSE_STEP_OVER_RANGE:
+ case RM_REVERSE_STEP_INTO_RANGE:
+ str << '\0' << '{' << "RANGE_START" << ':' << rangeStart
+ << ',' << "RANGE_END" << ':' << rangeEnd << '}';
+ break;
+ default:
+ break;
+ }
+ sendTcfTrkMessage(MessageWithReply, RunControlService, "resume", resumeData, callBack, cookie);
+}
+
+void TcfTrkDevice::sendRunControlSuspendCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie)
+{
+ QByteArray data;
+ JsonInputStream str(data);
+ str << id;
+ sendTcfTrkMessage(MessageWithReply, RunControlService, "suspend", data, callBack, cookie);
+}
+
+void TcfTrkDevice::sendRunControlResumeCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie)
+{
+ sendRunControlResumeCommand(callBack, id, RM_RESUME, 1, 0, 0, cookie);
+}
+
+void TcfTrkDevice::sendBreakpointsAddCommand(const TcfTrkCallback &callBack,
+ const Breakpoint &bp,
+ const QVariant &cookie)
+{
+ QByteArray data;
+ JsonInputStream str(data);
+ str << bp;
+ sendTcfTrkMessage(MessageWithReply, BreakpointsService, "add", data, callBack, cookie);
+}
+
+void TcfTrkDevice::sendBreakpointsRemoveCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie)
+{
+ sendBreakpointsRemoveCommand(callBack, QVector<QByteArray>(1, id), cookie);
+}
+
+void TcfTrkDevice::sendBreakpointsRemoveCommand(const TcfTrkCallback &callBack,
+ const QVector<QByteArray> &ids,
+ const QVariant &cookie)
+{
+ QByteArray data;
+ JsonInputStream str(data);
+ str << ids;
+ sendTcfTrkMessage(MessageWithReply, BreakpointsService, "remove", data, callBack, cookie);
+}
+
+void TcfTrkDevice::sendBreakpointsEnableCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ bool enable,
+ const QVariant &cookie)
+{
+ sendBreakpointsEnableCommand(callBack, QVector<QByteArray>(1, id), enable, cookie);
+}
+
+void TcfTrkDevice::sendBreakpointsEnableCommand(const TcfTrkCallback &callBack,
+ const QVector<QByteArray> &ids,
+ bool enable,
+ const QVariant &cookie)
+{
+ QByteArray data;
+ JsonInputStream str(data);
+ str << ids;
+ sendTcfTrkMessage(MessageWithReply, BreakpointsService,
+ enable ? "enable" : "disable",
+ data, callBack, cookie);
+}
+
+void TcfTrkDevice::sendMemorySetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ quint64 start, const QByteArray& data,
+ const QVariant &cookie)
+{
+ QByteArray getData;
+ JsonInputStream str(getData);
+ // start/word size/mode. Mode should ideally be 1 (continue on error?)
+ str << contextId << '\0' << start << '\0' << 1 << '\0' << data.size() << '\0' << 1
+ << '\0' << data.toBase64();
+ sendTcfTrkMessage(MessageWithReply, MemoryService, "set", getData, callBack, cookie);
+}
+
+void TcfTrkDevice::sendMemoryGetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ quint64 start, quint64 size,
+ const QVariant &cookie)
+{
+ QByteArray data;
+ JsonInputStream str(data);
+ // start/word size/mode. Mode should ideally be 1 (continue on error?)
+ str << contextId << '\0' << start << '\0' << 1 << '\0' << size << '\0' << 1;
+ sendTcfTrkMessage(MessageWithReply, MemoryService, "get", data, callBack, cookie);
+}
+
+QByteArray TcfTrkDevice::parseMemoryGet(const TcfTrkCommandResult &r)
+{
+ if (r.type != TcfTrkCommandResult::SuccessReply || r.values.size() < 1)
+ return QByteArray();
+ const JsonValue &memoryV = r.values.front();
+
+ if (memoryV.type() != JsonValue::String || memoryV.data().size() < 2
+ || !memoryV.data().endsWith('='))
+ return QByteArray();
+ // Catch errors reported as hash:
+ // R.4."TlVMTA==".{"Time":1276786871255,"Code":1,"AltCode":-38,"AltOrg":"POSIX","Format":"BadDescriptor"}
+ // Not sure what to make of it.
+ if (r.values.size() >= 2 && r.values.at(1).type() == JsonValue::Object)
+ qWarning("Error retrieving memory: %s", r.values.at(1).toString(false).constData());
+ // decode
+ const QByteArray memory = QByteArray::fromBase64(memoryV.data());
+ if (memory.isEmpty())
+ qWarning("Base64 decoding of %s failed.", memoryV.data().constData());
+ if (debug)
+ qDebug("TcfTrkDevice::parseMemoryGet: received %d bytes", memory.size());
+ return memory;
+}
+
+void TcfTrkDevice::sendRegistersGetMCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ const QVector<QByteArray> &ids,
+ const QVariant &cookie)
+{
+ // TODO: use "Registers" (which uses base64-encoded values)
+ QByteArray data;
+ JsonInputStream str(data);
+ str << contextId << '\0' << ids;
+ sendTcfTrkMessage(MessageWithReply, SimpleRegistersService, "get", data, callBack, cookie);
+}
+
+void TcfTrkDevice::sendRegistersGetMRangeCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ unsigned start, unsigned count)
+{
+ const unsigned end = start + count;
+ if (end > (unsigned)d->m_registerNames.size()) {
+ qWarning("TcfTrkDevice: No register name set for index %u (size: %d).", end, d->m_registerNames.size());
+ return;
+ }
+
+ QVector<QByteArray> ids;
+ ids.reserve(count);
+ for (unsigned i = start; i < end; i++)
+ ids.push_back(d->m_registerNames.at(i));
+ sendRegistersGetMCommand(callBack, contextId, ids, QVariant(start));
+}
+
+// Set register
+void TcfTrkDevice::sendRegistersSetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ const QByteArray &id,
+ unsigned value,
+ const QVariant &cookie)
+{
+ // TODO: use "Registers" (which uses base64-encoded values)
+ QByteArray data;
+ JsonInputStream str(data);
+ str << contextId << '\0' << QVector<QByteArray>(1, id)
+ << '\0' << QVector<QByteArray>(1, QByteArray::number(value, 16));
+ sendTcfTrkMessage(MessageWithReply, SimpleRegistersService, "set", data, callBack, cookie);
+}
+
+// Set register
+void TcfTrkDevice::sendRegistersSetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ unsigned registerNumber,
+ unsigned value,
+ const QVariant &cookie)
+{
+ if (registerNumber >= (unsigned)d->m_registerNames.size()) {
+ qWarning("TcfTrkDevice: No register name set for index %u (size: %d).", registerNumber, d->m_registerNames.size());
+ return;
+ }
+ sendRegistersSetCommand(callBack, contextId,
+ d->m_registerNames[registerNumber],
+ value, cookie);
+}
+
+} // namespace tcftrk
diff --git a/tools/runonphone/symbianutils/tcftrkdevice.h b/tools/runonphone/symbianutils/tcftrkdevice.h
new file mode 100644
index 0000000..67955e5
--- /dev/null
+++ b/tools/runonphone/symbianutils/tcftrkdevice.h
@@ -0,0 +1,295 @@
+/****************************************************************************
+**
+** 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 tools applications 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 TCFTRKENGINE_H
+#define TCFTRKENGINE_H
+
+#include "symbianutils_global.h"
+#include "tcftrkmessage.h"
+#include "callback.h"
+#include "json.h"
+
+#include <QtCore/QObject>
+#include <QtCore/QSharedPointer>
+#include <QtCore/QVector>
+#include <QtCore/QVariant>
+#include <QtCore/QStringList>
+
+QT_BEGIN_NAMESPACE
+class QIODevice;
+class QTextStream;
+QT_END_NAMESPACE
+
+namespace tcftrk {
+
+struct TcfTrkDevicePrivate;
+struct Breakpoint;
+
+/* Command error handling in TCF:
+ * 1) 'Severe' errors (JSON format, parameter format): Trk emits a
+ * nonstandard message (\3\2 error paramaters) and closes the connection.
+ * 2) Protocol errors: 'N' without error message is returned.
+ * 3) Errors in command execution: 'R' with a TCF error hash is returned
+ * (see TcfTrkCommandError). */
+
+/* Error code return in 'R' reply to command
+ * (see top of 'Services' documentation). */
+struct SYMBIANUTILS_EXPORT TcfTrkCommandError {
+ TcfTrkCommandError();
+ void clear();
+ operator bool() const { return timeMS != 0; }
+ QString toString() const;
+ void write(QTextStream &str) const;
+ bool parse(const QVector<JsonValue> &values);
+
+ quint64 timeMS; // Since 1.1.1970
+ int code;
+ QByteArray format; // message
+ // 'Alternative' meaning, like altOrg="POSIX"/altCode=<some errno>
+ QByteArray alternativeOrganization;
+ int alternativeCode;
+};
+
+/* Answer to a Tcf command passed to the callback. */
+struct SYMBIANUTILS_EXPORT TcfTrkCommandResult {
+ enum Type {
+ SuccessReply, // 'R' and no error -> all happy.
+ CommandErrorReply, // 'R' with TcfTrkCommandError received
+ ProgressReply, // 'P', progress indicator
+ FailReply // 'N' Protocol NAK, severe error
+ };
+
+ explicit TcfTrkCommandResult(Type t = SuccessReply);
+ explicit TcfTrkCommandResult(char typeChar, Services service,
+ const QByteArray &request,
+ const QVector<JsonValue> &values,
+ const QVariant &cookie);
+
+ QString toString() const;
+ QString errorString() const;
+ operator bool() const { return type == SuccessReply || type == ProgressReply; }
+
+ Type type;
+ Services service;
+ QByteArray request;
+ TcfTrkCommandError commandError;
+ QVector<JsonValue> values;
+ QVariant cookie;
+};
+
+typedef trk::Callback<const TcfTrkCommandResult &> TcfTrkCallback;
+
+/* TcfTrkDevice: TCF communication helper using an asynchronous QIODevice
+ * implementing the TCF protocol according to:
+http://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk/docs/TCF%20Specification.html
+http://dev.eclipse.org/svnroot/dsdp/org.eclipse.tm.tcf/trunk/docs/TCF%20Services.html
+ * Commands can be sent along with callbacks that are passed a
+ * TcfTrkCommandResult and an opaque QVariant cookie. In addition, events are emitted.
+*/
+
+class SYMBIANUTILS_EXPORT TcfTrkDevice : public QObject
+{
+ Q_PROPERTY(unsigned verbose READ verbose WRITE setVerbose)
+ Q_OBJECT
+public:
+ enum MessageType { MessageWithReply,
+ MessageWithoutReply, /* Non-standard: "Settings:set" command does not reply */
+ NoopMessage };
+
+ typedef QSharedPointer<QIODevice> IODevicePtr;
+
+ explicit TcfTrkDevice(QObject *parent = 0);
+ virtual ~TcfTrkDevice();
+
+ unsigned verbose() const;
+
+ // Mapping of register names for indices
+ QVector<QByteArray> registerNames() const;
+ void setRegisterNames(const QVector<QByteArray>& n);
+
+ IODevicePtr device() const;
+ IODevicePtr takeDevice();
+ void setDevice(const IODevicePtr &dp);
+
+ void sendTcfTrkMessage(MessageType mt, Services service,
+ const char *command,
+ const char *commandParameters, int commandParametersLength,
+ const TcfTrkCallback &callBack = TcfTrkCallback(),
+ const QVariant &cookie = QVariant());
+
+ void sendTcfTrkMessage(MessageType mt, Services service, const char *command,
+ const QByteArray &commandParameters,
+ const TcfTrkCallback &callBack = TcfTrkCallback(),
+ const QVariant &cookie = QVariant());
+
+ // Convenience messages: Start a process
+ void sendProcessStartCommand(const TcfTrkCallback &callBack,
+ const QString &binary,
+ unsigned uid,
+ QStringList arguments = QStringList(),
+ QString workingDirectory = QString(),
+ bool debugControl = true,
+ const QStringList &additionalLibraries = QStringList(),
+ const QVariant &cookie = QVariant());
+
+ // Preferred over Processes:Terminate by TCF TRK.
+ void sendRunControlTerminateCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie = QVariant());
+
+ void sendProcessTerminateCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie = QVariant());
+
+ // Non-standard: Remove executable from settings.
+ // Probably needs to be called after stopping. This command has no response.
+ void sendSettingsRemoveExecutableCommand(const QString &binaryIn,
+ unsigned uid,
+ const QStringList &additionalLibraries = QStringList(),
+ const QVariant &cookie = QVariant());
+
+ void sendRunControlSuspendCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie = QVariant());
+
+ // Resume / Step (see RunControlResumeMode).
+ void sendRunControlResumeCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ RunControlResumeMode mode,
+ unsigned count /* = 1, currently ignored. */,
+ quint64 rangeStart, quint64 rangeEnd,
+ const QVariant &cookie = QVariant());
+
+ // Convenience to resume a suspended process
+ void sendRunControlResumeCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie = QVariant());
+
+ void sendBreakpointsAddCommand(const TcfTrkCallback &callBack,
+ const Breakpoint &b,
+ const QVariant &cookie = QVariant());
+
+ void sendBreakpointsRemoveCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ const QVariant &cookie = QVariant());
+
+ void sendBreakpointsRemoveCommand(const TcfTrkCallback &callBack,
+ const QVector<QByteArray> &id,
+ const QVariant &cookie = QVariant());
+
+ void sendBreakpointsEnableCommand(const TcfTrkCallback &callBack,
+ const QByteArray &id,
+ bool enable,
+ const QVariant &cookie = QVariant());
+
+ void sendBreakpointsEnableCommand(const TcfTrkCallback &callBack,
+ const QVector<QByteArray> &id,
+ bool enable,
+ const QVariant &cookie = QVariant());
+
+
+ void sendMemoryGetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ quint64 start, quint64 size,
+ const QVariant &cookie = QVariant());
+
+ void sendMemorySetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ quint64 start, const QByteArray& data,
+ const QVariant &cookie = QVariant());
+
+ // Reply is an array of hexvalues
+ void sendRegistersGetMCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ const QVector<QByteArray> &ids,
+ const QVariant &cookie = QVariant());
+
+ // Convenience to get a range of register "R0" .. "R<n>".
+ // Cookie will be an int containing "start".
+ void sendRegistersGetMRangeCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ unsigned start, unsigned count);
+
+ // Set register
+ void sendRegistersSetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ const QByteArray &ids,
+ unsigned value,
+ const QVariant &cookie = QVariant());
+ // Set register
+ void sendRegistersSetCommand(const TcfTrkCallback &callBack,
+ const QByteArray &contextId,
+ unsigned registerNumber,
+ unsigned value,
+ const QVariant &cookie = QVariant());
+
+ static QByteArray parseMemoryGet(const TcfTrkCommandResult &r);
+
+signals:
+ void genericTcfEvent(int service, const QByteArray &name, const QVector<tcftrk::JsonValue> &value);
+ void tcfEvent(const tcftrk::TcfTrkEvent &knownEvent);
+
+ void logMessage(const QString &);
+ void error(const QString &);
+
+public slots:
+ void setVerbose(unsigned v);
+
+private slots:
+ void slotDeviceError();
+ void slotDeviceSocketStateChanged();
+ void slotDeviceReadyRead();
+
+private:
+ bool checkOpen();
+ void checkSendQueue();
+ void writeMessage(QByteArray data);
+ void emitLogMessage(const QString &);
+ int parseMessage(const QByteArray &);
+ int parseTcfCommandReply(char type, const QVector<QByteArray> &tokens);
+ int parseTcfEvent(const QVector<QByteArray> &tokens);
+
+ TcfTrkDevicePrivate *d;
+};
+
+} // namespace tcftrk
+
+#endif // TCFTRKENGINE_H
diff --git a/tools/runonphone/symbianutils/tcftrkmessage.cpp b/tools/runonphone/symbianutils/tcftrkmessage.cpp
new file mode 100644
index 0000000..06035ab
--- /dev/null
+++ b/tools/runonphone/symbianutils/tcftrkmessage.cpp
@@ -0,0 +1,562 @@
+/****************************************************************************
+**
+** 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 tools applications 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 "tcftrkmessage.h"
+#include "json.h"
+
+#include <QtCore/QString>
+#include <QtCore/QTextStream>
+
+// Names matching the enum
+static const char *serviceNamesC[] =
+{ "Locator", "RunControl", "Processes", "Memory", "Settings", "Breakpoints",
+ "Registers", "SimpleRegisters",
+ "UnknownService"};
+
+namespace tcftrk {
+
+SYMBIANUTILS_EXPORT QString joinByteArrays(const QVector<QByteArray> &a, char sep)
+{
+ QString rc;
+ const int count = a.size();
+ for (int i = 0; i < count; i++) {
+ if (i)
+ rc += QLatin1Char(sep);
+ rc += QString::fromUtf8(a.at(i));
+ }
+ return rc;
+}
+
+static inline bool jsonToBool(const JsonValue& js)
+{
+ return js.type() == JsonValue::Boolean && js.data() == "true";
+}
+
+SYMBIANUTILS_EXPORT const char *serviceName(Services s)
+{
+ return serviceNamesC[s];
+}
+
+SYMBIANUTILS_EXPORT Services serviceFromName(const char *n)
+{
+ const int count = sizeof(serviceNamesC)/sizeof(char *);
+ for (int i = 0; i < count; i++)
+ if (!qstrcmp(serviceNamesC[i], n))
+ return static_cast<Services>(i);
+ return UnknownService;
+}
+
+SYMBIANUTILS_EXPORT QString formatData(const QByteArray &a)
+{
+ const int columns = 16;
+ QString rc;
+ QTextStream str(&rc);
+ str.setIntegerBase(16);
+ str.setPadChar(QLatin1Char('0'));
+ const unsigned char *start = reinterpret_cast<const unsigned char *>(a.constData());
+ const unsigned char *end = start + a.size();
+ for (const unsigned char *p = start; p < end ; ) {
+ str << "0x";
+ str.setFieldWidth(4);
+ str << (p - start);
+ str.setFieldWidth(0);
+ str << ' ';
+ QString asc;
+ int c = 0;
+ for ( ; c < columns && p < end; c++, p++) {
+ const unsigned u = *p;
+ str.setFieldWidth(2);
+ str << u;
+ str.setFieldWidth(0);
+ str << ' ';
+ switch (u) {
+ case '\n':
+ asc += QLatin1String("\\n");
+ break;
+ case '\r':
+ asc += QLatin1String("\\r");
+ break;
+ case '\t':
+ asc += QLatin1String("\\t");
+ break;
+ default:
+ if (u >= 32 && u < 128) {
+ asc += QLatin1Char(' ');
+ asc += QLatin1Char(u);
+ } else {
+ asc += QLatin1String(" .");
+ }
+ break;
+ }
+ }
+ if (const int remainder = columns - c)
+ str << QString(3 * remainder, QLatin1Char(' '));
+ str << ' ' << asc << '\n';
+ }
+ return rc;
+}
+
+// ----------- RunControlContext
+RunControlContext::RunControlContext() :
+ flags(0), resumeFlags(0)
+{
+}
+
+void RunControlContext::clear()
+{
+ flags =0;
+ resumeFlags = 0;
+ id.clear();
+ osid.clear();
+ parentId.clear();
+}
+
+RunControlContext::Type RunControlContext::typeFromTcfId(const QByteArray &id)
+{
+ // "p12" or "p12.t34"?
+ return id.contains(".t") ? Thread : Process;
+}
+
+unsigned RunControlContext::processId() const
+{
+ return processIdFromTcdfId(id);
+}
+
+unsigned RunControlContext::threadId() const
+{
+ return threadIdFromTcdfId(id);
+}
+
+unsigned RunControlContext::processIdFromTcdfId(const QByteArray &id)
+{
+ // Cut out process id from "p12" or "p12.t34"?
+ if (!id.startsWith('p'))
+ return 0;
+ const int dotPos = id.indexOf('.');
+ const int pLen = dotPos == -1 ? id.size() : dotPos;
+ return id.mid(1, pLen - 1).toUInt();
+}
+
+unsigned RunControlContext::threadIdFromTcdfId(const QByteArray &id)
+{
+ const int tPos = id.indexOf(".t");
+ return tPos != -1 ? id.mid(tPos + 2).toUInt() : uint(0);
+}
+
+QByteArray RunControlContext::tcfId(unsigned processId, unsigned threadId /* = 0 */)
+{
+ QByteArray rc("p");
+ rc += QByteArray::number(processId);
+ if (threadId) {
+ rc += ".t";
+ rc += QByteArray::number(threadId);
+ }
+ return rc;
+}
+
+RunControlContext::Type RunControlContext::type() const
+{
+ return RunControlContext::typeFromTcfId(id);
+}
+
+bool RunControlContext::parse(const JsonValue &val)
+{
+ clear();
+ if (val.type() != JsonValue::Object)
+ return false;
+ foreach(const JsonValue &c, val.children()) {
+ if (c.name() == "ID") {
+ id = c.data();
+ } else if (c.name() == "OSID") {
+ osid = c.data();
+ } else if (c.name() == "ParentID") {
+ parentId = c.data();
+ } else if (c.name() == "IsContainer") {
+ if (jsonToBool(c))
+ flags |= Container;
+ } else if (c.name() == "CanTerminate") {
+ if (jsonToBool(c))
+ flags |= CanTerminate;
+ } else if (c.name() == "CanResume") {
+ resumeFlags = c.data().toUInt();
+ } else if (c.name() == "HasState") {
+ if (jsonToBool(c))
+ flags |= HasState;
+ } else if (c.name() == "CanSuspend") {
+ if (jsonToBool(c))
+ flags |= CanSuspend;
+ }
+ }
+ return true;
+}
+
+QString RunControlContext::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ format(str);
+ return rc;
+}
+
+void RunControlContext::format(QTextStream &str) const
+{
+ str << " id='" << id << "' osid='" << osid
+ << "' parentId='" << parentId <<"' ";
+ if (flags & Container)
+ str << "[container] ";
+ if (flags & HasState)
+ str << "[has state] ";
+ if (flags & CanSuspend)
+ str << "[can suspend] ";
+ if (flags & CanSuspend)
+ str << "[can terminate] ";
+ str.setIntegerBase(16);
+ str << " resume_flags: 0x" << resumeFlags;
+ str.setIntegerBase(10);
+}
+
+// ------ ModuleLoadEventInfo
+ModuleLoadEventInfo::ModuleLoadEventInfo() :
+ loaded(false), codeAddress(0), dataAddress(0), requireResume(false)
+{
+}
+
+void ModuleLoadEventInfo::clear()
+{
+ loaded = requireResume = false;
+ codeAddress = dataAddress =0;
+}
+
+bool ModuleLoadEventInfo::parse(const JsonValue &val)
+{
+ clear();
+ if (val.type() != JsonValue::Object)
+ return false;
+ foreach(const JsonValue &c, val.children()) {
+ if (c.name() == "Name") {
+ name = c.data();
+ } else if (c.name() == "File") {
+ file = c.data();
+ } else if (c.name() == "CodeAddress") {
+ codeAddress = c.data().toULongLong();
+ } else if (c.name() == "DataAddress") {
+ dataAddress = c.data().toULongLong();
+ } else if (c.name() == "Loaded") {
+ loaded = jsonToBool(c);
+ } else if (c.name() == "RequireResume") {
+ requireResume =jsonToBool(c);
+ }
+ }
+ return true;
+}
+void ModuleLoadEventInfo::format(QTextStream &str) const
+{
+ str << "name='" << name << "' file='" << file << "' " <<
+ (loaded ? "[loaded] " : "[not loaded] ");
+ if (requireResume)
+ str << "[requires resume] ";
+ str.setIntegerBase(16);
+ str << " code: 0x" << codeAddress << " data: 0x" << dataAddress;
+ str.setIntegerBase(10);
+}
+
+// ---------------------- Breakpoint
+
+// Types matching enum
+static const char *breakPointTypesC[] = {"Software", "Hardware", "Auto"};
+
+Breakpoint::Breakpoint(quint64 loc) :
+ type(Auto), enabled(true), ignoreCount(0), location(loc), size(1), thumb(true)
+{
+ if (loc)
+ id = idFromLocation(location);
+}
+
+void Breakpoint::setContextId(unsigned processId, unsigned threadId)
+{
+ contextIds = QVector<QByteArray>(1, RunControlContext::tcfId(processId, threadId));
+}
+
+QByteArray Breakpoint::idFromLocation(quint64 loc)
+{
+ return QByteArray("BP_0x") + QByteArray::number(loc, 16);
+}
+
+QString Breakpoint::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ str.setIntegerBase(16);
+ str << "Breakpoint '" << id << "' " << breakPointTypesC[type] << " for contexts '"
+ << joinByteArrays(contextIds, ',') << "' at 0x" << location;
+ str.setIntegerBase(10);
+ str << " size " << size;
+ if (enabled)
+ str << " [enabled]";
+ if (thumb)
+ str << " [thumb]";
+ if (ignoreCount)
+ str << " IgnoreCount " << ignoreCount;
+ return rc;
+}
+
+JsonInputStream &operator<<(JsonInputStream &str, const Breakpoint &b)
+{
+ if (b.contextIds.isEmpty())
+ qWarning("tcftrk::Breakpoint: No context ids specified");
+
+ str << '{' << "ID" << ':' << QString::fromUtf8(b.id) << ','
+ << "BreakpointType" << ':' << breakPointTypesC[b.type] << ','
+ << "Enabled" << ':' << b.enabled << ','
+ << "IgnoreCount" << ':' << b.ignoreCount << ','
+ << "ContextIds" << ':' << b.contextIds << ','
+ << "Location" << ':' << QString::number(b.location) << ','
+ << "Size" << ':' << b.size << ','
+ << "THUMB_BREAKPOINT" << ':' << b.thumb
+ << '}';
+ return str;
+}
+
+// --- Events
+TcfTrkEvent::TcfTrkEvent(Type type) : m_type(type)
+{
+}
+
+TcfTrkEvent::~TcfTrkEvent()
+{
+}
+
+TcfTrkEvent::Type TcfTrkEvent::type() const
+{
+ return m_type;
+}
+
+QString TcfTrkEvent::toString() const
+{
+ return QString();
+}
+
+static const char sharedLibrarySuspendReasonC[] = "Shared Library";
+
+TcfTrkEvent *TcfTrkEvent::parseEvent(Services s, const QByteArray &nameBA, const QVector<JsonValue> &values)
+{
+ switch (s) {
+ case LocatorService:
+ if (nameBA == "Hello" && values.size() == 1 && values.front().type() == JsonValue::Array) {
+ QStringList services;
+ foreach (const JsonValue &jv, values.front().children())
+ services.push_back(QString::fromUtf8(jv.data()));
+ return new TcfTrkLocatorHelloEvent(services);
+ }
+ break;
+ case RunControlService:
+ if (values.empty())
+ return 0;
+ // "id/PC/Reason/Data"
+ if (nameBA == "contextSuspended" && values.size() == 4) {
+ const QByteArray idBA = values.at(0).data();
+ const quint64 pc = values.at(1).data().toULongLong();
+ const QByteArray reasonBA = values.at(2).data();
+ // Module load: Special
+ if (reasonBA == sharedLibrarySuspendReasonC) {
+ ModuleLoadEventInfo info;
+ if (!info.parse(values.at(3)))
+ return 0;
+ return new TcfTrkRunControlModuleLoadContextSuspendedEvent(idBA, reasonBA, pc, info);
+ }
+ return new TcfTrkRunControlContextSuspendedEvent(idBA, reasonBA, pc);
+ } // "contextSuspended"
+ if (nameBA == "contextAdded")
+ return TcfTrkRunControlContextAddedEvent::parseEvent(values);
+ if (nameBA == "contextRemoved" && values.front().type() == JsonValue::Array) {
+ QVector<QByteArray> ids;
+ foreach(const JsonValue &c, values.front().children())
+ ids.push_back(c.data());
+ return new TcfTrkRunControlContextRemovedEvent(ids);
+ }
+ break;
+ default:
+ break;
+ }
+ return 0;
+}
+
+// -------------- TcfTrkServiceHelloEvent
+TcfTrkLocatorHelloEvent::TcfTrkLocatorHelloEvent(const QStringList &s) :
+ TcfTrkEvent(LocatorHello),
+ m_services(s)
+{
+}
+
+QString TcfTrkLocatorHelloEvent::toString() const
+{
+ return QLatin1String("ServiceHello: ") + m_services.join(QLatin1String(", "));
+}
+
+// -------------- TcfTrkIdEvent
+TcfTrkIdEvent::TcfTrkIdEvent(Type t, const QByteArray &id) :
+ TcfTrkEvent(t), m_id(id)
+{
+}
+
+// ---------- TcfTrkIdsEvent
+TcfTrkIdsEvent::TcfTrkIdsEvent(Type t, const QVector<QByteArray> &ids) :
+ TcfTrkEvent(t), m_ids(ids)
+{
+}
+
+QString TcfTrkIdsEvent::joinedIdString(const char sep) const
+{
+ return joinByteArrays(m_ids, sep);
+}
+
+// ---------------- TcfTrkRunControlContextAddedEvent
+TcfTrkRunControlContextAddedEvent::TcfTrkRunControlContextAddedEvent(const RunControlContexts &c) :
+ TcfTrkEvent(RunControlContextAdded), m_contexts(c)
+{
+}
+
+TcfTrkRunControlContextAddedEvent
+ *TcfTrkRunControlContextAddedEvent::parseEvent(const QVector<JsonValue> &values)
+{
+ // Parse array of contexts
+ if (values.size() < 1 || values.front().type() != JsonValue::Array)
+ return 0;
+
+ RunControlContexts contexts;
+ foreach (const JsonValue &v, values.front().children()) {
+ RunControlContext context;
+ if (context.parse(v))
+ contexts.push_back(context);
+ }
+ return new TcfTrkRunControlContextAddedEvent(contexts);
+}
+
+QString TcfTrkRunControlContextAddedEvent::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ str << "RunControl: " << m_contexts.size() << " context(s) "
+ << (type() == RunControlContextAdded ? "added" : "removed")
+ << '\n';
+ foreach (const RunControlContext &c, m_contexts) {
+ c.format(str);
+ str << '\n';
+ }
+ return rc;
+}
+
+// --------------- TcfTrkRunControlContextRemovedEvent
+TcfTrkRunControlContextRemovedEvent::TcfTrkRunControlContextRemovedEvent(const QVector<QByteArray> &ids) :
+ TcfTrkIdsEvent(RunControlContextRemoved, ids)
+{
+}
+
+QString TcfTrkRunControlContextRemovedEvent::toString() const
+{
+ return QLatin1String("RunControl: Removed contexts '") + joinedIdString() + ("'.");
+}
+
+// --------------- TcfTrkRunControlContextSuspendedEvent
+TcfTrkRunControlContextSuspendedEvent::TcfTrkRunControlContextSuspendedEvent(const QByteArray &id,
+ const QByteArray &reason,
+ quint64 pc) :
+ TcfTrkIdEvent(RunControlSuspended, id), m_pc(pc), m_reason(reason)
+{
+}
+
+TcfTrkRunControlContextSuspendedEvent::TcfTrkRunControlContextSuspendedEvent(Type t,
+ const QByteArray &id,
+ const QByteArray &reason,
+ quint64 pc) :
+ TcfTrkIdEvent(t, id), m_pc(pc), m_reason(reason)
+{
+}
+
+void TcfTrkRunControlContextSuspendedEvent::format(QTextStream &str) const
+{
+ str.setIntegerBase(16);
+ str << "RunControl: '" << idString() << "' suspended at 0x"
+ << m_pc << ": '" << m_reason << "'.";
+ str.setIntegerBase(10);
+}
+
+QString TcfTrkRunControlContextSuspendedEvent::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ format(str);
+ return rc;
+}
+
+TcfTrkRunControlContextSuspendedEvent::Reason TcfTrkRunControlContextSuspendedEvent::reason() const
+{
+ if (m_reason == sharedLibrarySuspendReasonC)
+ return ModuleLoad;
+ if (m_reason == "Breakpoint")
+ return BreakPoint;
+ // 'Data abort exception'/'Thread has panicked' ... unfortunately somewhat unspecific.
+ if (m_reason.contains("exception") || m_reason.contains("panick"))
+ return Crash;
+ return Other;
+}
+
+TcfTrkRunControlModuleLoadContextSuspendedEvent::TcfTrkRunControlModuleLoadContextSuspendedEvent(const QByteArray &id,
+ const QByteArray &reason,
+ quint64 pc,
+ const ModuleLoadEventInfo &mi) :
+ TcfTrkRunControlContextSuspendedEvent(RunControlModuleLoadSuspended, id, reason, pc),
+ m_mi(mi)
+{
+}
+
+QString TcfTrkRunControlModuleLoadContextSuspendedEvent::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ TcfTrkRunControlContextSuspendedEvent::format(str);
+ str << ' ';
+ m_mi.format(str);
+ return rc;
+}
+
+
+} // namespace tcftrk
diff --git a/tools/runonphone/symbianutils/tcftrkmessage.h b/tools/runonphone/symbianutils/tcftrkmessage.h
new file mode 100644
index 0000000..510b485
--- /dev/null
+++ b/tools/runonphone/symbianutils/tcftrkmessage.h
@@ -0,0 +1,296 @@
+/****************************************************************************
+**
+** 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 tools applications 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 TRCFTRKMESSAGE_H
+#define TRCFTRKMESSAGE_H
+
+#include "symbianutils_global.h"
+
+#include <QtCore/QStringList>
+#include <QtCore/QVector>
+
+QT_BEGIN_NAMESPACE
+class QTextStream;
+QT_END_NAMESPACE
+
+namespace tcftrk {
+
+class JsonValue;
+class JsonInputStream;
+
+enum Services {
+ LocatorService,
+ RunControlService,
+ ProcessesService,
+ MemoryService,
+ SettingsService, // non-standard, trk specific
+ BreakpointsService,
+ RegistersService,
+ SimpleRegistersService, // non-standard, trk specific
+ UnknownService
+}; // Note: Check string array 'serviceNamesC' of same size when modifying this.
+
+// Modes of RunControl/'Resume' (see EDF documentation).
+// As of 24.6.2010, RM_RESUME, RM_STEP_OVER, RM_STEP_INTO,
+// RM_STEP_OVER_RANGE, RM_STEP_INTO_RANGE are supported with
+// RANG_START/RANGE_END parameters.
+enum RunControlResumeMode {
+ RM_RESUME = 0,
+ RM_STEP_OVER = 1, RM_STEP_INTO = 2,
+ RM_STEP_OVER_LINE = 3, RM_STEP_INTO_LINE = 4,
+ RM_STEP_OUT = 5, RM_REVERSE_RESUME = 6,
+ RM_REVERSE_STEP_OVER = 7, RM_REVERSE_STEP_INTO = 8,
+ RM_REVERSE_STEP_OVER_LINE = 9, RM_REVERSE_STEP_INTO_LINE = 10,
+ RM_REVERSE_STEP_OUT = 11, RM_STEP_OVER_RANGE = 12,
+ RM_STEP_INTO_RANGE = 13, RM_REVERSE_STEP_OVER_RANGE = 14,
+ RM_REVERSE_STEP_INTO_RANGE = 15
+};
+
+SYMBIANUTILS_EXPORT const char *serviceName(Services s);
+SYMBIANUTILS_EXPORT Services serviceFromName(const char *);
+
+// Debug helpers
+SYMBIANUTILS_EXPORT QString formatData(const QByteArray &a);
+SYMBIANUTILS_EXPORT QString joinByteArrays(const QVector<QByteArray> &a, char sep = ',');
+
+// Context used in 'RunControl contextAdded' events and in reply
+// to 'Processes start'. Could be thread or process.
+struct SYMBIANUTILS_EXPORT RunControlContext {
+ enum Flags {
+ Container = 0x1, HasState = 0x2, CanSuspend = 0x4,
+ CanTerminate = 0x8
+ };
+ enum Type { Process, Thread };
+
+ RunControlContext();
+ Type type() const;
+ unsigned processId() const;
+ unsigned threadId() const;
+
+ void clear();
+ bool parse(const JsonValue &v);
+ void format(QTextStream &str) const;
+ QString toString() const;
+
+ // Helper for converting the TCF ids ("p12" or "p12.t34")
+ static Type typeFromTcfId(const QByteArray &id);
+ static unsigned processIdFromTcdfId(const QByteArray &id);
+ static unsigned threadIdFromTcdfId(const QByteArray &id);
+ static QByteArray tcfId(unsigned processId, unsigned threadId = 0);
+
+ unsigned flags;
+ unsigned resumeFlags;
+ QByteArray id; // "p434.t699"
+ QByteArray osid; // Non-standard: Process or thread id
+ QByteArray parentId; // Parent process id of a thread.
+};
+
+// Module load information occuring with 'RunControl contextSuspended' events
+struct SYMBIANUTILS_EXPORT ModuleLoadEventInfo {
+ ModuleLoadEventInfo();
+ void clear();
+ bool parse(const JsonValue &v);
+ void format(QTextStream &str) const;
+
+ QByteArray name;
+ QByteArray file;
+ bool loaded;
+ quint64 codeAddress;
+ quint64 dataAddress;
+ bool requireResume;
+};
+
+// Breakpoint as supported by TcfTrk source June 2010
+// TODO: Add watchpoints,etc once they are implemented
+struct SYMBIANUTILS_EXPORT Breakpoint {
+ enum Type { Software, Hardware, Auto };
+
+ explicit Breakpoint(quint64 loc = 0);
+ void setContextId(unsigned processId, unsigned threadId = 0);
+ QString toString() const;
+
+ static QByteArray idFromLocation(quint64 loc); // Automagically determine from location
+
+ Type type;
+ bool enabled;
+ int ignoreCount;
+ QVector<QByteArray> contextIds; // Process or thread ids.
+ QByteArray id; // Id of the breakpoint;
+ quint64 location;
+ unsigned size;
+ bool thumb;
+};
+
+SYMBIANUTILS_EXPORT JsonInputStream &operator<<(JsonInputStream &str, const Breakpoint &b);
+
+// Event hierarchy
+class SYMBIANUTILS_EXPORT TcfTrkEvent {
+ Q_DISABLE_COPY(TcfTrkEvent)
+public:
+ enum Type { None,
+ LocatorHello,
+ RunControlContextAdded,
+ RunControlContextRemoved,
+ RunControlSuspended,
+ RunControlBreakpointSuspended,
+ RunControlModuleLoadSuspended,
+ RunControlResumed
+ };
+
+ virtual ~TcfTrkEvent();
+
+ Type type() const;
+ virtual QString toString() const;
+
+ static TcfTrkEvent *parseEvent(Services s, const QByteArray &name, const QVector<JsonValue> &val);
+
+protected:
+ explicit TcfTrkEvent(Type type = None);
+
+private:
+ const Type m_type;
+};
+
+// ServiceHello
+class SYMBIANUTILS_EXPORT TcfTrkLocatorHelloEvent : public TcfTrkEvent {
+public:
+ explicit TcfTrkLocatorHelloEvent(const QStringList &);
+
+ const QStringList &services() { return m_services; }
+ virtual QString toString() const;
+
+private:
+ QStringList m_services;
+};
+
+// Base for events that just have one id as parameter
+// (simple suspend)
+class SYMBIANUTILS_EXPORT TcfTrkIdEvent : public TcfTrkEvent {
+protected:
+ explicit TcfTrkIdEvent(Type t, const QByteArray &id);
+public:
+ QByteArray id() const { return m_id; }
+ QString idString() const { return QString::fromUtf8(m_id); }
+
+private:
+ const QByteArray m_id;
+};
+
+// Base for events that just have some ids as parameter
+// (context removed)
+class SYMBIANUTILS_EXPORT TcfTrkIdsEvent : public TcfTrkEvent {
+protected:
+ explicit TcfTrkIdsEvent(Type t, const QVector<QByteArray> &ids);
+
+public:
+ QVector<QByteArray> ids() const { return m_ids; }
+ QString joinedIdString(const char sep = ',') const;
+
+private:
+ const QVector<QByteArray> m_ids;
+};
+
+// RunControlContextAdded
+class SYMBIANUTILS_EXPORT TcfTrkRunControlContextAddedEvent : public TcfTrkEvent {
+public:
+ typedef QVector<RunControlContext> RunControlContexts;
+
+ explicit TcfTrkRunControlContextAddedEvent(const RunControlContexts &c);
+
+ const RunControlContexts &contexts() const { return m_contexts; }
+ virtual QString toString() const;
+
+ static TcfTrkRunControlContextAddedEvent *parseEvent(const QVector<JsonValue> &val);
+
+private:
+ const RunControlContexts m_contexts;
+};
+
+// RunControlContextRemoved
+class SYMBIANUTILS_EXPORT TcfTrkRunControlContextRemovedEvent : public TcfTrkIdsEvent {
+public:
+ explicit TcfTrkRunControlContextRemovedEvent(const QVector<QByteArray> &id);
+ virtual QString toString() const;
+};
+
+// Simple RunControlContextSuspended (process/thread)
+class SYMBIANUTILS_EXPORT TcfTrkRunControlContextSuspendedEvent : public TcfTrkIdEvent {
+public:
+ enum Reason { BreakPoint, ModuleLoad, Crash, Other } ;
+
+ explicit TcfTrkRunControlContextSuspendedEvent(const QByteArray &id,
+ const QByteArray &reason,
+ quint64 pc = 0);
+ virtual QString toString() const;
+
+ quint64 pc() const { return m_pc; }
+ QByteArray reasonID() const { return m_reason; }
+ Reason reason() const;
+
+protected:
+ explicit TcfTrkRunControlContextSuspendedEvent(Type t,
+ const QByteArray &id,
+ const QByteArray &reason,
+ quint64 pc = 0);
+ void format(QTextStream &str) const;
+
+private:
+ const quint64 m_pc;
+ const QByteArray m_reason;
+};
+
+// RunControlContextSuspended due to module load
+class SYMBIANUTILS_EXPORT TcfTrkRunControlModuleLoadContextSuspendedEvent : public TcfTrkRunControlContextSuspendedEvent {
+public:
+ explicit TcfTrkRunControlModuleLoadContextSuspendedEvent(const QByteArray &id,
+ const QByteArray &reason,
+ quint64 pc,
+ const ModuleLoadEventInfo &mi);
+
+ virtual QString toString() const;
+ const ModuleLoadEventInfo &info() const { return m_mi; }
+
+private:
+ const ModuleLoadEventInfo m_mi;
+};
+
+} // namespace tcftrk
+#endif // TRCFTRKMESSAGE_H
diff --git a/tools/runonphone/symbianutils/trkdevice.cpp b/tools/runonphone/symbianutils/trkdevice.cpp
index bd24300..9039184 100644
--- a/tools/runonphone/symbianutils/trkdevice.cpp
+++ b/tools/runonphone/symbianutils/trkdevice.cpp
@@ -636,10 +636,11 @@ private:
void readMessages();
QByteArray m_trkReadBuffer;
+ bool linkEstablishmentMode;
};
ReaderThreadBase::ReaderThreadBase(const QSharedPointer<DeviceContext> &context) :
- m_context(context)
+ m_context(context), linkEstablishmentMode(true)
{
static const int trkResultMetaId = qRegisterMetaType<trk::TrkResult>();
Q_UNUSED(trkResultMetaId)
@@ -662,7 +663,7 @@ void ReaderThreadBase::readMessages()
{
TrkResult r;
QByteArray rawData;
- while (extractResult(&m_trkReadBuffer, m_context->serialFrame, &r, &rawData)) {
+ while (extractResult(&m_trkReadBuffer, m_context->serialFrame, &r, linkEstablishmentMode, &rawData)) {
emit messageReceived(r, rawData);
}
}
diff --git a/tools/runonphone/symbianutils/trkutils.cpp b/tools/runonphone/symbianutils/trkutils.cpp
index 60e391e..d89da20 100644
--- a/tools/runonphone/symbianutils/trkutils.cpp
+++ b/tools/runonphone/symbianutils/trkutils.cpp
@@ -52,6 +52,25 @@
namespace trk {
+Library::Library() : codeseg(0), dataseg(0), pid(0)
+{
+}
+
+Library::Library(const TrkResult &result) : codeseg(0), dataseg(0), pid(0)
+{
+ if (result.data.size() < 20) {
+ qWarning("Invalid trk creation notification received.");
+ return;
+ }
+
+ const char *data = result.data.constData();
+ pid = extractInt(data + 2);
+ codeseg = extractInt(data + 10);
+ dataseg = extractInt(data + 14);
+ const uint len = extractShort(data + 18);
+ name = result.data.mid(20, len);
+}
+
TrkAppVersion::TrkAppVersion()
{
reset();
@@ -77,11 +96,11 @@ void Session::reset()
extended1TypeSize = 0;
extended2TypeSize = 0;
pid = 0;
+ mainTid = 0;
tid = 0;
codeseg = 0;
dataseg = 0;
- currentThread = 0;
libraries.clear();
trkAppVersion.reset();
}
@@ -143,6 +162,90 @@ QString Session::deviceDescription(unsigned verbose) const
return msg.arg(formatTrkVersion(trkAppVersion));
}
+QByteArray Session::gdbLibraryList() const
+{
+ const int count = libraries.size();
+ QByteArray response = "l<library-list>";
+ for (int i = 0; i != count; ++i) {
+ const trk::Library &lib = libraries.at(i);
+ response += "<library name=\"";
+ response += lib.name;
+ response += "\">";
+ response += "<section address=\"0x";
+ response += trk::hexNumber(lib.codeseg);
+ response += "\"/>";
+ response += "<section address=\"0x";
+ response += trk::hexNumber(lib.dataseg);
+ response += "\"/>";
+ response += "<section address=\"0x";
+ response += trk::hexNumber(lib.dataseg);
+ response += "\"/>";
+ response += "</library>";
+ }
+ response += "</library-list>";
+ return response;
+}
+
+QByteArray Session::gdbQsDllInfo(int start, int count) const
+{
+ // Happens with gdb 6.4.50.20060226-cvs / CodeSourcery.
+ // Never made it into FSF gdb that got qXfer:libraries:read instead.
+ // http://sourceware.org/ml/gdb/2007-05/msg00038.html
+ // Name=hexname,TextSeg=textaddr[,DataSeg=dataaddr]
+ const int libraryCount = libraries.size();
+ const int end = count < 0 ? libraryCount : qMin(libraryCount, start + count);
+ QByteArray response(1, end == libraryCount ? 'l' : 'm');
+ for (int i = start; i < end; ++i) {
+ if (i != start)
+ response += ';';
+ const Library &lib = libraries.at(i);
+ response += "Name=";
+ response += lib.name.toHex();
+ response += ",TextSeg=";
+ response += hexNumber(lib.codeseg);
+ response += ",DataSeg=";
+ response += hexNumber(lib.dataseg);
+ }
+ return response;
+}
+
+QString Session::toString() const
+{
+ QString rc;
+ QTextStream str(&rc);
+ str << "Session: " << deviceDescription(false) << '\n'
+ << "pid: " << pid << "main thread: " << mainTid
+ << " current thread: " << tid << ' ';
+ str.setIntegerBase(16);
+ str << " code: 0x" << codeseg << " data: 0x" << dataseg << '\n';
+ if (const int libCount = libraries.size()) {
+ str << "Libraries:\n";
+ for (int i = 0; i < libCount; i++)
+ str << " #" << i << ' ' << libraries.at(i).name
+ << " code: 0x" << libraries.at(i).codeseg
+ << " data: 0x" << libraries.at(i).dataseg << '\n';
+ }
+ if (const int moduleCount = modules.size()) {
+ str << "Modules:\n";
+ for (int i = 0; i < moduleCount; i++)
+ str << " #" << i << ' ' << modules.at(i) << '\n';
+ }
+ str.setIntegerBase(10);
+ if (!addressToBP.isEmpty()) {
+ typedef QHash<uint, uint>::const_iterator BP_ConstIterator;
+ str << "Breakpoints:\n";
+ const BP_ConstIterator cend = addressToBP.constEnd();
+ for (BP_ConstIterator it = addressToBP.constBegin(); it != cend; ++it) {
+ str.setIntegerBase(16);
+ str << " 0x" << it.key();
+ str.setIntegerBase(10);
+ str << ' ' << it.value() << '\n';
+ }
+ }
+
+ return rc;
+}
+
// --------------
QByteArray decode7d(const QByteArray &ba)
@@ -188,18 +291,15 @@ SYMBIANUTILS_EXPORT QString stringFromArray(const QByteArray &ba, int maxLen)
QString ascii;
const int size = maxLen == -1 ? ba.size() : qMin(ba.size(), maxLen);
for (int i = 0; i < size; ++i) {
- //if (i == 5 || i == ba.size() - 2)
- // str += " ";
- int c = byte(ba.at(i));
- str += QString("%1 ").arg(c, 2, 16, QChar('0'));
- if (i >= 8 && i < ba.size() - 2)
- ascii += QChar(c).isPrint() ? QChar(c) : QChar('.');
+ const int c = byte(ba.at(i));
+ str += QString::fromAscii("%1 ").arg(c, 2, 16, QChar('0'));
+ ascii += QChar(c).isPrint() ? QChar(c) : QChar('.');
}
if (size != ba.size()) {
- str += "...";
- ascii += "...";
+ str += QLatin1String("...");
+ ascii += QLatin1String("...");
}
- return str + " " + ascii;
+ return str + QLatin1String(" ") + ascii;
}
SYMBIANUTILS_EXPORT QByteArray hexNumber(uint n, int digits)
@@ -299,20 +399,30 @@ ushort isValidTrkResult(const QByteArray &buffer, bool serialFrame, ushort& mux)
return firstDelimiterPos != -1 ? firstDelimiterPos : buffer.size();
}
-bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByteArray *rawData)
+bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, bool &linkEstablishmentMode, QByteArray *rawData)
{
result->clear();
if(rawData)
rawData->clear();
- const ushort len = isValidTrkResult(*buffer, serialFrame, result->multiplex);
- if (!len)
- return false;
+ ushort len = isValidTrkResult(*buffer, serialFrame, result->multiplex);
// handle receiving application output, which is not a regular command
const int delimiterPos = serialFrame ? 4 : 0;
+ if (linkEstablishmentMode) {
+ //when "hot connecting" a device, we can receive partial frames.
+ //this code resyncs by discarding data until a TRK frame is found
+ while (buffer->length() > delimiterPos
+ && result->multiplex != MuxTextTrace
+ && !(result->multiplex == MuxTrk && buffer->at(delimiterPos) == 0x7e)) {
+ buffer->remove(0,1);
+ len = isValidTrkResult(*buffer, serialFrame, result->multiplex);
+ }
+ }
+ if (!len)
+ return false;
if (buffer->at(delimiterPos) != 0x7e) {
result->isDebugOutput = true;
result->data = buffer->mid(delimiterPos, len);
- *buffer->remove(0, delimiterPos + len);
+ buffer->remove(0, delimiterPos + len);
return true;
}
// FIXME: what happens if the length contains 0xfe?
@@ -320,7 +430,7 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt
const QByteArray data = decode7d(buffer->mid(delimiterPos + 1, len - 2));
if(rawData)
*rawData = data;
- *buffer->remove(0, delimiterPos + len);
+ buffer->remove(0, delimiterPos + len);
byte sum = 0;
for (int i = 0; i < data.size(); ++i) // 3 = 2 * 0xfe + sum
@@ -335,6 +445,7 @@ bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *result, QByt
//logMessage(" CURR DATA: " << stringFromArray(data));
//QByteArray prefix = "READ BUF: ";
//logMessage((prefix + "HEADER: " + stringFromArray(header).toLatin1()).data());
+ linkEstablishmentMode = false; //have received a good TRK packet, therefore in sync
return true;
}
diff --git a/tools/runonphone/symbianutils/trkutils.h b/tools/runonphone/symbianutils/trkutils.h
index e571028..d365f0d 100644
--- a/tools/runonphone/symbianutils/trkutils.h
+++ b/tools/runonphone/symbianutils/trkutils.h
@@ -56,6 +56,7 @@ QT_END_NAMESPACE
namespace trk {
typedef unsigned char byte;
+struct TrkResult;
enum Command {
//meta commands
@@ -135,6 +136,20 @@ enum Command {
TrkDSPositionFile = 0xd4
};
+enum DSOSItemTypes {
+ kDSOSProcessItem = 0x0000,
+ kDSOSThreadItem = 0x0001,
+ kDSOSDLLItem = 0x0002,
+ kDSOSAppItem = 0x0003,
+ kDSOSMemBlockItem = 0x0004,
+ kDSOSProcAttachItem = 0x0005,
+ kDSOSThreadAttachItem = 0x0006,
+ kDSOSProcAttach2Item = 0x0007,
+ kDSOSProcRunItem = 0x0008,
+ /* 0x0009 - 0x00ff reserved for general expansion */
+ /* 0x0100 - 0xffff available for target-specific use */
+};
+
enum SerialMultiplexor {
MuxRaw = 0,
MuxTextTrace = 0x0102,
@@ -164,11 +179,14 @@ SYMBIANUTILS_EXPORT void appendString(QByteArray *ba, const QByteArray &str, End
struct SYMBIANUTILS_EXPORT Library
{
- Library() {}
+ Library();
+ explicit Library(const TrkResult &r);
QByteArray name;
uint codeseg;
uint dataseg;
+ //library addresses are valid for a given process (depending on memory model, they might be loaded at the same address in all processes or not)
+ uint pid;
};
struct SYMBIANUTILS_EXPORT TrkAppVersion
@@ -187,6 +205,11 @@ struct SYMBIANUTILS_EXPORT Session
Session();
void reset();
QString deviceDescription(unsigned verbose) const;
+ QString toString() const;
+ // Answer to qXfer::libraries
+ QByteArray gdbLibraryList() const;
+ // Answer to qsDllInfo, can be sent chunk-wise.
+ QByteArray gdbQsDllInfo(int start = 0, int count = -1) const;
// Trk feedback
byte cpuMajor;
@@ -198,6 +221,7 @@ struct SYMBIANUTILS_EXPORT Session
byte extended2TypeSize;
TrkAppVersion trkAppVersion;
uint pid;
+ uint mainTid;
uint tid;
uint codeseg;
uint dataseg;
@@ -206,12 +230,7 @@ struct SYMBIANUTILS_EXPORT Session
typedef QList<Library> Libraries;
Libraries libraries;
- typedef uint Thread;
- typedef QList<Thread> Threads;
- Threads threads;
-
// Gdb request
- uint currentThread;
QStringList modules;
};
diff --git a/tools/runonphone/symbianutils/trkutils_p.h b/tools/runonphone/symbianutils/trkutils_p.h
index 12b0109..05df83a 100644
--- a/tools/runonphone/symbianutils/trkutils_p.h
+++ b/tools/runonphone/symbianutils/trkutils_p.h
@@ -55,7 +55,7 @@ void appendDateTime(QByteArray *ba, QDateTime dateTime, Endianness = TargetByteO
// returns a QByteArray containing optionally
// the serial frame [0x01 0x90 <len>] and 0x7e encoded7d(ba) 0x7e
QByteArray frameMessage(byte command, byte token, const QByteArray &data, bool serialFrame);
-bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, QByteArray *rawData = 0);
+bool extractResult(QByteArray *buffer, bool serialFrame, TrkResult *r, bool& linkEstablishmentMode, QByteArray *rawData = 0);
} // namespace trk
diff --git a/tools/runonphone/trksignalhandler.cpp b/tools/runonphone/trksignalhandler.cpp
index 2abf91f..898692a 100644
--- a/tools/runonphone/trksignalhandler.cpp
+++ b/tools/runonphone/trksignalhandler.cpp
@@ -42,7 +42,19 @@
#include <QDebug>
#include <QCoreApplication>
#include <QObject>
+#include <QFile>
+#include <QDir>
#include "trksignalhandler.h"
+#include "trkutils.h"
+
+class CrashState
+{
+public:
+ uint pid;
+ uint tid;
+ QString crashReason;
+ uint crashPC;
+};
class TrkSignalHandlerPrivate
{
@@ -55,6 +67,14 @@ private:
QTextStream err;
int loglevel;
int lastpercent;
+ QList<trk::Library> libraries;
+ QFile crashlogtextfile;
+ QFile crashstackfile;
+ QList<CrashState> queuedCrashes;
+ QList<int> dyingThreads;
+ QString crashlogPath;
+ bool crashlog;
+ bool terminateNeeded;
};
void TrkSignalHandler::copyingStarted()
@@ -108,6 +128,7 @@ void TrkSignalHandler::startingApplication()
void TrkSignalHandler::applicationRunning(uint pid)
{
+ Q_UNUSED(pid)
if (d->loglevel > 0)
d->out << "Running..." << endl;
}
@@ -155,13 +176,163 @@ void TrkSignalHandler::setLogLevel(int level)
d->loglevel = level;
}
+void TrkSignalHandler::setCrashLogging(bool enabled)
+{
+ d->crashlog = enabled;
+}
+
+void TrkSignalHandler::setCrashLogPath(QString path)
+{
+ d->crashlogPath = path;
+}
+
+bool lessThanCodeBase(const trk::Library& cs1, const trk::Library& cs2)
+{
+ return cs1.codeseg < cs2.codeseg;
+}
+
void TrkSignalHandler::stopped(uint pc, uint pid, uint tid, const QString& reason)
{
d->err << "STOPPED: pc=" << hex << pc << " pid=" << pid
<< " tid=" << tid << dec << " - " << reason << endl;
- // if it was a breakpoint, then we could continue with "emit resume(pid, tid);"
- // since we have set no breakpoints, it will be a just in time debug of a panic / exception
- emit terminate();
+
+ if (d->crashlog) {
+ CrashState cs;
+ cs.pid = pid;
+ cs.tid = tid;
+ cs.crashPC = pc;
+ cs.crashReason = reason;
+
+ if (d->dyingThreads.contains(tid)) {
+ if(d->queuedCrashes.isEmpty())
+ emit terminate();
+ else
+ d->terminateNeeded = true;
+ } else {
+ d->queuedCrashes.append(cs);
+ d->dyingThreads.append(tid);
+
+ if (d->queuedCrashes.count() == 1) {
+ d->err << "Fetching registers and stack..." << endl;
+ emit getRegistersAndCallStack(pid, tid);
+ }
+ }
+ }
+ else
+ emit terminate();
+}
+
+void TrkSignalHandler::registersAndCallStackReadComplete(const QList<uint>& registers, const QByteArray& stack)
+{
+ CrashState cs = d->queuedCrashes.first();
+ QDir dir(d->crashlogPath);
+ d->crashlogtextfile.setFileName(dir.filePath(QString("d_exc_%1.txt").arg(cs.tid)));
+ d->crashstackfile.setFileName(dir.filePath(QString("d_exc_%1.stk").arg(cs.tid)));
+ d->crashlogtextfile.open(QIODevice::WriteOnly);
+ QTextStream crashlog(&d->crashlogtextfile);
+
+ crashlog << "-----------------------------------------------------------------------------" << endl;
+ crashlog << "EKA2 USER CRASH LOG" << endl;
+ crashlog << "Thread Name: " << QString("ProcessID-%1::ThreadID-%2").arg(cs.pid).arg(cs.tid) << endl;
+ crashlog << "Thread ID: " << cs.tid << endl;
+ //this is wrong, but TRK doesn't make stack limit available so we lie
+ crashlog << QString("User Stack %1-%2").arg(registers.at(13), 8, 16, QChar('0')).arg(registers.at(13) + stack.size(), 8, 16, QChar('0')) << endl;
+ //this is also wrong, but TRK doesn't give all information for exceptions
+ crashlog << QString("Panic: PC=%1 ").arg(cs.crashPC, 8, 16, QChar('0')) << cs.crashReason << endl;
+ crashlog << endl;
+ crashlog << "USER REGISTERS:" << endl;
+ crashlog << QString("CPSR=%1").arg(registers.at(16), 8, 16, QChar('0')) << endl;
+ for (int i=0;i<16;i+=4) {
+ crashlog << QString("r%1=%2 %3 %4 %5")
+ .arg(i, 2, 10, QChar('0'))
+ .arg(registers.at(i), 8, 16, QChar('0'))
+ .arg(registers.at(i+1), 8, 16, QChar('0'))
+ .arg(registers.at(i+2), 8, 16, QChar('0'))
+ .arg(registers.at(i+3), 8, 16, QChar('0')) << endl;
+ }
+ crashlog << endl;
+
+ //emit info for post mortem debug
+ qSort(d->libraries.begin(), d->libraries.end(), lessThanCodeBase);
+ d->err << "Code Segments:" << endl;
+ crashlog << "CODE SEGMENTS:" << endl;
+ for(int i=0; i<d->libraries.count(); i++) {
+ const trk::Library& seg = d->libraries.at(i);
+ if(seg.pid != cs.pid)
+ continue;
+ if (d->loglevel > 1) {
+ d->err << QString("Code: %1 Data: %2 Name: ")
+ .arg(seg.codeseg, 8, 16, QChar('0'))
+ .arg(seg.dataseg, 8, 16, QChar('0'))
+ << seg.name << endl;
+ }
+
+ //produce fake code segment end addresses since we don't get the real ones from TRK
+ uint end;
+ if (i+1 < d->libraries.count())
+ end = d->libraries.at(i+1).codeseg - 1;
+ else
+ end = 0xFFFFFFFF;
+
+ crashlog << QString("%1-%2 ")
+ .arg(seg.codeseg, 8, 16, QChar('0'))
+ .arg(end, 8, 16, QChar('0'))
+ << seg.name << endl;
+ }
+
+ d->crashlogtextfile.close();
+
+ if (d->loglevel > 1) {
+ d->err << "Registers:" << endl;
+ for (int i=0;i<16;i++) {
+ d->err << QString("R%1: %2 ").arg(i, 2, 10, QChar('0')).arg(registers.at(i), 8, 16, QChar('0'));
+ if (i % 4 == 3)
+ d->err << endl;
+ }
+ d->err << QString("CPSR: %1").arg(registers.at(16), 8, 16, QChar('0')) << endl;
+
+ d->err << "Stack:" << endl;
+ uint sp = registers.at(13);
+ for(int i=0; i<stack.size(); i+=16, sp+=16) {
+ d->err << QString("%1: ").arg(sp, 8, 16, QChar('0'));
+ d->err << trk::stringFromArray(stack.mid(i,16));
+ d->err << endl;
+ }
+ }
+ d->crashstackfile.open(QIODevice::WriteOnly);
+ d->crashstackfile.write(stack);
+ d->crashstackfile.close();
+
+ if (d->loglevel > 0)
+ d->err << "Crash logs saved to " << d->crashlogtextfile.fileName() << " & " << d->crashstackfile.fileName() << endl;
+
+ // resume the thread to allow Symbian OS to handle the panic normally.
+ // terminate when a non main thread is suspended reboots the phone (TRK bug)
+ emit resume(cs.pid, cs.tid);
+
+ //fetch next crashed thread
+ d->queuedCrashes.removeFirst();
+ if (d->queuedCrashes.count()) {
+ cs = d->queuedCrashes.first();
+ d->err << "Fetching registers and stack..." << endl;
+ emit getRegistersAndCallStack(cs.pid, cs.tid);
+ }
+ else if (d->terminateNeeded)
+ emit terminate();
+
+}
+
+void TrkSignalHandler::libraryLoaded(const trk::Library &lib)
+{
+ d->libraries << lib;
+}
+
+void TrkSignalHandler::libraryUnloaded(const trk::Library &lib)
+{
+ for (QList<trk::Library>::iterator i = d->libraries.begin(); i != d->libraries.end(); i++) {
+ if((*i).name == lib.name && (*i).pid == lib.pid)
+ i = d->libraries.erase(i);
+ }
}
void TrkSignalHandler::timeout()
@@ -174,7 +345,8 @@ TrkSignalHandlerPrivate::TrkSignalHandlerPrivate()
: out(stdout),
err(stderr),
loglevel(0),
- lastpercent(0)
+ lastpercent(0),
+ terminateNeeded(false)
{
}
diff --git a/tools/runonphone/trksignalhandler.h b/tools/runonphone/trksignalhandler.h
index d31e46f..bfe2c3e 100644
--- a/tools/runonphone/trksignalhandler.h
+++ b/tools/runonphone/trksignalhandler.h
@@ -43,6 +43,7 @@
#define TRKSIGNALHANDLER_H
#include <QObject>
#include <QString>
+#include "symbianutils/trkutils.h"
class TrkSignalHandlerPrivate;
class TrkSignalHandler : public QObject
@@ -66,13 +67,20 @@ public slots:
void stateChanged(int);
void stopped(uint pc, uint pid, uint tid, const QString& reason);
void timeout();
+ void libraryLoaded(const trk::Library &lib);
+ void libraryUnloaded(const trk::Library &lib);
+ void registersAndCallStackReadComplete(const QList<uint>& registers, const QByteArray& stack);
signals:
void resume(uint pid, uint tid);
+ void stop(uint pid, uint tid);
void terminate();
+ void getRegistersAndCallStack(uint pid, uint tid);
public:
TrkSignalHandler();
~TrkSignalHandler();
void setLogLevel(int);
+ void setCrashLogging(bool);
+ void setCrashLogPath(QString);
private:
TrkSignalHandlerPrivate *d;
};
diff --git a/translations/check-ts.pl b/translations/check-ts.pl
index 5f38703..067cad8 100755
--- a/translations/check-ts.pl
+++ b/translations/check-ts.pl
@@ -43,19 +43,18 @@
use strict;
-# "qt" must come last to avoid prefix matching.
-my @groups = ("assistant", "designer", "linguist", "qt_help", "qtconfig", "qvfb", "qt");
+my @groups = ("qt", "assistant", "designer", "linguist", "qt_help", "qtconfig", "qvfb");
my %scores = ();
my %langs = ();
-my $files = join("\n", <*.ts>);
+my $files = join("\n", <*_??.ts>);
my $res = `xmlpatterns -param files=\"$files\" check-ts.xq`;
for my $i (split(/ /, $res)) {
- $i =~ /^([^.]+).ts:(.*)$/;
+ $i =~ /^([^.]+)\.ts:(.*)$/;
my ($fn, $pc) = ($1, $2);
for my $g (@groups) {
- if ($fn =~ /^${g}_(.*)$/) {
+ if ($fn =~ /^${g}_((.._)?..)$/) {
my $lang = $1;
$scores{$g}{$lang} = $pc;
$langs{$lang} = 1;
@@ -64,10 +63,6 @@ for my $i (split(/ /, $res)) {
}
}
-# now we move "qt" to the front, as it should be the first column.
-pop @groups;
-unshift @groups, "qt";
-
my $code = "";
print "L10n ";
diff --git a/translations/translations.pri b/translations/translations.pri
index 9ab72fc..fbc1596 100644
--- a/translations/translations.pri
+++ b/translations/translations.pri
@@ -1,80 +1,80 @@
-defineReplace(prependAll) {
- prepend = $$1
- arglist = $$2
- append = $$3
- for(a,arglist) {
- result += $${prepend}$${a}$${append}
- }
- return ($$result)
-}
-
+qtPrepareTool(LCONVERT, lconvert)
qtPrepareTool(LUPDATE, lupdate)
LUPDATE += -locations relative -no-ui-lines
-###### Qt Libraries
-
-QT_TS = ar cs da de es fr he hu ja pl pt ru sk sl sv uk zh_CN zh_TW
-
-ts-qt.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \
- -I../include -I../include/Qt \
- 3rdparty/phonon \
- 3rdparty/webkit \
- activeqt \
- corelib \
- declarative \
- gui \
- multimedia \
- network \
- opengl \
- plugins \
- qt3support \
- script \
- scripttools \
- sql \
- svg \
- xml \
- xmlpatterns \
- -ts $$prependAll($$QT_SOURCE_TREE/translations/qt_,$$QT_TS,.ts))
-ts-qt.depends = sub-tools
-
-###### Designer
-
-ts-designer.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \
- ../tools/designer/translations/translations.pro)
-ts-designer.depends = sub-tools
-
-###### Linguist
-
-ts-linguist.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \
- ../tools/linguist/linguist/linguist.pro)
-ts-linguist.depends = sub-tools
-
-###### Assistant
-
-ts-assistant.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \
- ../tools/assistant/translations/translations.pro \
- && $$LUPDATE \
- ../tools/assistant/translations/qt_help.pro)
-ts-assistant.depends = sub-tools
-
-###### Qtconfig
-
-ts-qtconfig.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \
- ../tools/qtconfig/translations/translations.pro)
-ts-qtconfig.depends = sub-tools
-
-###### Qvfp
-
-ts-qvfb.commands = (cd $$QT_SOURCE_TREE/src && $$LUPDATE \
- ../tools/qvfb/translations/translations.pro)
-ts-qvfb.depends = sub-tools
+TS_TARGETS =
+
+# meta target name, target name, lupdate base options, files
+defineTest(addTsTarget) {
+ cv = $${2}.commands
+ $$cv = cd $$QT_SOURCE_TREE/src && $$LUPDATE $$3 -ts $$4
+ export($$cv)
+ dv = $${1}.depends
+ $$dv += $$2
+ export($$dv)
+ TS_TARGETS += $$1 $$2
+ export(TS_TARGETS)
+}
-###### Overall Rules
+# target basename, lupdate base options
+defineTest(addTsTargets) {
+ files = $$files($$PWD/$${1}_??.ts) $$files($$PWD/$${1}_??_??.ts)
+ for(file, files) {
+ lang = $$replace(file, .*_((.._)?..)\\.ts$, \\1)
+ addTsTarget(ts-$$lang, ts-$$1-$$lang, $$2, $$file)
+ }
+ addTsTarget(ts-untranslated, ts-$$1-untranslated, $$2, $$PWD/$${1}_untranslated.ts)
+ addTsTarget(ts-all, ts-$$1-all, $$2, $$PWD/$${1}_untranslated.ts $$files)
+}
-ts.depends = ts-qt ts-designer ts-linguist ts-assistant ts-qtconfig ts-qvfb
+addTsTargets(qt, -I../include -I../include/Qt \
+ 3rdparty/phonon \
+ 3rdparty/webkit \
+ activeqt \
+ corelib \
+ declarative \
+ gui \
+ multimedia \
+ network \
+ opengl \
+ plugins \
+ qt3support \
+ script \
+ scripttools \
+ sql \
+ svg \
+ xml \
+ xmlpatterns \
+)
+addTsTargets(designer, ../tools/designer/designer.pro)
+addTsTargets(linguist, ../tools/linguist/linguist/linguist.pro)
+addTsTargets(assistant, ../tools/assistant/tools/assistant/assistant.pro)
+addTsTargets(qt_help, ../tools/assistant/lib/lib.pro)
+addTsTargets(qtconfig, ../tools/qtconfig/qtconfig.pro)
+addTsTargets(qvfb, ../tools/qvfb/qvfb.pro)
check-ts.commands = (cd $$PWD && perl check-ts.pl)
-check-ts.depends = ts
+check-ts.depends = ts-all
+
+isEqual(QMAKE_DIR_SEP, /) {
+ commit-ts.commands = \
+ cd $$PWD/..; \
+ for f in `git diff-files --name-only translations/*_??.ts`; do \
+ $$LCONVERT -locations none -i \$\$f -o \$\$f; \
+ done; \
+ git add translations/*_??.ts && git commit
+} else {
+ wd = $$replace(PWD, /, \\)\\..
+ commit-ts.commands = \
+ cd $$wd && \
+ for /f usebackq %%f in (`git diff-files --name-only translations/*_??.ts`) do \
+ $$LCONVERT -locations none -i %%f -o %%f $$escape_expand(\\n\\t) \
+ cd $$wd && git add translations/*_??.ts && git commit
+}
+
+ts.commands = \
+ @echo \"The \'ts\' target has been removed in favor of more fine-grained targets.\" && \
+ echo \"Use \'ts-<target>-<lang>\' or \'ts-<lang>\' instead. To add a language,\" && \
+ echo \"use \'untranslated\' for <lang>, rename the files and re-run \'qmake\'.\"
-QMAKE_EXTRA_TARGETS += ts-qt ts-designer ts-linguist ts-assistant ts-qtconfig ts-qvfb \
- ts check-ts
+QMAKE_EXTRA_TARGETS += $$unique(TS_TARGETS) ts commit-ts check-ts