summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEckhart Koppen <eckhart.koppen@nokia.com>2011-04-20 11:52:57 +0300
committerEckhart Koppen <eckhart.koppen@nokia.com>2011-04-20 11:52:57 +0300
commitfb3e9bc2d941462f1244aaf0ea79425a307f883d (patch)
treeafce91959098ec887ce466abc6e40342261df3db
parentc61d909c7b815319e40ba27d7f84e92aa5f1f946 (diff)
parent6f0dc7cc40dd63763a581a7fb6d4e76649b8026c (diff)
Merge branch 'master' into 1.2.0v1.2.0
-rw-r--r--config.tests/bme/bme.pro7
-rw-r--r--config.tests/bme/main.cpp47
-rw-r--r--config.tests/corewlan/corewlan.pro2
-rw-r--r--config.tests/etelpacketservice_symbian/etelpacketservice_symbian.pro9
-rw-r--r--config.tests/etelpacketservice_symbian/main.cpp49
-rwxr-xr-xconfigure23
-rw-r--r--configure.bat1
-rw-r--r--dist/changes-1.2.0-beta1238
-rw-r--r--doc/config/qt-html-templates-online.qdocconf3
-rw-r--r--doc/src/bearermanagement.qdoc2
-rw-r--r--doc/src/camera.qdoc2
-rw-r--r--doc/src/contacts.qdoc4
-rw-r--r--doc/src/examples/quickstart.qdoc4
-rw-r--r--doc/src/feedback.qdoc2
-rw-r--r--doc/src/gallery.qdoc2
-rw-r--r--doc/src/index.qdoc15
-rw-r--r--doc/src/location.qdoc10
-rw-r--r--doc/src/messaging.qdoc2
-rw-r--r--doc/src/organizer.qdoc2
-rw-r--r--doc/src/plugins/qml-multimedia.qdoc17
-rw-r--r--doc/src/publ-subs.qdoc5
-rw-r--r--doc/src/qlandmarks.qdoc2
-rw-r--r--doc/src/qtmobility-release-notes.qdoc3
-rw-r--r--doc/src/sensors.qdoc2
-rw-r--r--doc/src/sf.qdoc2
-rw-r--r--doc/src/si.qdoc2
-rw-r--r--doc/src/versit.qdoc2
-rw-r--r--examples/btscanner/device.cpp2
-rw-r--r--examples/camera/camera.pro2
-rw-r--r--examples/declarative-camera/CaptureControls.qml179
-rw-r--r--examples/declarative-camera/declarative-camera.qml12
-rw-r--r--examples/declarative-camera/qmlcamera.cpp2
-rw-r--r--examples/declarative-location/landmarkmap/landmarkmap.pro1
-rw-r--r--examples/declarative-location/landmarkmap/qmllandmarkmap.cpp2
-rw-r--r--examples/landmarkbrowser/landmarkadddialog.cpp15
-rw-r--r--examples/landmarkbrowser/landmarkadddialog.h4
-rw-r--r--examples/landmarkbrowser/landmarkbrowser.cpp32
-rw-r--r--examples/ndefeditor/mainwindow.cpp51
-rw-r--r--examples/ndefeditor/mainwindow.h1
-rw-r--r--examples/ndefeditor/mainwindow.ui7
-rw-r--r--examples/sensors/sensors.pro3
-rw-r--r--examples/sensors/show_reflectance/main.cpp75
-rw-r--r--examples/sensors/show_reflectance/show_reflectance.pro3
-rw-r--r--examples/sfwecho/sfwecho_service/main.cpp25
-rw-r--r--examples/sysinfo/dialog.cpp4
-rw-r--r--examples/sysinfo/dialog.h3
-rw-r--r--features/basic_examples_setup.pri1
-rw-r--r--features/mobility.prf.template2
-rw-r--r--features/qtservice.prf4
-rw-r--r--plugins/contacts/symbian/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp3
-rw-r--r--plugins/contacts/symbian/contactsmodel/tsrc/t_cntmatch.cpp16
-rw-r--r--plugins/contacts/symbian/contactsmodel/tsrc/t_nomach.cpp2
-rw-r--r--plugins/declarative/declarative.pro4
-rw-r--r--plugins/declarative/multimedia/qdeclarativecamera.cpp161
-rw-r--r--plugins/declarative/systeminfo/qdeclarativenetworkinfo.cpp60
-rw-r--r--plugins/declarative/systeminfo/qdeclarativenetworkinfo_p.h14
-rw-r--r--plugins/multimedia/directshow/camera/camera.pri31
-rw-r--r--plugins/multimedia/directshow/camera/directshowglobal.h236
-rw-r--r--plugins/multimedia/directshow/camera/dscameracontrol.cpp103
-rw-r--r--plugins/multimedia/directshow/camera/dscameracontrol.h94
-rw-r--r--plugins/multimedia/directshow/camera/dscameraservice.cpp114
-rw-r--r--plugins/multimedia/directshow/camera/dscameraservice.h88
-rw-r--r--plugins/multimedia/directshow/camera/dscamerasession.cpp1160
-rw-r--r--plugins/multimedia/directshow/camera/dscamerasession.h208
-rw-r--r--plugins/multimedia/directshow/camera/dsimagecapturecontrol.cpp83
-rw-r--r--plugins/multimedia/directshow/camera/dsimagecapturecontrol.h80
-rw-r--r--plugins/multimedia/directshow/camera/dsvideodevicecontrol.cpp168
-rw-r--r--plugins/multimedia/directshow/camera/dsvideodevicecontrol.h83
-rw-r--r--plugins/multimedia/directshow/camera/dsvideorenderer.cpp72
-rw-r--r--plugins/multimedia/directshow/camera/dsvideorenderer.h77
-rw-r--r--plugins/multimedia/directshow/camera/dsvideowidgetcontrol.cpp250
-rw-r--r--plugins/multimedia/directshow/camera/dsvideowidgetcontrol.h154
-rw-r--r--plugins/multimedia/directshow/directshow.pro1
-rw-r--r--plugins/multimedia/directshow/dsserviceplugin.cpp79
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp9
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabincontrol.h1
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabinimagecapture.cpp6
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabinrecorder.cpp1
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.cpp194
-rw-r--r--plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.h23
-rw-r--r--plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp214
-rw-r--r--plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h15
-rw-r--r--plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp75
-rw-r--r--plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.h5
-rw-r--r--plugins/multimedia/gstreamer/qgstreamergltexturerenderer.cpp37
-rw-r--r--plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp2
-rw-r--r--plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp6
-rw-r--r--plugins/organizer/mkcal/mkcalid.h3
-rw-r--r--plugins/sensors/meego/Sensors.conf5
-rw-r--r--plugins/sensors/meego/main.cpp3
-rw-r--r--plugins/sensors/meego/meego.pri7
-rw-r--r--plugins/sensors/meego/meegoaccelerometer.cpp12
-rw-r--r--plugins/sensors/meego/meegoaccelerometer.h4
-rw-r--r--plugins/sensors/meego/meegoals.cpp9
-rw-r--r--plugins/sensors/meego/meegoals.h2
-rw-r--r--plugins/sensors/meego/meegocompass.cpp9
-rw-r--r--plugins/sensors/meego/meegocompass.h2
-rw-r--r--plugins/sensors/meego/meegogyroscope.cpp12
-rw-r--r--plugins/sensors/meego/meegogyroscope.h4
-rw-r--r--plugins/sensors/meego/meegoirproximitysensor.cpp83
-rw-r--r--plugins/sensors/meego/meegoirproximitysensor.h75
-rw-r--r--plugins/sensors/meego/meegolightsensor.cpp9
-rw-r--r--plugins/sensors/meego/meegolightsensor.h2
-rw-r--r--plugins/sensors/meego/meegomagnetometer.cpp12
-rw-r--r--plugins/sensors/meego/meegomagnetometer.h4
-rw-r--r--plugins/sensors/meego/meegoorientationsensor.cpp9
-rw-r--r--plugins/sensors/meego/meegoorientationsensor.h2
-rw-r--r--plugins/sensors/meego/meegoproximitysensor.cpp9
-rw-r--r--plugins/sensors/meego/meegoproximitysensor.h3
-rw-r--r--plugins/sensors/meego/meegorotationsensor.cpp10
-rw-r--r--plugins/sensors/meego/meegorotationsensor.h2
-rw-r--r--plugins/sensors/meego/meegosensorbase.cpp18
-rw-r--r--plugins/sensors/meego/meegosensorbase.h35
-rw-r--r--plugins/sensors/meego/meegotapsensor.cpp2
-rw-r--r--plugins/sensors/meego/meegotapsensor.h2
-rw-r--r--plugins/sensors/meego/qirproximitysensor.cpp153
-rw-r--r--plugins/sensors/meego/qirproximitysensor.h82
-rw-r--r--plugins/sensors/meego/qirproximitysensor_p.h78
-rw-r--r--plugins/sensors/n900/n900proximitysensor.cpp9
-rw-r--r--plugins/sensors/symbian/rotationsensorsym.cpp19
-rw-r--r--src/bearer/qnetworkconfigmanager.cpp9
-rw-r--r--src/bearer/qnetworkconfiguration.cpp5
-rw-r--r--src/bearer/qnetworksession.cpp141
-rw-r--r--src/connectivity/bluetooth/qbluetooth.cpp1
-rw-r--r--src/connectivity/bluetooth/qbluetoothaddress.cpp5
-rw-r--r--src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.cpp3
-rw-r--r--src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h1
-rw-r--r--src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp2
-rw-r--r--src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h6
-rw-r--r--src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_symbian.cpp73
-rw-r--r--src/connectivity/bluetooth/qbluetoothdeviceinfo.cpp1
-rw-r--r--src/connectivity/bluetooth/qbluetoothdeviceinfo.h10
-rw-r--r--src/connectivity/bluetooth/qbluetoothlocaldevice.cpp7
-rw-r--r--src/connectivity/bluetooth/qbluetoothlocaldevice.h4
-rw-r--r--src/connectivity/bluetooth/qbluetoothlocaldevice_symbian.cpp6
-rw-r--r--src/connectivity/bluetooth/qbluetoothservicediscoveryagent.cpp1
-rw-r--r--src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h4
-rw-r--r--src/connectivity/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp3
-rw-r--r--src/connectivity/bluetooth/qbluetoothservicediscoveryagent_symbian.cpp9
-rw-r--r--src/connectivity/bluetooth/qbluetoothserviceinfo.cpp1
-rw-r--r--src/connectivity/bluetooth/qbluetoothserviceinfo_symbian.cpp4
-rw-r--r--src/connectivity/bluetooth/qbluetoothsocket.cpp13
-rw-r--r--src/connectivity/bluetooth/qbluetoothsocket.h4
-rw-r--r--src/connectivity/bluetooth/qbluetoothsocket_p.h15
-rw-r--r--src/connectivity/bluetooth/qbluetoothsocket_symbian.cpp411
-rw-r--r--src/connectivity/bluetooth/qbluetoothtransfermanager.cpp1
-rw-r--r--src/connectivity/bluetooth/qbluetoothtransferreply.cpp1
-rw-r--r--src/connectivity/bluetooth/qbluetoothtransferreply_bluez_p.h4
-rw-r--r--src/connectivity/bluetooth/qbluetoothtransferrequest.cpp11
-rw-r--r--src/connectivity/bluetooth/qbluetoothuuid.cpp1
-rw-r--r--src/connectivity/bluetooth/ql2capserver.cpp1
-rw-r--r--src/connectivity/bluetooth/ql2capserver.h7
-rw-r--r--src/connectivity/bluetooth/ql2capserver_p.h23
-rw-r--r--src/connectivity/bluetooth/ql2capserver_symbian.cpp215
-rw-r--r--src/connectivity/bluetooth/qrfcommserver.cpp1
-rw-r--r--src/connectivity/bluetooth/qrfcommserver.h7
-rw-r--r--src/connectivity/bluetooth/qrfcommserver_p.h19
-rw-r--r--src/connectivity/bluetooth/qrfcommserver_symbian.cpp226
-rw-r--r--src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.cpp165
-rw-r--r--src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.h17
-rw-r--r--src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.cpp4
-rw-r--r--src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.h4
-rw-r--r--src/connectivity/bluetooth/symbian/bluetoothsymbianregistryadapter.h4
-rw-r--r--src/connectivity/nfc/maemo6/socketrequestor.cpp16
-rw-r--r--src/connectivity/nfc/nfc.pri14
-rw-r--r--src/connectivity/nfc/qdeclarativendefrecord.h2
-rw-r--r--src/connectivity/nfc/qllcpserver.cpp1
-rw-r--r--src/connectivity/nfc/qllcpsocket.cpp1
-rw-r--r--src/connectivity/nfc/qndeffilter.cpp1
-rw-r--r--src/connectivity/nfc/qndefmessage.cpp1
-rw-r--r--src/connectivity/nfc/qndefnfctextrecord.cpp1
-rw-r--r--src/connectivity/nfc/qndefnfcurirecord.cpp1
-rw-r--r--src/connectivity/nfc/qndefrecord.cpp1
-rw-r--r--src/connectivity/nfc/qnearfieldmanager.cpp1
-rw-r--r--src/connectivity/nfc/qnearfieldmanager_maemo6.cpp2
-rw-r--r--src/connectivity/nfc/qnearfieldtagmifare_symbian.cpp11
-rw-r--r--src/connectivity/nfc/qnearfieldtagmifare_symbian_p.h4
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype1.cpp55
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype1.h4
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype1_symbian.cpp8
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype1_symbian_p.h4
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype2.cpp14
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype2.h6
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype2_symbian.cpp9
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype2_symbian_p.h4
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype3.cpp1
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype3_symbian.cpp11
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype3_symbian_p.h4
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype4.cpp1
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype4_symbian.cpp8
-rw-r--r--src/connectivity/nfc/qnearfieldtagtype4_symbian_p.h4
-rw-r--r--src/connectivity/nfc/qnearfieldtarget.cpp36
-rw-r--r--src/connectivity/nfc/qnearfieldtarget.h6
-rw-r--r--src/connectivity/nfc/qnearfieldtarget_maemo6.cpp41
-rw-r--r--src/connectivity/nfc/qnearfieldtarget_maemo6_p.h25
-rw-r--r--src/connectivity/nfc/symbian/debug.h19
-rw-r--r--src/connectivity/nfc/symbian/llcpsockettype1_symbian.cpp2
-rw-r--r--src/connectivity/nfc/symbian/llcpsockettype2_symbian.h2
-rw-r--r--src/connectivity/nfc/symbian/nearfieldmanager_symbian.cpp1
-rw-r--r--src/connectivity/nfc/symbian/nearfieldndeftarget_symbian.cpp1
-rw-r--r--src/connectivity/nfc/symbian/nearfieldtag_symbian.cpp1
-rw-r--r--src/connectivity/nfc/symbian/nearfieldtagimpl_symbian.h26
-rw-r--r--src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.cpp14
-rw-r--r--src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.h7
-rw-r--r--src/connectivity/nfc/symbian/nearfieldtagndefrequest_symbian.cpp6
-rw-r--r--src/connectivity/nfc/symbian/nearfieldtargetfactory_symbian.cpp1
-rw-r--r--src/contacts/details/qcontactdetails.cpp45
-rw-r--r--src/contacts/engines/qcontactinvalidbackend.cpp7
-rw-r--r--src/contacts/engines/qcontactmemorybackend.cpp23
-rw-r--r--src/contacts/engines/qcontactsimulatorbackend.cpp1
-rw-r--r--src/contacts/filters/qcontactchangelogfilter.cpp7
-rw-r--r--src/contacts/filters/qcontactdetailfilter.cpp9
-rw-r--r--src/contacts/filters/qcontactdetailrangefilter.cpp7
-rw-r--r--src/contacts/filters/qcontactintersectionfilter.cpp7
-rw-r--r--src/contacts/filters/qcontactinvalidfilter.cpp7
-rw-r--r--src/contacts/filters/qcontactlocalidfilter.cpp9
-rw-r--r--src/contacts/filters/qcontactrelationshipfilter.cpp9
-rw-r--r--src/contacts/filters/qcontactunionfilter.cpp11
-rw-r--r--src/contacts/qcontact.cpp9
-rw-r--r--src/contacts/qcontactabstractrequest.cpp1
-rw-r--r--src/contacts/qcontactaction.cpp1
-rw-r--r--src/contacts/qcontactactiondescriptor.cpp1
-rw-r--r--src/contacts/qcontactactionfactory.cpp1
-rw-r--r--src/contacts/qcontactactionmanager_p.cpp1
-rw-r--r--src/contacts/qcontactactiontarget.cpp1
-rw-r--r--src/contacts/qcontactchangeset.cpp9
-rw-r--r--src/contacts/qcontactdetail.cpp25
-rw-r--r--src/contacts/qcontactdetaildefinition.cpp3
-rw-r--r--src/contacts/qcontactdetailfielddefinition.cpp5
-rw-r--r--src/contacts/qcontactfetchhint.cpp1
-rw-r--r--src/contacts/qcontactfilter.cpp5
-rw-r--r--src/contacts/qcontactid.cpp7
-rw-r--r--src/contacts/qcontactmanager.cpp76
-rw-r--r--src/contacts/qcontactmanager.h4
-rw-r--r--src/contacts/qcontactmanager_p.cpp37
-rw-r--r--src/contacts/qcontactmanager_p.h7
-rw-r--r--src/contacts/qcontactmanagerengine.cpp9
-rw-r--r--src/contacts/qcontactmanagerenginefactory.cpp11
-rw-r--r--src/contacts/qcontactobserver.cpp8
-rw-r--r--src/contacts/qcontactrelationship.cpp11
-rw-r--r--src/contacts/qcontactsortorder.cpp5
-rw-r--r--src/contacts/requests/qcontactdetaildefinitionfetchrequest.cpp5
-rw-r--r--src/contacts/requests/qcontactdetaildefinitionremoverequest.cpp7
-rw-r--r--src/contacts/requests/qcontactdetaildefinitionsaverequest.cpp7
-rw-r--r--src/contacts/requests/qcontactfetchrequest.cpp5
-rw-r--r--src/contacts/requests/qcontactlocalidfetchrequest.cpp5
-rw-r--r--src/contacts/requests/qcontactrelationshipfetchrequest.cpp6
-rw-r--r--src/contacts/requests/qcontactrelationshipremoverequest.cpp5
-rw-r--r--src/contacts/requests/qcontactrelationshipsaverequest.cpp5
-rw-r--r--src/contacts/requests/qcontactremoverequest.cpp5
-rw-r--r--src/contacts/requests/qcontactsaverequest.cpp5
-rw-r--r--src/feedback/qfeedbackactuator.cpp1
-rw-r--r--src/feedback/qfeedbackeffect.cpp1
-rw-r--r--src/feedback/qfeedbackplugin.cpp11
-rw-r--r--src/gallery/qabstractgallery.cpp1
-rw-r--r--src/gallery/qdocumentgallery.cpp1
-rw-r--r--src/gallery/qgalleryabstractrequest.cpp1
-rw-r--r--src/gallery/qgalleryabstractresponse.cpp1
-rw-r--r--src/gallery/qgalleryfilter.cpp3
-rw-r--r--src/gallery/qgalleryitemrequest.cpp1
-rw-r--r--src/gallery/qgalleryquerymodel.cpp1
-rw-r--r--src/gallery/qgalleryqueryrequest.cpp1
-rw-r--r--src/gallery/qgalleryresource.cpp1
-rw-r--r--src/gallery/qgalleryresultset.cpp1
-rw-r--r--src/gallery/qgallerytyperequest.cpp1
-rw-r--r--src/harmattaninstalls/libqtm-examples.install1
-rw-r--r--src/location/landmarks/qlandmark.cpp1
-rw-r--r--src/location/landmarks/qlandmarkabstractrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkattributefilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarkboxfilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarkcategory.cpp1
-rw-r--r--src/location/landmarks/qlandmarkcategoryfetchbyidrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkcategoryfetchrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkcategoryfilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarkcategoryid.cpp3
-rw-r--r--src/location/landmarks/qlandmarkcategoryidfetchrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkcategoryremoverequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkcategorysaverequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkexportrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkfetchbyidrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkfetchrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkfilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarkid.cpp3
-rw-r--r--src/location/landmarks/qlandmarkidfetchrequest.cpp3
-rw-r--r--src/location/landmarks/qlandmarkidfilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarkimportrequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarkintersectionfilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarkmanagerengine.cpp1
-rw-r--r--src/location/landmarks/qlandmarknamefilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarknamesort.cpp1
-rw-r--r--src/location/landmarks/qlandmarkproximityfilter.cpp1
-rw-r--r--src/location/landmarks/qlandmarkremoverequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarksaverequest.cpp1
-rw-r--r--src/location/landmarks/qlandmarksortorder.cpp1
-rw-r--r--src/location/landmarks/qlandmarkunionfilter.cpp3
-rw-r--r--src/location/maps/qgeomaneuver.cpp7
-rw-r--r--src/location/maps/qgeomapcircleobject.cpp9
-rw-r--r--src/location/maps/qgeomapcustomobject.cpp1
-rw-r--r--src/location/maps/qgeomapdata.cpp9
-rw-r--r--src/location/maps/qgeomapgroupobject.cpp1
-rw-r--r--src/location/maps/qgeomapobject.cpp5
-rw-r--r--src/location/maps/qgeomapobjectinfo.cpp11
-rw-r--r--src/location/maps/qgeomapoverlay.cpp1
-rw-r--r--src/location/maps/qgeomappingmanager.cpp1
-rw-r--r--src/location/maps/qgeomappingmanagerengine.cpp1
-rw-r--r--src/location/maps/qgeomappixmapobject.cpp11
-rw-r--r--src/location/maps/qgeomappolygonobject.cpp9
-rw-r--r--src/location/maps/qgeomappolylineobject.cpp5
-rw-r--r--src/location/maps/qgeomaprectangleobject.cpp9
-rw-r--r--src/location/maps/qgeomaprouteobject.cpp7
-rw-r--r--src/location/maps/qgeomaptextobject.cpp13
-rw-r--r--src/location/maps/qgeoroute.cpp1
-rw-r--r--src/location/maps/qgeoroutereply.cpp1
-rw-r--r--src/location/maps/qgeorouterequest.cpp5
-rw-r--r--src/location/maps/qgeoroutesegment.cpp3
-rw-r--r--src/location/maps/qgeoroutingmanager.cpp1
-rw-r--r--src/location/maps/qgeoroutingmanagerengine.cpp1
-rw-r--r--src/location/maps/qgeosearchmanager.cpp1
-rw-r--r--src/location/maps/qgeosearchmanagerengine.cpp1
-rw-r--r--src/location/maps/qgeosearchreply.cpp5
-rw-r--r--src/location/maps/qgeoserviceprovider.cpp1
-rw-r--r--src/location/maps/qgeoserviceproviderfactory.cpp1
-rw-r--r--src/location/maps/qgraphicsgeomap.cpp3
-rw-r--r--src/location/maps/tiled/qgeotiledmapdata.cpp4
-rw-r--r--src/location/maps/tiled/qgeotiledmappingmanagerengine.cpp2
-rw-r--r--src/location/maps/tiled/qgeotiledmapreply.cpp2
-rw-r--r--src/location/maps/tiled/qgeotiledmaprequest.cpp8
-rw-r--r--src/location/qgeoaddress.cpp1
-rw-r--r--src/location/qgeoareamonitor.cpp19
-rw-r--r--src/location/qgeoboundingarea.cpp15
-rw-r--r--src/location/qgeoboundingbox.cpp3
-rw-r--r--src/location/qgeoboundingcircle.cpp1
-rw-r--r--src/location/qgeocoordinate.cpp9
-rw-r--r--src/location/qgeoplace.cpp1
-rw-r--r--src/location/qgeopositioninfo.cpp3
-rw-r--r--src/location/qgeopositioninfosource.cpp5
-rw-r--r--src/location/qgeopositioninfosource_s60.cpp21
-rw-r--r--src/location/qgeopositioninfosourcefactory.cpp1
-rw-r--r--src/location/qgeosatelliteinfo.cpp3
-rw-r--r--src/location/qgeosatelliteinfosource.cpp7
-rw-r--r--src/location/qmlbackendao_s60.cpp5
-rw-r--r--src/location/qnmeapositioninfosource.cpp3
-rw-r--r--src/messaging/qfsengine_symbian.cpp61
-rw-r--r--src/messaging/qmessage.cpp213
-rw-r--r--src/messaging/qmessageaccount.cpp39
-rw-r--r--src/messaging/qmessageaccountfilter.cpp60
-rw-r--r--src/messaging/qmessageaccountid.cpp23
-rw-r--r--src/messaging/qmessageaccountsortorder.cpp31
-rw-r--r--src/messaging/qmessageaddress.cpp19
-rw-r--r--src/messaging/qmessagecontentcontainer.cpp119
-rw-r--r--src/messaging/qmessagecontentcontainer_symbian.cpp20
-rw-r--r--src/messaging/qmessagecontentcontainerid.cpp2
-rw-r--r--src/messaging/qmessagefilter.cpp15
-rw-r--r--src/messaging/qmessagefolder.cpp47
-rw-r--r--src/messaging/qmessagefolderfilter.cpp76
-rw-r--r--src/messaging/qmessagefolderid.cpp23
-rw-r--r--src/messaging/qmessagefoldersortorder.cpp43
-rw-r--r--src/messaging/qmessageid.cpp25
-rw-r--r--src/messaging/qmessagemanager.cpp266
-rw-r--r--src/messaging/qmessageservice.cpp197
-rw-r--r--src/messaging/qmessageservice_maemo.cpp15
-rw-r--r--src/messaging/qmessageservice_win.cpp15
-rw-r--r--src/messaging/qmessagesortorder.cpp73
-rw-r--r--src/messaging/qmessagestore.cpp1
-rw-r--r--src/messaging/qmessagestore_maemo.cpp4
-rw-r--r--src/messaging/qmessagestore_win.cpp4
-rw-r--r--src/messaging/telepathyengine_maemo6.cpp3
-rw-r--r--src/messaging/win32wce/qmailaddress.cpp63
-rw-r--r--src/messaging/win32wce/qmailcodec.cpp109
-rw-r--r--src/messaging/win32wce/qmailid.cpp61
-rw-r--r--src/messaging/win32wce/qmailmessage.cpp737
-rw-r--r--src/messaging/win32wce/qmailmessagefwd.cpp49
-rw-r--r--src/messaging/win32wce/qmailtimestamp.cpp15
-rw-r--r--src/multimedia/audio/qaudiodeviceinfo.cpp8
-rw-r--r--src/multimedia/audio/qaudiosystem.cpp1
-rw-r--r--src/multimedia/effects/qsamplecache_p.cpp2
-rw-r--r--src/multimedia/qaudiocapturesource.cpp3
-rw-r--r--src/multimedia/qaudioencodercontrol.cpp3
-rw-r--r--src/multimedia/qaudioendpointselector.cpp3
-rw-r--r--src/multimedia/qaudionamespace.qdoc70
-rw-r--r--src/multimedia/qcamera.cpp2
-rw-r--r--src/multimedia/qcameracontrol.cpp1
-rw-r--r--src/multimedia/qcameraexposure.cpp1
-rw-r--r--src/multimedia/qcameraexposurecontrol.cpp1
-rw-r--r--src/multimedia/qcameraflashcontrol.cpp1
-rw-r--r--src/multimedia/qcamerafocus.cpp1
-rw-r--r--src/multimedia/qcamerafocuscontrol.cpp1
-rw-r--r--src/multimedia/qcameraimagecapture.cpp3
-rw-r--r--src/multimedia/qcameraimagecapturecontrol.cpp1
-rw-r--r--src/multimedia/qcameraimageprocessing.cpp1
-rw-r--r--src/multimedia/qcameraimageprocessingcontrol.cpp1
-rw-r--r--src/multimedia/qcameralockscontrol.cpp1
-rw-r--r--src/multimedia/qcameraviewfinder.cpp1
-rw-r--r--src/multimedia/qgraphicsvideoitem.cpp1
-rw-r--r--src/multimedia/qimageencodercontrol.cpp3
-rw-r--r--src/multimedia/qmediabindableinterface.cpp3
-rw-r--r--src/multimedia/qmediacontainercontrol.cpp3
-rw-r--r--src/multimedia/qmediacontent.cpp3
-rw-r--r--src/multimedia/qmediacontrol.cpp3
-rw-r--r--src/multimedia/qmediaencodersettings.cpp1
-rw-r--r--src/multimedia/qmediaimageviewer.cpp3
-rw-r--r--src/multimedia/qmediaimageviewerservice.cpp1
-rw-r--r--src/multimedia/qmedianetworkaccesscontrol.cpp1
-rw-r--r--src/multimedia/qmediaobject.cpp3
-rw-r--r--src/multimedia/qmediaplayer.cpp3
-rw-r--r--src/multimedia/qmediaplayercontrol.cpp3
-rw-r--r--src/multimedia/qmediaplaylist.cpp5
-rw-r--r--src/multimedia/qmediaplaylistcontrol.cpp3
-rw-r--r--src/multimedia/qmediaplaylistioplugin.cpp1
-rw-r--r--src/multimedia/qmediaplaylistnavigator.cpp4
-rw-r--r--src/multimedia/qmediaplaylistprovider.cpp3
-rw-r--r--src/multimedia/qmediaplaylistsourcecontrol.cpp3
-rw-r--r--src/multimedia/qmediarecorder.cpp5
-rw-r--r--src/multimedia/qmediarecordercontrol.cpp3
-rw-r--r--src/multimedia/qmediaresource.cpp3
-rw-r--r--src/multimedia/qmediaservice.cpp3
-rw-r--r--src/multimedia/qmediaserviceprovider.cpp7
-rw-r--r--src/multimedia/qmediastreamscontrol.cpp1
-rw-r--r--src/multimedia/qmediatimerange.cpp3
-rw-r--r--src/multimedia/qmetadatareadercontrol.cpp3
-rw-r--r--src/multimedia/qmetadatawritercontrol.cpp3
-rw-r--r--src/multimedia/qpaintervideosurface.cpp3
-rw-r--r--src/multimedia/qradiotuner.cpp1
-rw-r--r--src/multimedia/qradiotunercontrol.cpp3
-rw-r--r--src/multimedia/qvideodevicecontrol.cpp3
-rw-r--r--src/multimedia/qvideoencodercontrol.cpp3
-rw-r--r--src/multimedia/qvideorenderercontrol.cpp3
-rw-r--r--src/multimedia/qvideowidget.cpp1
-rw-r--r--src/multimedia/qvideowidgetcontrol.cpp3
-rw-r--r--src/multimedia/qvideowindowcontrol.cpp3
-rw-r--r--src/multimedia/video/qmemoryvideobuffer.cpp1
-rw-r--r--src/organizer/details/qorganizeritemdetails.cpp21
-rw-r--r--src/organizer/qorganizerabstractrequest.cpp1
-rw-r--r--src/organizer/qorganizeritem.cpp9
-rw-r--r--src/organizer/qorganizeritemdetail.cpp6
-rw-r--r--src/organizer/qorganizeritemdetail_p.h1
-rw-r--r--src/organizer/qorganizermanagerengine.cpp9
-rw-r--r--src/organizer/requests/qorganizeritemsaverequest.cpp1
-rw-r--r--src/publishsubscribe/qmallocpool.cpp5
-rw-r--r--src/publishsubscribe/qpacketprotocol.cpp15
-rw-r--r--src/publishsubscribe/qvaluespace.cpp1
-rw-r--r--src/publishsubscribe/qvaluespacepublisher.cpp1
-rw-r--r--src/publishsubscribe/qvaluespacesubscriber.cpp1
-rw-r--r--src/s60installs/bwins/QtConnectivityu.def1263
-rw-r--r--src/s60installs/deviceconfiguration/mobilityconfig.prf5
-rw-r--r--src/s60installs/eabi/QtConnectivityu.def521
-rw-r--r--src/sensors/qaccelerometer.cpp1
-rw-r--r--src/sensors/qambientlightsensor.cpp1
-rw-r--r--src/sensors/qcompass.cpp3
-rw-r--r--src/sensors/qgyroscope.cpp1
-rw-r--r--src/sensors/qlightsensor.cpp2
-rw-r--r--src/sensors/qmagnetometer.cpp1
-rw-r--r--src/sensors/qorientationsensor.cpp1
-rw-r--r--src/sensors/qproximitysensor.cpp1
-rw-r--r--src/sensors/qrotationsensor.cpp1
-rw-r--r--src/sensors/qsensorbackend.cpp1
-rw-r--r--src/sensors/qsensormanager.cpp1
-rw-r--r--src/sensors/qsensorplugin.cpp1
-rw-r--r--src/sensors/qtapsensor.cpp1
-rw-r--r--src/serviceframework/databasemanager.cpp2
-rw-r--r--src/serviceframework/ipc/objectendpoint.cpp10
-rw-r--r--src/serviceframework/ipc/qmetaobjectbuilder.cpp19
-rw-r--r--src/serviceframework/ipc/qsignalintercepter.cpp1
-rw-r--r--src/serviceframework/ipc/qslotinvoker.cpp1
-rw-r--r--src/serviceframework/qabstractsecuritysession.cpp15
-rw-r--r--src/serviceframework/qremoteserviceregister.cpp2
-rw-r--r--src/serviceframework/qservicecontext.cpp15
-rw-r--r--src/serviceframework/qservicefilter.cpp65
-rw-r--r--src/serviceframework/qserviceinterfacedescriptor.cpp73
-rw-r--r--src/serviceframework/qservicemanager.cpp11
-rw-r--r--src/serviceframework/qserviceplugininterface.cpp17
-rw-r--r--src/serviceframework/servicemetadata.cpp54
-rw-r--r--src/systeminfo/linux/qsysteminfo_linux.cpp34
-rw-r--r--src/systeminfo/linux/qsysteminfo_linux_common.cpp738
-rw-r--r--src/systeminfo/linux/qsysteminfo_linux_common_p.h24
-rw-r--r--src/systeminfo/linux/qsysteminfo_linux_p.h13
-rw-r--r--src/systeminfo/qsystemalignedtimer.cpp7
-rw-r--r--src/systeminfo/qsystembatteryinfo.cpp1
-rw-r--r--src/systeminfo/qsystembatteryinfo.h3
-rw-r--r--src/systeminfo/qsystemdeviceinfo.cpp4
-rw-r--r--src/systeminfo/qsystemdisplayinfo.cpp104
-rw-r--r--src/systeminfo/qsystemdisplayinfo.h22
-rw-r--r--src/systeminfo/qsystemgeneralinfo.cpp173
-rw-r--r--src/systeminfo/qsystemgeneralinfo.h25
-rw-r--r--src/systeminfo/qsysteminfo_mac.mm45
-rw-r--r--src/systeminfo/qsysteminfo_maemo.cpp545
-rw-r--r--src/systeminfo/qsysteminfo_maemo_p.h49
-rw-r--r--src/systeminfo/qsysteminfo_s60.cpp22
-rw-r--r--src/systeminfo/qsysteminfo_s60_p.h2
-rw-r--r--src/systeminfo/qsysteminfo_simulator.cpp61
-rw-r--r--src/systeminfo/qsysteminfo_simulator_p.h29
-rw-r--r--src/systeminfo/qsysteminfocommon_p.h4
-rw-r--r--src/systeminfo/qsystemnetworkinfo.cpp24
-rw-r--r--src/systeminfo/qsystemscreensaver.cpp1
-rw-r--r--src/systeminfo/qsystemstorageinfo.cpp6
-rw-r--r--src/systeminfo/symbian/networkinfo_s60.cpp205
-rw-r--r--src/systeminfo/symbian/networkinfo_s60.h35
-rw-r--r--src/systeminfo/symbian/telephonyinfo_s60.cpp37
-rw-r--r--src/systeminfo/systeminfo.pro53
-rw-r--r--src/versit/qversitcontactexporter.cpp11
-rw-r--r--src/versit/qversitcontactimporter.cpp1
-rw-r--r--src/versit/qversitdocumentwriter_p.cpp1
-rw-r--r--src/versit/qversitresourcehandler.cpp9
-rw-r--r--src/versitorganizer/qversitorganizerexporter.cpp3
-rw-r--r--src/versitorganizer/qversitorganizerhandler.cpp2
-rw-r--r--src/versitorganizer/qversitorganizerimporter.cpp1
-rw-r--r--tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp66
-rw-r--r--tests/auto/qcamerabackend/tst_qcamerabackend.cpp89
-rw-r--r--tests/auto/qcontactmanager/tst_qcontactmanager.cpp34
-rw-r--r--tests/auto/qdeclarativebatteryinfo/qdeclarativebatteryinfo.pro5
-rw-r--r--tests/auto/qdeclarativebatteryinfo/tst_qdeclarativebatteryinfo.cpp472
-rw-r--r--tests/auto/qdeclarativedeviceinfo/qdeclarativedeviceinfo.pro3
-rw-r--r--tests/auto/qdeclarativedisplayinfo/qdeclarativedisplayinfo.pro3
-rw-r--r--tests/auto/qdeclarativedisplayinfo/tst_qdeclarativedisplayinfo.cpp4
-rw-r--r--tests/auto/qdeclarativelandmark/tst_qdeclarativelandmark.cpp4
-rw-r--r--tests/auto/qdeclarativenetworkinfo/qdeclarativenetworkinfo.pro3
-rw-r--r--tests/auto/qdeclarativescreensaver/qdeclarativescreensaver.pro3
-rw-r--r--tests/auto/qdeclarativestorageinfo/qdeclarativestorageinfo.pro3
-rw-r--r--tests/auto/qdeclarativesysteminfo/qdeclarativesysteminfo.pro3
-rw-r--r--tests/auto/qgalleryabstractrequest/tst_qgalleryabstractrequest.cpp31
-rw-r--r--tests/auto/qgalleryabstractresponse/tst_qgalleryabstractresponse.cpp26
-rw-r--r--tests/auto/qgalleryfilter/tst_qgalleryfilter.cpp190
-rw-r--r--tests/auto/qgalleryquerymodel/tst_qgalleryquerymodel.cpp41
-rw-r--r--tests/auto/qgeocoordinate/qlocationtestutils.cpp4
-rw-r--r--tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp37
-rw-r--r--tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp28
-rw-r--r--tests/auto/qgeosearchmanager/tst_qgeosearchmanager.cpp14
-rw-r--r--tests/auto/qgeosearchmanagerplugins/qgeosearchmanagerengine_test.h2
-rwxr-xr-xtests/auto/qlandmarkmanager/tst_qlandmarkmanager.cpp79
-rw-r--r--tests/auto/qmessagestore/tst_qmessagestore.cpp5
-rw-r--r--tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp52
-rw-r--r--tests/auto/qrfcommserver/README.txt6
-rw-r--r--tests/auto/qsensor/test_sensorimpl.cpp30
-rw-r--r--tests/auto/qsensor/test_sensorimpl.h5
-rw-r--r--tests/auto/qsensor/tst_qsensor.cpp32
-rw-r--r--tests/auto/qsystembatteryinfo/qsystembatteryinfo.pro6
-rw-r--r--tests/auto/qsystembatteryinfo/tst_qsystembatteryinfo.cpp464
-rw-r--r--tests/auto/qsystemdeviceinfo/qsystemdeviceinfo.pro5
-rw-r--r--tests/auto/qsystemdeviceinfo/tst_qsystemdeviceinfo.cpp520
-rw-r--r--tests/auto/qsystemdisplayinfo/qsystemdisplayinfo.pro3
-rw-r--r--tests/auto/qsystemdisplayinfo/tst_qsystemdisplayinfo.cpp4
-rw-r--r--tests/auto/qsysteminfo/qsysteminfo.pro5
-rw-r--r--tests/auto/qsysteminfo/tst_qsysteminfo.cpp121
-rw-r--r--tests/auto/qsystemnetworkinfo/qsystemnetworkinfo.pro5
-rw-r--r--tests/auto/qsystemnetworkinfo/tst_qsystemnetworkinfo.cpp516
-rw-r--r--tests/auto/qsystemscreensaver/qsystemscreensaver.pro3
-rw-r--r--tests/auto/qsystemstorageinfo/qsystemstorageinfo.pro6
-rw-r--r--tests/auto/qsystemstorageinfo/tst_qsystemstorageinfo.cpp167
-rw-r--r--tests/auto/qversitcontactexporter/tst_qversitcontactexporter.cpp30
-rw-r--r--tests/auto/qversitcontactplugins/unittest/tst_qversitcontactplugins.cpp4
-rw-r--r--tests/auto/systeminfo.pro3
-rwxr-xr-xtests/declarative-location/visual/shared-qml/ToolBar.qml10
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.0.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.1.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.2.pngbin981 -> 1006 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.3.pngbin972 -> 996 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.4.pngbin972 -> 996 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.5.pngbin981 -> 1006 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.6.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.7.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-image/data/map-image-test.qml842
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.0.pngbin1057 -> 1079 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.1.pngbin1057 -> 1079 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.10.pngbin1057 -> 1079 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.11.pngbin1062 -> 1083 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.12.pngbin1062 -> 1083 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.2.pngbin1057 -> 1079 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.3.pngbin1057 -> 1079 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.4.pngbin1062 -> 1083 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.5.pngbin1046 -> 1068 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.6.pngbin1062 -> 1084 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.7.pngbin1046 -> 1068 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.8.pngbin1062 -> 1083 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.9.pngbin1057 -> 1079 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.qml1436
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.0.pngbin1968 -> 1990 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.1.pngbin1968 -> 1990 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.10.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.11.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.12.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.13.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.14.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.2.pngbin2084 -> 2104 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.3.pngbin2084 -> 2104 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.4.pngbin2084 -> 2104 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.5.pngbin2028 -> 2049 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.6.pngbin2028 -> 2049 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.7.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.8.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.9.pngbin911 -> 934 bytes
-rw-r--r--tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.qml1710
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.0.pngbin8827 -> 8847 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.1.pngbin8827 -> 8847 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.2.pngbin12874 -> 12893 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.3.pngbin16872 -> 16888 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.4.pngbin12874 -> 12893 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.5.pngbin16872 -> 16888 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.qml658
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.0.pngbin8827 -> 8847 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.1.pngbin8827 -> 8847 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.2.pngbin16622 -> 16638 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.3.pngbin12874 -> 12893 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.4.pngbin12874 -> 12893 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.5.pngbin12794 -> 12812 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.6.pngbin10724 -> 10743 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.7.pngbin8594 -> 8612 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.8.pngbin8594 -> 8612 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.9.pngbin5776 -> 5795 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.qml1068
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.0.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.1.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.2.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.3.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.4.pngbin5356 -> 5372 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.5.pngbin4554 -> 4571 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.6.pngbin3661 -> 3676 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.7.pngbin2335 -> 2356 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.8.pngbin2357 -> 2375 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.9.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.qml1112
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.0.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.1.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.2.pngbin5356 -> 5372 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.3.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.4.pngbin5356 -> 5372 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.5.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.6.pngbin1887 -> 1907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.qml796
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.0.pngbin2144 -> 2188 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.1.pngbin2144 -> 2188 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.10.pngbin2144 -> 2188 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.2.pngbin2971 -> 3019 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.3.pngbin2976 -> 3023 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.4.pngbin2975 -> 3023 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.5.pngbin2976 -> 3023 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.6.pngbin2971 -> 3019 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.7.pngbin2971 -> 3019 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.8.pngbin2971 -> 3019 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.9.pngbin2144 -> 2188 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.qml1204
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.0.pngbin2144 -> 2188 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.1.pngbin2144 -> 2188 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.2.pngbin2144 -> 2188 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.3.pngbin1618 -> 1666 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.4.pngbin2149 -> 2194 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.5.pngbin1806 -> 1800 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.6.pngbin2147 -> 2191 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.7.pngbin2147 -> 2191 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.qml872
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.0.pngbin2433 -> 2475 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.1.pngbin2433 -> 2475 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.10.pngbin2433 -> 2475 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.2.pngbin2433 -> 2475 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.3.pngbin3867 -> 3907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.4.pngbin3839 -> 3880 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.5.pngbin3825 -> 3865 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.6.pngbin3839 -> 3880 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.7.pngbin2433 -> 2475 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.8.pngbin3867 -> 3907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.9.pngbin3867 -> 3907 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.qml1315
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.0.pngbin2433 -> 2475 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.1.pngbin2433 -> 2475 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.2.pngbin1910 -> 1955 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.3.pngbin2458 -> 2504 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.4.pngbin2056 -> 1949 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.5.pngbin2441 -> 2483 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.6.pngbin2431 -> 2473 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.7.pngbin2431 -> 2473 bytes
-rw-r--r--tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.qml886
-rw-r--r--tests/nfcsymbianbackend/common/qnfctagtestcommon.h7
-rw-r--r--tests/nfcsymbianbackend/nfctestserviceprovider/nfctestserviceprovider.pro7
-rw-r--r--tests/nfcsymbianbackend/nfctestserviceprovider2/nfctestserviceprovider2.pro7
-rw-r--r--tests/nfcsymbianbackend/qcontenthandler/qcontenthandler.pro7
-rw-r--r--tests/nfcsymbianbackend/qllcpserver/qllcpserver.pro7
-rw-r--r--tests/nfcsymbianbackend/qllcpsocketlocal/qllcpsocketlocal.pro8
-rw-r--r--tests/nfcsymbianbackend/qllcpsocketremote/qllcpsocketremote.pro8
-rw-r--r--tests/nfcsymbianbackend/qllcpsockettype2/qllcpsockettype2.pro8
-rw-r--r--tests/nfcsymbianbackend/qnearfieldmanager/qnearfieldmanager.pro9
-rw-r--r--tests/nfcsymbianbackend/qnearfieldtagtype1/qnearfieldtagtype1.pro8
-rw-r--r--tests/nfcsymbianbackend/qnearfieldtagtype2/qnearfieldtagtype2.pro8
-rw-r--r--tests/nfcsymbianbackend/qnearfieldtagtype3/qnearfieldtagtype3.pro8
-rw-r--r--tests/nfcsymbianbackend/qnearfieldtagtype4/qnearfieldtagtype4.pro8
-rw-r--r--tests/sysinfo-tester/main.cpp39
684 files changed, 19285 insertions, 11065 deletions
diff --git a/config.tests/bme/bme.pro b/config.tests/bme/bme.pro
new file mode 100644
index 0000000000..1f916a4c25
--- /dev/null
+++ b/config.tests/bme/bme.pro
@@ -0,0 +1,7 @@
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+SOURCES += main.cpp
diff --git a/config.tests/bme/main.cpp b/config.tests/bme/main.cpp
new file mode 100644
index 0000000000..1c71a4d2e6
--- /dev/null
+++ b/config.tests/bme/main.cpp
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 "bme/bmeipc.h"
+
+int main(int, char**)
+{
+ return 0;
+}
diff --git a/config.tests/corewlan/corewlan.pro b/config.tests/corewlan/corewlan.pro
index 54a6c36c1f..9d9b7aa02f 100644
--- a/config.tests/corewlan/corewlan.pro
+++ b/config.tests/corewlan/corewlan.pro
@@ -1,4 +1,4 @@
-SOURCES=corewlantest.mm
+OBJECTIVE_SOURCES=corewlantest.mm
TARGET=corewlan
LIBS += -framework CoreWLAN -framework Foundation
CONFIG-=app_bundle
diff --git a/config.tests/etelpacketservice_symbian/etelpacketservice_symbian.pro b/config.tests/etelpacketservice_symbian/etelpacketservice_symbian.pro
new file mode 100644
index 0000000000..4107a794f7
--- /dev/null
+++ b/config.tests/etelpacketservice_symbian/etelpacketservice_symbian.pro
@@ -0,0 +1,9 @@
+CONFIG -= qt
+TEMPLATE = app
+
+# Input
+SOURCES += main.cpp
+
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+LIBS += -letelpckt
+
diff --git a/config.tests/etelpacketservice_symbian/main.cpp b/config.tests/etelpacketservice_symbian/main.cpp
new file mode 100644
index 0000000000..76ff7f1a16
--- /dev/null
+++ b/config.tests/etelpacketservice_symbian/main.cpp
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 <etelpckt.h>
+
+int main(int, char**)
+{
+ TUint aDynCaps = 0;
+ RPacketService packetService;
+ packetService.GetDynamicCaps(aDynCaps);
+}
+
diff --git a/configure b/configure
index e86ebc9570..0fc510a777 100755
--- a/configure
+++ b/configure
@@ -111,6 +111,7 @@ QMKSPEC=
OS="other"
# By default, all modules are requested. Reset this later if -modules is supplied
ORGANIZER_REQUESTED=yes
+TEST_USE_SIMULATOR=
NFC_SYMBIAN=auto
MAC_DEPLOY=
@@ -164,6 +165,7 @@ usage()
echo "-qmake-exec <name> Sets custom binary name for qmake binary"
echo " (default: qmake)"
echo "-no-nfc-symbian Disables the NFC Sybmian backend."
+# echo "-test-sim Use simulator backend for testing systeminfo"
# echo "-staticconfig <name>"
# echo " Avoids running of configuration tests. The default"
# echo " values are sourced from features/platformconfig/<name>.pri"
@@ -293,6 +295,9 @@ while [ "$#" -gt 0 ]; do
LANGUAGES=$2
shift
;;
+ -test-sim)
+ TEST_USE_SIMULATOR="yes"
+ ;;
-no-nfc-symbian)
NFC_SYMBIAN=no
;;
@@ -324,6 +329,11 @@ checkostype()
if [ `uname -s` = "${match}" ]; then
OS="darwin"
QMKSPEC="-spec macx-g++"
+ if [[ `gcc --version` =~ .*llvm.* ]]; then
+ QMKSPEC="-spec macx-llvm"
+ else
+ QMKSPEC="-spec macx-g++"
+ fi
echo "QMAKESPEC = "$QMKSPEC >> "$CONFIG_IN"
fi
}
@@ -339,7 +349,7 @@ findUniversal()
echo "contains(QT_CONFIG,ppc): system(echo CONFIG+=ppc >> mac.inc)" >> 2.pro
echo "contains(QT_CONFIG,ppc64): system(echo CONFIG+=ppc64 >> mac.inc)" >> 2.pro
echo "contains(QT_CONFIG,x86_64): system(echo CONFIG+=x86_64 >> mac.inc)" >> 2.pro
- SOMETIME=`$QMAKE_EXEC -spec macx-g++ 2.pro 2>&1`
+ SOMETIME=`$QMAKE_EXEC $QMKSPEC 2.pro 2>&1`
rm 2.pro
if [ -e "mac.inc" ]; then
echo "exists(mac.inc): include(mac.inc)" >> "$CONFIG_IN"
@@ -500,6 +510,12 @@ else
echo "build_tools = yes" >> "$CONFIG_IN"
fi
+if [ -z "$TEST_USE_SIMULATOR" ]; then
+ echo "test_use_sim = no" >> "$CONFIG_IN"
+else
+ echo "test_use_sim = yes" >> "$CONFIG_IN"
+fi
+
#process languages
if [ -z "LANGUAGES" ]; then
echo "selected_languages =" >> "$CONFIG_IN"
@@ -586,7 +602,7 @@ if [ -z "$PLATFORM_CONFIG" ]; then
#compile tests
compileTest QMF qmf
compileTest NetworkManager networkmanager
- compileTest "CoreWLAN (MacOS 10.6)" corewlan
+ compileTest "CoreWLAN (MacOS >= 10.6)" corewlan
compileTest Immersion immersion
compileTest "MeegoTouch Feedback" meegotouchfeedback
compileTest "Maemo ICD" maemo-icd
@@ -594,6 +610,7 @@ if [ -z "$PLATFORM_CONFIG" ]; then
compileTest "Maemo5 contacts dependencies" maemo5-contacts
compileTest "Maemo5 organizer dependencies" maemo5-calendar
compileTest "Maemo6 landmarks dependencies" maemo6-landmarks
+ compileTest "Maemo Battery Managment Entity" bme
compileTest "Bluez" bluez
compileTest "Proj.4" proj
compileTest "Gstreamer Photography" gstreamer-photography
@@ -601,7 +618,7 @@ if [ -z "$PLATFORM_CONFIG" ]; then
compileTest "Blkid" blkid
compileTest "Pulse Audio" pulseaudio
compileTest "udev" udev
- compileTest "iphb" iphb
+ compileTest "Maemo Heartbeat" iphb
if [ "$NFC_SYMBIAN" = auto ]; then
compileTest "Symbian NFC" nfc_symbian
diff --git a/configure.bat b/configure.bat
index 6258a20fd7..8f8593ea76 100644
--- a/configure.bat
+++ b/configure.bat
@@ -630,6 +630,7 @@ call :compileTest FmTxClientCheck FmTxClient
call :compileTest DiskNotifyClientCheck DiskNotifyClient
call :compileTest ThermalStatus_Symbian thermalstatus_symbian
call :compileTest Flextimer_Symbian symbianflextimer
+call :compileTest ETelPacketservice_symbian etelpacketservice_symbian
goto noTests
:windowsTests
diff --git a/dist/changes-1.2.0-beta1 b/dist/changes-1.2.0-beta1
index fef6d101a4..2a23e1b7fb 100644
--- a/dist/changes-1.2.0-beta1
+++ b/dist/changes-1.2.0-beta1
@@ -19,10 +19,28 @@ Merge Request: http://qt.gitorious.org
New features
------
-Contacts
+ - Qt Connectivity module
+ - Bluetooth and Near-Field-Communication (NFC)
+
+ - MeeGo.com
+ - Added support for this platform
+
+ - Contacts
- Maximum result limit hinting
http://bugreports.qt.nokia.com/browse/QTMOBILITY-652
+ - QtMultimediaKit
+ - Support for choosing the network configuration to use for streaming added
+
+
+Library independent changes
+------
+
+ - pkconfig generation fixed
+ - various build system changes required by the newly added Meego platform
+ support
+
+
****************************************************************************
* Important Behavior Changes *
****************************************************************************
@@ -31,3 +49,221 @@ QtVersit
------
- The FN vCard property will now only be generated if a QContactName is
provided with a CustomLabel field.
+
+
+****************************************************************************
+* Library *
+****************************************************************************
+
+QtConnectivity
+-----
+ - The QNearFieldTarget is now asynchronous.
+ - LLCP socket support on Maemo 6
+ - Improved API documentation and example applications.
+ - Added connectivity QML plugin
+ - Added connectivity QML example applications
+ - Bluetooth Symbian backend
+ - Added bluetooth and nfc bttennis example
+ - Added bluetooth file transfer using Obex Push
+
+
+QtLocation
+-----
+ - QGeoCoordinate::atDistanceAndAzimuth
+ - A positioning backend for MeeGo
+ - Support for positioning plugins
+ - Support for map objects based on arbitrary QGraphicsItems
+ - Support for map bearing and tilting added to the API.
+ - The included map plugin doesn't support them yet.
+
+
+QtFeedback
+------
+ - Use newer CHWRMHaptics API on Symbian^3 for more functionality
+ - Several fixes relating to error handling
+
+ QtMessaging
+ -----
+ - API additions
+ - QMessageAccountFilter::byName(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
+ - QMessageFilter::byTo(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
+ - QMessageFilter::byCc(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
+ - QMessageFilter::byBcc(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
+ - QMessageFolderFilter::byName(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
+ - QMessageFolderFilter::byPath(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
+ - QMessageManager::removeAccount(const QMessageAccountId &id)
+ - QMessageService::moveMessage(const QMessageId &messageId, const QMessageFolderId &toFolderId)
+ - QMessageManager::accountRemoved(const QMessageAccountId &id);
+ - Many bug fixes (most importan below)
+ - Fix QTMOBILITY-771 queryMessages method produces segmentation fault, environment N900
+ - Fix MOBILITY-2017 queryFolders does not list folders in 'My Folders, environment N8
+ - Fix MOBILITY-2234 Message query crashes when fixed Symbian API is used, environment Symbian^3 (TB 9.2)
+ - Fix QTMOBILITY-789 Native SMS sending on Symbian gets blocked when listening for SMS messages, environment Nokia XM 5800
+ - Fix MOBILITY-2289 Updating to, cc & bcc fields does not work correctly, environment S60, Symbian^3
+ - Fix MOBILITY-2292 Getting Binary attachment fails sometimes, environment Symbian^3
+ - Fix MOBILITY-2234 Message query crashes when fixed Symbian API is used, environment Symbian^3 (TB 9.2)
+ - Fix MOBILITY-2136 libqtm-messaging depends on libosso, environment Maemo 6
+ - Fix MOBILITY-2322 Crash on call to QMessageService::send(), environment Maemo 6
+ - Fix MOBILITY-2371 QMessageManager::updateMessage() crashes, environment Symbian^3
+ - Fix MOBILITY-2203 Searching Email folders not possible after sending email, environment Maemo 6
+ - Fix MOBILITY-2687 coverity defects, environment Symbian^3
+
+QtMultimediaKit
+------
+ - Many, many fixes for Symbian audio, video and camera, including support
+ for QtMultimediaKit QML elements
+ - On Symbian, handle missing capabilities gracefully
+ - On Linux with gstreamer, allow QIODevice based streaming
+ - Documentation for QML Camera element was added
+
+QtVersit
+-----
+ - vCard birthday/anniversary properties that are just a date (no time)
+ will be stored as dates, not datetimes
+
+QtContacts
+-----
+ - Several documentation clarifications
+ - Several new QContactFilter convenience functions {address, presence, favorite etc}
+ - New "time out" error code
+
+QtOrganizer
+-----
+ - Meeting request and attachment support (added in TP) has been removed
+ - New "time out" error code.
+
+ - Fixes for maemo5 asynchronous engine
+
+QtServiceFrameWork
+-----
+ - QtMobility has now its own QMetaObjectBuilder
+ - Autotest improvement
+ - Optimisation of Memory usage
+ - Stability improvement of IPC datatransfer
+
+QtSensors
+------
+ - Add QLightSensor (LUX) [MOBILITY-1268]
+ - Add QGyroscope (rotational acceleration) [MOBILITY-1266]
+ - Allow sensor backends to be dynamically registered and unregistered.
+ Backend plug-ins and applications can be notified when the available
+ sensors have changed [MOBILITY-864]
+ - Generic backends no longer override system backends. This primarily
+ affects Symbian, which now uses native Orientation and Rotation backends
+ by default.
+ - Tap sensors that can only detect the axis, not the direction, now have
+ a value they can return [MOBILITY-1878]
+ - setDataRate and setOutputRange can once again be called before the
+ backend is connected [MOBILITY-2087]
+ - Filters were not properly deregisering themselves [MOBILITY-2401]
+ - Don't unconditionally print out plugin loading errors [QTMOBILITY-1034]
+ - Find out what filters are attached to a sensor [QTMOBILITY-574]
+ - Platform-specific notes are available for Symbian, N900 and MeeGo and
+ explain issues particular to each platform [MOBILITY-2481]
+ - Allow setting up the axes on the N900 to match the standard adopted by
+ Symbian and MeeGo [QTMOBILITY-1044]
+ - Qt-style static plugins are now supported
+ - Reading timestamps are not guaranteed to be monotonic (problems have been
+ identified on Symbian, MeeGo and N900)
+ - Blocking the event loop on Symbian no longer results in delayed sensor
+ readings. Readings that cannot be processed quickly enough are now
+ dropped by the system [QTMOBILITY-759]
+ - Improve N900 reading timestamps. Still not guaranteed to be monotonic
+ due to a kernel bug [MOBILITY-2091]
+ - Update the simulator to support QLightSensor [MOBILITY-2686]
+ - As much as possible, ensure sensors supply the current value when they
+ are started. Especially important for sensors that change infrequently
+ (eg. Orientation) [QTMOBILITY-1385]
+ - Don't crash when using QCompass on Symbian [QTMOBILITY-1482]
+ - Allow slower polling of N900 sensors [QTMOBILITY-1505]
+ - N900 proximity sensor cannot run faster than 10Hz [QTMOBILITY-1505]
+
+Plugins
+-----
+ - Declarative plugins containing d suffix in debug build now.
+
+
+QtSysteminfo
+-----
+ - add fm transmitter to QSystemInfo featureSupported
+ - QTMOBILITY-845 QSystemNetworkInfo: MCC and MNC interchanged
+ - Battery level changes fix on symbian.
+ - batteryStatusChanged only works once on symbian.
+ - QTMOBILITY-850 QSystemInfo::version returns wrong info on linux
+ - remove voltageChanged signal from QSystemBatteryInfo
+ - QTMOBILITY-877 setScreenSaverDelayed in qml not working
+ - remove startCurrentMeasurement method from QSystemAlignedTimer
+ - LockType are now flags
+ - QTMOBILITY-969 QSystemDisplayInfo::getOrientation() always returns
+ QSystemDisplayInfo::Unknown in maemo6
+ - QTMOBILITY-970 QSystemDisplayInfo::backlightStatus() always returns
+ QSystemDisplayInfo::BacklightStateUnknown in maemo6
+ - QTMOBILITY-973 QSystemDeviceInfo::isKeyboardFlippedOpen() always
+ returns false in maemo6
+ - QSystemAlignedTimer
+ - QTMOBILITY-977 new connman service name
+ - QTMOBILITY-978 QSystemDeviceInfo::keypadLightOn() always returns false
+ in maemo6
+ - QTMOBILITY-979 QSystemDeviceInfo::lockStatus() always returns
+ QSystemDeviceInfo::UnknownLock in maemo6
+ - QTMOBILITY-985 QSystemDeviceInfo::getActiveProfileDetails() does not
+ retrieve active profile settings in maemo6
+ - QTMOBILITY-922 devicelocked notification
+ - QTMOBILITY-1148 QSystemDeviceInfo should report on thermal state and
+ changes.
+ - profileDetails available to QML
+ - uniqueDeviceId to QML
+ - added orientationChanged signal
+ - gsm support for linux desktop in QSYstemNetworkInfo
+ - add cellDataTechnology to QSystemNetworkInfo
+ - lot of fixes and performance improvements for maemo6
+ - updated systeinfo example app.
+
+QtDocGallery
+-----
+ - Better documents for platform specific properties.
+ - Fixing several bugs.
+
+QtPublishSubscribe
+----
+ - Fix several issues in documents.
+ - Simplify QValueSpaceManager implementation.
+
+****************************************************************************
+* Documentation *
+****************************************************************************
+
+ - Partial fix for QML/C++ properties/enums in declarative camera example.
+ - QAudio namespace link problem from Mobility.
+ - Fix missing qml code sample for Sound effect.
+ - Added disclaimer for China position shifting in Maps.
+ - Set inmodule for various classes.
+ - Updates to location qml plugin docs. Example images.
+ - Updates to Multimedia QML plugin doc.
+ - Replaced symbian.org links with valid ones.
+ - Removed intro text left over from beta. (1.1)
+ - Fixed reference to setCheckable in Haptic Square example.
+ - Updated changes to Feedback doc and hapticsquare example.
+ - Qdoc errors in QOrganizer
+ - Qdoc errors in Contacts
+ - Change Mobility name throughout docs.
+ - Heading fix for 1.2 Mobility.
+ - Heading for Quickstart reference.
+ - RVCT make option
+ - Removed preliminary status where not required in Multimedia.
+ - Fixed typos.
+ - Change QML Support heading to Elements
+ - Removed use of qmlmodule keyword prior to supporting qdoc3 version.
+ - Changes for new qdoc3.
+ - Wording changes to Location and Landmarks.
+ - Changes to snippets in SysInfo
+ - Remove Tech Preview from Camera class docs.
+ - Fix broken example links.
+ - Minor changes to display of QtMobility name and fix online docs build.
+ - Image for declarative flickr example.
+ - Remove non-working search bar from side panel.
+ - Changed wording of reference to Phonon.
+ - Change heading for BETA. Update Platform Compatibility table.
+ - Added minimal example docs and images to Connectivity.
+ - Changes to Connectivity docs.
+
diff --git a/doc/config/qt-html-templates-online.qdocconf b/doc/config/qt-html-templates-online.qdocconf
index 503cf33944..bbcce442ad 100644
--- a/doc/config/qt-html-templates-online.qdocconf
+++ b/doc/config/qt-html-templates-online.qdocconf
@@ -45,10 +45,11 @@ HTML.postheader = \
" </div>\n" \
" </div>\n" \
" <div class=\"box bottombar\" id=\"topics\">\n" \
- " <h2 title=\"Qt Topics\"><span></span>\n" \
+ " <h2 title=\"QtMobility Topics\"><span></span>\n" \
" Qt Topics</h2>\n" \
" <div id=\"list002\" class=\"list\">\n" \
" <ul id=\"ul002\" >\n" \
+ " <li class=\"defaultLink\"><a href=\"quickstart.html\">Quickstart Guide</a></li> \n" \
" <li class=\"defaultLink\"><a href=\"index.html#platform-compatibility\">Platform-specific info</a></li> \n" \
" </ul> \n" \
" </div>\n" \
diff --git a/doc/src/bearermanagement.qdoc b/doc/src/bearermanagement.qdoc
index 71bc97b83f..4c62bb0ec6 100644
--- a/doc/src/bearermanagement.qdoc
+++ b/doc/src/bearermanagement.qdoc
@@ -49,7 +49,7 @@ access points.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Overview
diff --git a/doc/src/camera.qdoc b/doc/src/camera.qdoc
index b50938ae30..c08622d925 100644
--- a/doc/src/camera.qdoc
+++ b/doc/src/camera.qdoc
@@ -46,7 +46,7 @@ for still or video image capture with sound support.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
diff --git a/doc/src/contacts.qdoc b/doc/src/contacts.qdoc
index 834ab3383b..1f60e86a02 100644
--- a/doc/src/contacts.qdoc
+++ b/doc/src/contacts.qdoc
@@ -47,7 +47,7 @@ remote backends. This is part of the QtMobility Project.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Introduction
@@ -67,7 +67,7 @@ applications.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
Contact information is stored in datastores whose functionality is exposed
diff --git a/doc/src/examples/quickstart.qdoc b/doc/src/examples/quickstart.qdoc
index eecaaec274..e814310b28 100644
--- a/doc/src/examples/quickstart.qdoc
+++ b/doc/src/examples/quickstart.qdoc
@@ -28,7 +28,7 @@
/*!
\example quickstart
-\title Quickstart Example
+\title Quickstart guide
The following steps outline how to make a simple
"hello world" like application that uses Qt Mobility.
@@ -205,7 +205,7 @@ on which parts of an API is utilized by an application.
\row
\o \l {Organizer}
\o ReadUserData WriteUserData
- \o No token requirements known at this stage.
+ \o TrackerReadAccess TrackerWriteAccess GRP::calendar GRP::metadata-users
\row
\o \l {Feedback}{Tactile Feedback}
\o No capabilities at this stage.
diff --git a/doc/src/feedback.qdoc b/doc/src/feedback.qdoc
index c16594bc1a..d1ac860170 100644
--- a/doc/src/feedback.qdoc
+++ b/doc/src/feedback.qdoc
@@ -47,7 +47,7 @@ This is part of the QtMobility Project.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Overview
diff --git a/doc/src/gallery.qdoc b/doc/src/gallery.qdoc
index 8052da74c9..5c19d3d50d 100644
--- a/doc/src/gallery.qdoc
+++ b/doc/src/gallery.qdoc
@@ -66,7 +66,7 @@
The QtMobility APIs are placed into the \i{QtMobility} namespace. This
is done to facilitate the future migration of QtMobility APIs into Qt. See
- the \l {Quickstart Example}{Quickstart guide} for an example on how the
+ the \l {Quickstart guide} for an example on how the
namespace impacts on application development.
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index b1cb92525c..3a9feaa0c4 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -81,22 +81,11 @@
there is the possibility of easy transfer of user experience from PC to
phone or vice versa.
- \section1 Namespace
-
- The QtMobility project APIs are placed into the \i{QtMobility} namespace, with
- the important exception of Multimedia. This is done to facilitate the
- future migration of Mobility APIs into Qt.
-
- \section2 Quickstart Guide
-
- See the \l {Quickstart Example}{Quickstart guide} for an example on how
- the namespace impacts on application development.
-
\section1 Getting Started
To get started with QtMobility see the
\list
\o \l {Installation Guide}
- \o \l {Quickstart Example}
+ \o \l {Quickstart guide}{Quickstart Guide}
\o \l {QtMobility Examples}{List of all examples.}
\endlist
@@ -293,7 +282,7 @@
The QtMobility APIs are placed into the QtMobility namespace. This is
done to facilitate the future migration of QtMobility APIs into Qt. See
- the \l {Quickstart Example}{Quickstart guide} for an example on how
+ the \l {Quickstart guide} for an example on how
the namespace impacts on application development.
diff --git a/doc/src/location.qdoc b/doc/src/location.qdoc
index 25efe4f98d..380d282f78 100644
--- a/doc/src/location.qdoc
+++ b/doc/src/location.qdoc
@@ -55,7 +55,7 @@ and mapping and navigation.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Location Positioning
@@ -110,6 +110,7 @@ create an instance of the default satellite data source for the platform,
if one is available. Alternatively, clients can subclass it to provide a
custom satellite data source.
+
\section2 Requesting location data from data sources
To receive data from a source, connect to its
@@ -484,6 +485,13 @@ is part of QtMobility. See the section \l{The Nokia plugin} for more details.
}
\endcode
+\bold {Important notice:} \i {The map data provided by the offline plug-in is
+place-shifted for the area of the People’s Republic of China. To provide
+un-shifted maps of China in an application, the application developer must
+first obtain permission from Chinese officials. The Qt Mobility Location
+API cannot offer this on the API level.}
+
+
\section2 Common classes
\annotatedlist maps
diff --git a/doc/src/messaging.qdoc b/doc/src/messaging.qdoc
index 537fb48eaa..790c1cfca8 100644
--- a/doc/src/messaging.qdoc
+++ b/doc/src/messaging.qdoc
@@ -58,7 +58,7 @@ or respond to an existing message.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Overview
diff --git a/doc/src/organizer.qdoc b/doc/src/organizer.qdoc
index 74749937c3..de1742abc8 100644
--- a/doc/src/organizer.qdoc
+++ b/doc/src/organizer.qdoc
@@ -48,7 +48,7 @@ data from local or remote backends. This is part of the QtMobility Project.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
diff --git a/doc/src/plugins/qml-multimedia.qdoc b/doc/src/plugins/qml-multimedia.qdoc
index 87af27923e..118a7bb36a 100644
--- a/doc/src/plugins/qml-multimedia.qdoc
+++ b/doc/src/plugins/qml-multimedia.qdoc
@@ -232,11 +232,24 @@
The \l SoundEffect element provides a way to play short sound effects, like in video games. Multiple sound effect instances can be played simultaneously.
You should use the \l Audio element for music playback.
- \code
+ \qml
import Qt 4.7
import QtMultimediaKit 1.1
...
-
+
+ SoundEffect {
+ id: effect
+ source: "test.wav"
+ }
+ MouseArea {
+ id: playArea
+ anchors.fill: parent
+ onPressed: { effect.play() }
+ }
+
+ \endqml
+
+
In the above sample the sound effect will be played when the MouseArea is clicked.
For a complete description of this element, see \l SoundEffect
diff --git a/doc/src/publ-subs.qdoc b/doc/src/publ-subs.qdoc
index 37af385380..210053bfbd 100644
--- a/doc/src/publ-subs.qdoc
+++ b/doc/src/publ-subs.qdoc
@@ -57,7 +57,7 @@ navigate through and subscribe to change notifications.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Overview
@@ -296,7 +296,8 @@ For example, the following \c .context file describes a simple example service:
</provider>
\endcode
-(note the \c service attribute must match the organization domain and application name set above)
+Note: 1) The \c service attribute must match the organization domain and application name set above.
+2) The \c bus attribute must be "session", i.e. you can only use the session bus.
Example qmake snippet to deploy the \c .context file
\code
diff --git a/doc/src/qlandmarks.qdoc b/doc/src/qlandmarks.qdoc
index dce77773e8..5eff3c5e9a 100644
--- a/doc/src/qlandmarks.qdoc
+++ b/doc/src/qlandmarks.qdoc
@@ -43,7 +43,7 @@ The following page demonstrates how to perform these operations.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
diff --git a/doc/src/qtmobility-release-notes.qdoc b/doc/src/qtmobility-release-notes.qdoc
index 9f12086bed..76d986fc7d 100644
--- a/doc/src/qtmobility-release-notes.qdoc
+++ b/doc/src/qtmobility-release-notes.qdoc
@@ -70,6 +70,7 @@
<h3>Location</h3>
<ul>
<li>Symbian: QGeoPositionInfoSource and QGeoSatelliteInfoSource can only be instantiated and used in application's main thread. </li>
+ <li>Symbian: QGeoAreaMonitor::createDefaultMonitor() creates generic polling monitor instead of native Symbian monitor. </li>
</ul>
<h3>Organizer</h3>
<ul>
@@ -84,7 +85,7 @@
</ul>
<h3>Maps and Navigation</h3>
<ul>
- <li>At the time of the QtMobility 1.1.0 release the QML support for the Maps and Navigation API is incomplete and will be improved in the next patch release. Therefore the QML API will be subject to potentially incompatible changes. </li>
+ <li>At the time of the QtMobility 1.2.0 QML support focus for the Maps and Navigation API is in Mapping functionality. Notably routing, searching and geocoding are not yet supported. </li>
</ul>
<h3>Feedback</h3>
<ul>
diff --git a/doc/src/sensors.qdoc b/doc/src/sensors.qdoc
index 6ad4f8253b..f024e2a42d 100644
--- a/doc/src/sensors.qdoc
+++ b/doc/src/sensors.qdoc
@@ -39,7 +39,7 @@ the accelerometer although there are higher-level, event-driven sensors represen
\section1 Namespace
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Sensor Types
diff --git a/doc/src/sf.qdoc b/doc/src/sf.qdoc
index eaec69d469..8c3b1f6dfe 100644
--- a/doc/src/sf.qdoc
+++ b/doc/src/sf.qdoc
@@ -55,7 +55,7 @@ arbitrary services.
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
diff --git a/doc/src/si.qdoc b/doc/src/si.qdoc
index ab813c4130..2da4bbd48f 100644
--- a/doc/src/si.qdoc
+++ b/doc/src/si.qdoc
@@ -46,7 +46,7 @@
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\annotatedlist systeminfo
diff --git a/doc/src/versit.qdoc b/doc/src/versit.qdoc
index 8cae5f0f38..9619e5dfc6 100644
--- a/doc/src/versit.qdoc
+++ b/doc/src/versit.qdoc
@@ -39,7 +39,7 @@
The QtMobility APIs are placed into the \i{QtMobility} namespace. This is done
to facilitate the future migration of QtMobility APIs into Qt. See the
-\l {Quickstart Example}{Quickstart guide} for an example on how the
+\l {Quickstart guide} for an example on how the
namespace impacts on application development.
\section1 Overview
diff --git a/examples/btscanner/device.cpp b/examples/btscanner/device.cpp
index 9c57203940..0e9a41f0a6 100644
--- a/examples/btscanner/device.cpp
+++ b/examples/btscanner/device.cpp
@@ -94,6 +94,8 @@ void DeviceDiscoveryDialog::addDevice(const QBluetoothDeviceInfo &info)
QBluetoothLocalDevice::Pairing pairingStatus = localDevice->pairingStatus(info.address());
if (pairingStatus == QBluetoothLocalDevice::Paired || pairingStatus == QBluetoothLocalDevice::AuthorizedPaired )
item->setTextColor(QColor(Qt::green));
+ else
+ item->setTextColor(QColor(Qt::black));
ui->list->addItem(item);
}
diff --git a/examples/camera/camera.pro b/examples/camera/camera.pro
index 1daee34bf9..eb405ed745 100644
--- a/examples/camera/camera.pro
+++ b/examples/camera/camera.pro
@@ -26,7 +26,7 @@ FORMS += \
imagesettings.ui
symbian {
- TARGET.CAPABILITY = UserEnvironment WriteDeviceData ReadDeviceData
+ TARGET.CAPABILITY = UserEnvironment WriteUserData ReadUserData
TARGET.EPOCHEAPSIZE = 0x20000 0x3000000
LIBS += -lavkon -leiksrv -lcone -leikcore
}
diff --git a/examples/declarative-camera/CaptureControls.qml b/examples/declarative-camera/CaptureControls.qml
index 77f69b37be..e431b73b52 100644
--- a/examples/declarative-camera/CaptureControls.qml
+++ b/examples/declarative-camera/CaptureControls.qml
@@ -49,105 +49,124 @@ FocusScope {
property alias flashMode : flashModesButton.value
property alias exposureCompensation : exposureCompensationButton.value
+ property int buttonsPanelWidth: buttonPaneShadow.width
+
signal previewSelected
id : captureControls
- Column {
- spacing : 8
- anchors.right : parent.right
- anchors.rightMargin: 8
- anchors.top : parent.top
- anchors.topMargin: 8
+ Rectangle {
+ id: buttonPaneShadow
+ width: buttonPanningPane.width + 16
+ height: parent.height
+ anchors.top: parent.top
+ anchors.right: parent.right
+ color: Qt.rgba(0.08, 0.08, 0.08, 1)
+
+ Flickable {
+ id: buttonPanningPane
+ anchors {
+ right: parent.right
+ top: parent.top
+ bottom: parent.bottom
+ margins: 8
+ }
+ width: buttonsColumn.width
- FocusButton {
- camera: captureControls.camera
- visible: false
- }
+ contentWidth: buttonsColumn.width
+ contentHeight: buttonsColumn.height
- CameraButton {
- text: "Capture"
- onClicked: camera.captureImage()
- }
+ Column {
+ id: buttonsColumn
+ spacing: 8
- CameraPropertyButton {
- id : flashModesButton
- value: Camera.FlashOff
- model: ListModel {
- ListElement {
- icon: "images/camera_flash_auto.png"
- value: Camera.FlashAuto
- text: "Auto"
- }
- ListElement {
- icon: "images/camera_flash_off.png"
- value: Camera.FlashOff
- text: "Off"
+ FocusButton {
+ camera: captureControls.camera
}
- ListElement {
- icon: "images/camera_flash_fill.png"
- value: Camera.FlashOn
- text: "On"
+
+ CameraButton {
+ text: "Capture"
+ onClicked: camera.captureImage()
}
- ListElement {
- icon: "images/camera_flash_redeye.png"
- value: Camera.FlashRedEyeReduction
- text: "Red Eye Reduction"
+
+ CameraPropertyButton {
+ id : flashModesButton
+ value: Camera.FlashOff
+ model: ListModel {
+ ListElement {
+ icon: "images/camera_flash_auto.png"
+ value: Camera.FlashAuto
+ text: "Auto"
+ }
+ ListElement {
+ icon: "images/camera_flash_off.png"
+ value: Camera.FlashOff
+ text: "Off"
+ }
+ ListElement {
+ icon: "images/camera_flash_fill.png"
+ value: Camera.FlashOn
+ text: "On"
+ }
+ ListElement {
+ icon: "images/camera_flash_redeye.png"
+ value: Camera.FlashRedEyeReduction
+ text: "Red Eye Reduction"
+ }
+ }
}
- }
- }
- CameraPropertyButton {
- id : wbModesButton
- value: Camera.WhiteBalanceAuto
- model: ListModel {
- ListElement {
- icon: "images/camera_auto_mode.png"
+ CameraPropertyButton {
+ id : wbModesButton
value: Camera.WhiteBalanceAuto
- text: "Auto"
+ model: ListModel {
+ ListElement {
+ icon: "images/camera_auto_mode.png"
+ value: Camera.WhiteBalanceAuto
+ text: "Auto"
+ }
+ ListElement {
+ icon: "images/camera_white_balance_sunny.png"
+ value: Camera.WhiteBalanceSunlight
+ text: "Sunlight"
+ }
+ ListElement {
+ icon: "images/camera_white_balance_cloudy.png"
+ value: Camera.WhiteBalanceCloudy
+ text: "Cloudy"
+ }
+ ListElement {
+ icon: "images/camera_white_balance_incandescent.png"
+ value: Camera.WhiteBalanceIncandescent
+ text: "Incandescent"
+ }
+ ListElement {
+ icon: "images/camera_white_balance_flourescent.png"
+ value: Camera.WhiteBalanceFluorescent
+ text: "Fluorescent"
+ }
+ }
}
- ListElement {
- icon: "images/camera_white_balance_sunny.png"
- value: Camera.WhiteBalanceSunlight
- text: "Sunlight"
- }
- ListElement {
- icon: "images/camera_white_balance_cloudy.png"
- value: Camera.WhiteBalanceCloudy
- text: "Cloudy"
- }
- ListElement {
- icon: "images/camera_white_balance_incandescent.png"
- value: Camera.WhiteBalanceIncandescent
- text: "Incandescent"
+
+ ExposureCompensationButton {
+ id : exposureCompensationButton
}
- ListElement {
- icon: "images/camera_white_balance_flourescent.png"
- value: Camera.WhiteBalanceFluorescent
- text: "Fluorescent"
+
+ CameraButton {
+ text: "View"
+ onClicked: captureControls.previewSelected()
+ visible: captureControls.previewAvailable
}
- }
- }
- ExposureCompensationButton {
- id : exposureCompensationButton
- }
+ CameraButton {
+ id: quitButton
+ text: "Quit"
+ onClicked: Qt.quit()
+ }
- CameraButton {
- text: "View"
- onClicked: captureControls.previewSelected()
- visible: captureControls.previewAvailable
+ }
}
}
- CameraButton {
- id: quitButton
- anchors.right : parent.right
- anchors.rightMargin: 8
- anchors.bottom : parent.bottom
- anchors.bottomMargin: 8
- text: "Quit"
- onClicked: Qt.quit()
- }
Item {
id: exposureDetails
diff --git a/examples/declarative-camera/declarative-camera.qml b/examples/declarative-camera/declarative-camera.qml
index 83509e5b36..c5e8accdb2 100644
--- a/examples/declarative-camera/declarative-camera.qml
+++ b/examples/declarative-camera/declarative-camera.qml
@@ -43,8 +43,6 @@ import QtMultimediaKit 1.1
Rectangle {
id : cameraUI
- width : 800
- height : 480
color: "black"
state: "PhotoCapture"
@@ -90,11 +88,11 @@ Rectangle {
Camera {
id: camera
- x : 0
- y : 0
- width : 640
- height : 480
- focus : visible //to receive focus and capture key events
+ x: 0
+ y: 0
+ width: parent.width - stillControls.buttonsPanelWidth
+ height: parent.height
+ focus: visible //to receive focus and capture key events
//captureResolution : "640x480"
flashMode: stillControls.flashMode
diff --git a/examples/declarative-camera/qmlcamera.cpp b/examples/declarative-camera/qmlcamera.cpp
index 77bb408662..62e17a5f91 100644
--- a/examples/declarative-camera/qmlcamera.cpp
+++ b/examples/declarative-camera/qmlcamera.cpp
@@ -39,6 +39,7 @@
****************************************************************************/
#include <QtGui/QApplication>
+#include <QtGui/QDesktopWidget>
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeEngine>
@@ -76,6 +77,7 @@ int main(int argc, char *argv[])
// quit() signal, so do this (optionally use Qt.exit()).
QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit()));
#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+ view.setGeometry(application.desktop()->screenGeometry());
view.showFullScreen();
#else
view.setGeometry(QRect(100, 100, 800, 480));
diff --git a/examples/declarative-location/landmarkmap/landmarkmap.pro b/examples/declarative-location/landmarkmap/landmarkmap.pro
index bc65ed2ed8..e3a728d615 100644
--- a/examples/declarative-location/landmarkmap/landmarkmap.pro
+++ b/examples/declarative-location/landmarkmap/landmarkmap.pro
@@ -14,6 +14,7 @@ win32 {
symbian {
TARGET.CAPABILITY = NetworkServices Location ReadUserData WriteUserData
+ TARGET.CAPABILITY += LocalServices ReadDeviceData WriteDeviceData
TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
}
diff --git a/examples/declarative-location/landmarkmap/qmllandmarkmap.cpp b/examples/declarative-location/landmarkmap/qmllandmarkmap.cpp
index 391eabb8e5..5dd2d9006c 100644
--- a/examples/declarative-location/landmarkmap/qmllandmarkmap.cpp
+++ b/examples/declarative-location/landmarkmap/qmllandmarkmap.cpp
@@ -41,10 +41,12 @@
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeEngine>
+#include <QDir>
int main(int argc, char *argv[])
{
QApplication application(argc, argv);
+ QDir::setCurrent(QApplication::applicationDirPath());
const QString mainQmlApp = QLatin1String("qrc:///landmarkmap.qml");
QDeclarativeView view;
view.setSource(QUrl(mainQmlApp));
diff --git a/examples/landmarkbrowser/landmarkadddialog.cpp b/examples/landmarkbrowser/landmarkadddialog.cpp
index 680ea6efc8..213c152d03 100644
--- a/examples/landmarkbrowser/landmarkadddialog.cpp
+++ b/examples/landmarkbrowser/landmarkadddialog.cpp
@@ -80,7 +80,7 @@ LandmarkAddDialog::LandmarkAddDialog(QWidget *parent, Qt::WindowFlags flags, con
QVariant var;
var.setValue(category.categoryId());
categoryItem->setData(Qt::UserRole, var);
- categoryItem->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
+ categoryItem->setFlags(categoryItem->flags() & ~ Qt::ItemIsUserCheckable);
if (landmark.categoryIds().contains(category.categoryId()))
categoryItem->setCheckState(Qt::Checked);
else
@@ -90,6 +90,8 @@ LandmarkAddDialog::LandmarkAddDialog(QWidget *parent, Qt::WindowFlags flags, con
categoryList->setMinimumHeight(categories.count()
* (categoryList->sizeHintForRow(0) + categoryList->spacing())
+ categoryList->frameWidth() *2);
+ QObject::connect(categoryList, SIGNAL(itemPressed(QListWidgetItem *)),
+ this, SLOT(categoryPressed(QListWidgetItem *)));
}
LandmarkAddDialog::~LandmarkAddDialog()
@@ -152,3 +154,14 @@ void LandmarkAddDialog::reject()
lm.clear();
QDialog::reject();
}
+
+void LandmarkAddDialog::categoryPressed(QListWidgetItem *item)
+{
+ //the purpose of this function is to ensure that when the item is pressed
+ //anywhere the checkbox will toggle (previously only clicking the box
+ //itself would cause a toggle)
+ if (item->checkState() == Qt::Checked)
+ item->setCheckState(Qt::Unchecked);
+ else
+ item->setCheckState(Qt::Checked);
+}
diff --git a/examples/landmarkbrowser/landmarkadddialog.h b/examples/landmarkbrowser/landmarkadddialog.h
index 46b8e8b89c..510f926f3f 100644
--- a/examples/landmarkbrowser/landmarkadddialog.h
+++ b/examples/landmarkbrowser/landmarkadddialog.h
@@ -63,6 +63,10 @@ public slots:
virtual void accept();
virtual void reject();
+
+private slots:
+ void categoryPressed(QListWidgetItem *item);
+
private:
QLandmark lm;
};
diff --git a/examples/landmarkbrowser/landmarkbrowser.cpp b/examples/landmarkbrowser/landmarkbrowser.cpp
index c8a61ba69a..77e139bea5 100644
--- a/examples/landmarkbrowser/landmarkbrowser.cpp
+++ b/examples/landmarkbrowser/landmarkbrowser.cpp
@@ -61,7 +61,7 @@ QTM_USE_NAMESPACE
LandmarkBrowser::LandmarkBrowser(QWidget *parent, Qt::WindowFlags flags)
:currentLandmarkOffset(0),
currentCategoryOffset(0),
- limit(20), filterDialog(0),
+ limit(20), filterDialog(0),
landmarkFetch(0), landmarkImport(0), landmarkExport(0), landmarkRemove(0),
landmarkSave(0), categoryFetch(0), categoryRemove(0),progress(0),
manager(0)
@@ -622,12 +622,22 @@ void LandmarkBrowser::on_prevCategoryButton_clicked()
void LandmarkBrowser::updateTable(const QList<QLandmark> &lms)
{
QLandmark lm;
+ QTableWidgetItem *item;
for ( int i =0; i < lms.count(); ++i) {
lm = lms.at(i);
table->insertRow(table->rowCount());
- table->setItem(table->rowCount()-1,0,new QTableWidgetItem(QString::number(lm.coordinate().latitude(),'f',2)));
- table->setItem(table->rowCount()-1,1,new QTableWidgetItem(QString::number(lm.coordinate().longitude(),'f',2)));
- table->setItem(table->rowCount()-1,2,new QTableWidgetItem(lm.name()));
+
+ item = new QTableWidgetItem(QString::number(lm.coordinate().latitude(),'f',2));
+ item->setFlags(item->flags() & ~Qt::ItemIsEditable);
+ table->setItem(table->rowCount()-1,0,item);
+
+ item = new QTableWidgetItem(QString::number(lm.coordinate().longitude(),'f',2));
+ item->setFlags(item->flags() & ~Qt::ItemIsEditable);
+ table->setItem(table->rowCount()-1,1, item);
+
+ item = new QTableWidgetItem(lm.name());
+ item->setFlags(item->flags() & ~Qt::ItemIsEditable);
+ table->setItem(table->rowCount()-1,2, item);
if (i %20)
qApp->processEvents();
@@ -637,15 +647,23 @@ void LandmarkBrowser::updateTable(const QList<QLandmark> &lms)
void LandmarkBrowser::updateCategoryTable(const QList<QLandmarkCategory> &cats)
{
QLandmarkCategory cat;
+ QTableWidgetItem *item;
for ( int i =0; i < cats.count(); ++i) {
cat = cats.at(i);
categoryTable->insertRow(categoryTable->rowCount());
if(manager->isReadOnly(cat.categoryId())) {
- categoryTable->setItem(categoryTable->rowCount()-1,0,new QTableWidgetItem(cat.name() + "(global)"));
+ item = new QTableWidgetItem(cat.name() + "(global)");
+ item->setFlags(item->flags() & ~Qt::ItemIsEditable);
+ categoryTable->setItem(categoryTable->rowCount()-1,0, item);
} else {
- categoryTable->setItem(categoryTable->rowCount()-1,0,new QTableWidgetItem(cat.name()));
+ item = new QTableWidgetItem(cat.name());
+ item->setFlags(item->flags() & ~Qt::ItemIsEditable);
+ categoryTable->setItem(categoryTable->rowCount()-1,0,item);
}
- categoryTable->setItem(categoryTable->rowCount()-1,1,new QTableWidgetItem(cat.categoryId().localId()));
+
+ item = new QTableWidgetItem(cat.categoryId().localId());
+ item->setFlags(item->flags() & ~Qt::ItemIsEditable);
+ categoryTable->setItem(categoryTable->rowCount()-1,1, item);
if (i %20)
qApp->processEvents();
diff --git a/examples/ndefeditor/mainwindow.cpp b/examples/ndefeditor/mainwindow.cpp
index 7e6997e719..eaf33f5f90 100644
--- a/examples/ndefeditor/mainwindow.cpp
+++ b/examples/ndefeditor/mainwindow.cpp
@@ -139,8 +139,6 @@ MainWindow::MainWindow(QWidget *parent)
this, SLOT(targetDetected(QNearFieldTarget*)));
connect(m_manager, SIGNAL(targetLost(QNearFieldTarget*)),
this, SLOT(targetLost(QNearFieldTarget*)));
-
- m_manager->startTargetDetection();
}
MainWindow::~MainWindow()
@@ -207,6 +205,7 @@ void MainWindow::touchReceive()
m_touchAction = ReadNdef;
m_manager->setTargetAccessModes(QNearFieldManager::NdefReadTargetAccess);
+ m_manager->startTargetDetection();
}
void MainWindow::touchStore()
@@ -216,6 +215,7 @@ void MainWindow::touchStore()
m_touchAction = WriteNdef;
m_manager->setTargetAccessModes(QNearFieldManager::NdefWriteTargetAccess);
+ m_manager->startTargetDetection();
}
void MainWindow::targetDetected(QNearFieldTarget *target)
@@ -229,14 +229,14 @@ void MainWindow::targetDetected(QNearFieldTarget *target)
connect(target, SIGNAL(error(QNearFieldTarget::Error,QNearFieldTarget::RequestId)),
this, SLOT(targetError(QNearFieldTarget::Error,QNearFieldTarget::RequestId)));
- target->readNdefMessages();
+ m_request = target->readNdefMessages();
break;
case WriteNdef:
connect(target, SIGNAL(ndefMessagesWritten()), this, SLOT(ndefMessageWritten()));
connect(target, SIGNAL(error(QNearFieldTarget::Error,QNearFieldTarget::RequestId)),
this, SLOT(targetError(QNearFieldTarget::Error,QNearFieldTarget::RequestId)));
- target->writeNdefMessages(QList<QNdefMessage>() << ndefMessage());
+ m_request = target->writeNdefMessages(QList<QNdefMessage>() << ndefMessage());
break;
}
}
@@ -267,12 +267,18 @@ void MainWindow::ndefMessageRead(const QNdefMessage &message)
ui->status->setStyleSheet(QString());
m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess);
+ m_manager->stopTargetDetection();
+ m_request = QNearFieldTarget::RequestId();
+ ui->statusBar->clearMessage();
}
void MainWindow::ndefMessageWritten()
{
ui->status->setStyleSheet(QString());
m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess);
+ m_manager->stopTargetDetection();
+ m_request = QNearFieldTarget::RequestId();
+ ui->statusBar->clearMessage();
}
void MainWindow::targetError(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
@@ -280,8 +286,41 @@ void MainWindow::targetError(QNearFieldTarget::Error error, const QNearFieldTarg
Q_UNUSED(error);
Q_UNUSED(id);
- ui->status->setStyleSheet(QString());
- m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess);
+ if (m_request == id) {
+ switch (error) {
+ case QNearFieldTarget::NoError:
+ ui->statusBar->clearMessage();
+ break;
+ case QNearFieldTarget::UnsupportedError:
+ ui->statusBar->showMessage(tr("Unsupported tag"));
+ break;
+ case QNearFieldTarget::TargetOutOfRangeError:
+ ui->statusBar->showMessage(tr("Tag removed from field"));
+ break;
+ case QNearFieldTarget::NoResponseError:
+ ui->statusBar->showMessage(tr("No response from tag"));
+ break;
+ case QNearFieldTarget::ChecksumMismatchError:
+ ui->statusBar->showMessage(tr("Checksum mismatch"));
+ break;
+ case QNearFieldTarget::InvalidParametersError:
+ ui->statusBar->showMessage(tr("Invalid parameters"));
+ break;
+ case QNearFieldTarget::NdefReadError:
+ ui->statusBar->showMessage(tr("NDEF read error"));
+ break;
+ case QNearFieldTarget::NdefWriteError:
+ ui->statusBar->showMessage(tr("NDEF write error"));
+ break;
+ default:
+ ui->statusBar->showMessage(tr("Unknown error"));
+ }
+
+ ui->status->setStyleSheet(QString());
+ m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess);
+ m_manager->stopTargetDetection();
+ m_request = QNearFieldTarget::RequestId();
+ }
}
void MainWindow::clearMessage()
diff --git a/examples/ndefeditor/mainwindow.h b/examples/ndefeditor/mainwindow.h
index 47bfdffa67..ae3d975455 100644
--- a/examples/ndefeditor/mainwindow.h
+++ b/examples/ndefeditor/mainwindow.h
@@ -101,6 +101,7 @@ private:
QNearFieldManager *m_manager;
TouchAction m_touchAction;
+ QNearFieldTarget::RequestId m_request;
};
#endif // MAINWINDOW_H
diff --git a/examples/ndefeditor/mainwindow.ui b/examples/ndefeditor/mainwindow.ui
index f3e38bfbe0..adffa33116 100644
--- a/examples/ndefeditor/mainwindow.ui
+++ b/examples/ndefeditor/mainwindow.ui
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>551</width>
+ <width>553</width>
<height>397</height>
</rect>
</property>
@@ -120,8 +120,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>551</width>
- <height>355</height>
+ <width>553</width>
+ <height>335</height>
</rect>
</property>
</widget>
@@ -129,6 +129,7 @@
</item>
</layout>
</widget>
+ <widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
diff --git a/examples/sensors/sensors.pro b/examples/sensors/sensors.pro
index 5d252e58b1..285af32945 100644
--- a/examples/sensors/sensors.pro
+++ b/examples/sensors/sensors.pro
@@ -22,5 +22,6 @@ SUBDIRS +=\
show_rotation\
show_tap\
show_light\
- show_gyroscope
+ show_gyroscope\
+ show_reflectance
diff --git a/examples/sensors/show_reflectance/main.cpp b/examples/sensors/show_reflectance/main.cpp
new file mode 100644
index 0000000000..04ba1478c2
--- /dev/null
+++ b/examples/sensors/show_reflectance/main.cpp
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** 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 <QtCore>
+#include <qsensor.h>
+
+QTM_USE_NAMESPACE
+
+class Filter : public QSensorFilter{
+ int lastPercent;
+public:
+ Filter(): QSensorFilter(), lastPercent(0) {}
+
+ bool filter(QSensorReading *reading)
+ {
+ qDebug()<<"reflectance "<<QString("%1").arg(reading->property("reflectance").toFloat(),2,'f',1)<<" %";
+ return false;
+ }
+};
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+ QString type("QIRProximitySensor");
+ QSensor sensor(type.toAscii());
+
+ Filter filter;
+ sensor.addFilter(&filter);
+ sensor.start();
+
+ if (!sensor.isActive()) {
+ qWarning(QString("show_reflectance: %1 didn't start.").arg(type).toAscii());
+ return 1;
+ }
+
+ return app.exec();
+}
+
diff --git a/examples/sensors/show_reflectance/show_reflectance.pro b/examples/sensors/show_reflectance/show_reflectance.pro
new file mode 100644
index 0000000000..b365518726
--- /dev/null
+++ b/examples/sensors/show_reflectance/show_reflectance.pro
@@ -0,0 +1,3 @@
+include(../sensors.pri)
+SOURCES = main.cpp
+TARGET = show_reflectance
diff --git a/examples/sfwecho/sfwecho_service/main.cpp b/examples/sfwecho/sfwecho_service/main.cpp
index 0ba62fba85..bbb43d4f37 100644
--- a/examples/sfwecho/sfwecho_service/main.cpp
+++ b/examples/sfwecho/sfwecho_service/main.cpp
@@ -66,27 +66,6 @@ public slots:
private:
};
-class EchoService2 : public EchoService
-{
- Q_OBJECT
-
-public:
- EchoService2(QObject* parent = 0)
- : EchoService(parent)
- {
- }
-
-Q_SIGNALS:
- void broadcastMessage(const QString &msg, const QDateTime &timestamp);
-
-public slots:
- void sendMessage(const QString &msg)
- {
- emit broadcastMessage(msg, QDateTime::currentDateTime());
- }
-private:
-};
-
void unregisterExampleService()
{
QServiceManager m;
@@ -128,11 +107,11 @@ int main(int argc, char** argv)
QRemoteServiceRegister *serviceRegister = new QRemoteServiceRegister();
//serviceRegister->setSecurityFilter(check);
- QRemoteServiceRegister::Entry shared = serviceRegister->createEntry<EchoService2>(
+ QRemoteServiceRegister::Entry shared = serviceRegister->createEntry<EchoService>(
"EchoService", "com.nokia.qt.example.sfwecho", "1.1");
shared.setInstantiationType(QRemoteServiceRegister::GlobalInstance);
- QRemoteServiceRegister::Entry unique = serviceRegister->createEntry<EchoService2>(
+ QRemoteServiceRegister::Entry unique = serviceRegister->createEntry<EchoService>(
"EchoService", "com.nokia.qt.example.sfwecho", "1.0");
unique.setInstantiationType(QRemoteServiceRegister::PrivateInstance);
diff --git a/examples/sysinfo/dialog.cpp b/examples/sysinfo/dialog.cpp
index 820de28aab..1be669414f 100644
--- a/examples/sysinfo/dialog.cpp
+++ b/examples/sysinfo/dialog.cpp
@@ -101,6 +101,9 @@ void Dialog::changeEvent(QEvent *e)
void Dialog::tabChanged(int index)
{
+ if (lastTab == 4 && index !=4) {
+ disconnect(bi,SIGNAL(currentFlowChanged(int)),0,0);
+ }
switch(index) {
case 0:
setupGeneral();
@@ -140,6 +143,7 @@ void Dialog::tabChanged(int index)
break;
};
+ lastTab = index;
}
void Dialog::setupGeneral()
diff --git a/examples/sysinfo/dialog.h b/examples/sysinfo/dialog.h
index 7bc4035541..2fb7e2077a 100644
--- a/examples/sysinfo/dialog.h
+++ b/examples/sysinfo/dialog.h
@@ -152,6 +152,9 @@ private slots:
void timeout3();
void timerError(QSystemAlignedTimer::AlignedTimerError error);
+
+private:
+ int lastTab;
};
#endif // DIALOG_H
diff --git a/features/basic_examples_setup.pri b/features/basic_examples_setup.pri
index 963d6966e3..77b9a272f5 100644
--- a/features/basic_examples_setup.pri
+++ b/features/basic_examples_setup.pri
@@ -51,6 +51,7 @@ maemo6 {
DEFINES+= QTM_EXAMPLES_PREFER_LANDSCAPE
}
maemo5 {
+ error(Maemo5/Freemantle not supported by QtMobility 1.2+ \(Not building any examples and demos\).)
DEFINES+= Q_WS_MAEMO_5
DEFINES+= QTM_EXAMPLES_SMALL_SCREEN
DEFINES+= QTM_EXAMPLES_PREFER_LANDSCAPE
diff --git a/features/mobility.prf.template b/features/mobility.prf.template
index ed42551bae..3ba9a26ddf 100644
--- a/features/mobility.prf.template
+++ b/features/mobility.prf.template
@@ -121,7 +121,7 @@ contains(MOBILITY, connectivity) {
# Add dependency to QtMobility package to all projects besides QtMobility package itself.
# Mobility libs have UID3 0x2002AC89
# self-signed Mobility libs have UID3 0xE002AC89
-symbian:contains(CONFIG, mobility):!isEmpty(default_deployment.pkg_prerules):!contains(TARGET.UID3, 0x2002AC89):!contains(TARGET.UID3, 0xE002AC89) {
+symbian:contains(CONFIG, mobility)::contains(default_deployment.pkg_prerules, pkg_depends_qt):!contains(TARGET.UID3, 0x2002AC89):!contains(TARGET.UID3, 0xE002AC89) {
mobility_default_deployment.pkg_prerules += \
"; Default dependency to QtMobility libraries" \
"(0x2002AC89), 1, 2, 0, {\"QtMobility\"}"
diff --git a/features/qtservice.prf b/features/qtservice.prf
index 6ae05a619c..ed7f522440 100644
--- a/features/qtservice.prf
+++ b/features/qtservice.prf
@@ -18,8 +18,8 @@ symbian {
qtservice_descriptors = $$QTSERVICE.DESCRIPTOR
for(descriptor, qtservice_descriptors) {
BASENAME = $$basename(descriptor)
- BLD_INF_RULES.prj_exports += "$$descriptor $${EPOCROOT}epoc32/winscw/c/private/2002AC7F/des/$$BASENAME"
- BLD_INF_RULES.prj_exports += "$$descriptor $${EPOCROOT}epoc32/data/z/private/2002AC7F/des/$$BASENAME"
+ BLD_INF_RULES.prj_exports += "$$descriptor /epoc32/winscw/c/private/2002AC7F/des/$$BASENAME"
+ BLD_INF_RULES.prj_exports += "$$descriptor /epoc32/data/z/private/2002AC7F/des/$$BASENAME"
}
symbian-sbsv2{
diff --git a/plugins/contacts/symbian/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp b/plugins/contacts/symbian/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp
index 8343622787..2de46ac1e1 100644
--- a/plugins/contacts/symbian/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp
+++ b/plugins/contacts/symbian/contactsmodel/cntplsql/src/cpplcommaddrtable.cpp
@@ -1065,7 +1065,8 @@ CPplCommAddrTable::TMatch CPplCommAddrTable::CreatePaddedPhoneDigitsL(const TDes
// digits total.
TInt pad = KMaxPhoneMatchLength - KLowerSevenDigits - phoneNumber.iNumUpperDigits;
phoneNumber.iUpperDigits = TMatch::PadOutPhoneMatchNumber(phoneNumber.iUpperDigits,pad);
- }
+ phoneNumber.iNumUpperDigits = aNumUpperDigits;
+ }
return phoneNumber;
}
diff --git a/plugins/contacts/symbian/contactsmodel/tsrc/t_cntmatch.cpp b/plugins/contacts/symbian/contactsmodel/tsrc/t_cntmatch.cpp
index cbaf70e901..1c78748c34 100644
--- a/plugins/contacts/symbian/contactsmodel/tsrc/t_cntmatch.cpp
+++ b/plugins/contacts/symbian/contactsmodel/tsrc/t_cntmatch.cpp
@@ -254,14 +254,14 @@ LOCAL_C void Test3L()
//it definetly should match on itself....
TESTVALUE(CheckPhoneMatchL(_L("123 4567"), 7),2); //Both numbers match by 7 digits..
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"), 8),2); //But they must differ for more digits
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"), 9),2); // AB - all these should match both...
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"),10),2);
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"),11),2);
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"),12),2);
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"),13),2);
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"),14),2);
- TESTVALUE(CheckPhoneMatchL(_L("123 4567"),15),2);
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"), 8),1); //But they must differ for more digits
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"), 9),1); // AB - all these should match both...
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"),10),1);
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"),11),1);
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"),12),1);
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"),13),1);
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"),14),1);
+ TESTVALUE(CheckPhoneMatchL(_L("123 4567"),15),1);
TESTVALUE(CheckPhoneMatchL(_L("123 4567"), KBestMatchingPhoneNumbers),2);
}
diff --git a/plugins/contacts/symbian/contactsmodel/tsrc/t_nomach.cpp b/plugins/contacts/symbian/contactsmodel/tsrc/t_nomach.cpp
index d8935c6ace..f2ec037950 100644
--- a/plugins/contacts/symbian/contactsmodel/tsrc/t_nomach.cpp
+++ b/plugins/contacts/symbian/contactsmodel/tsrc/t_nomach.cpp
@@ -611,7 +611,7 @@ LOCAL_C void Test11DigitMatchingL()
CheckPhoneMatchL(K11DigitMatch5,KMatch13Digits,1);
CheckPhoneMatchL(K11DigitMatch6,KMatch10Digits,3);
- CheckPhoneMatchL(K11DigitMatch6,KMatch11Digits,3);
+ CheckPhoneMatchL(K11DigitMatch6,KMatch11Digits,1);
}
/**
diff --git a/plugins/declarative/declarative.pro b/plugins/declarative/declarative.pro
index f263687e6f..cf318adae9 100644
--- a/plugins/declarative/declarative.pro
+++ b/plugins/declarative/declarative.pro
@@ -6,11 +6,11 @@ contains(mobility_modules,sensors): SUBDIRS += sensors
contains(mobility_modules,serviceframework): SUBDIRS += serviceframework
contains(mobility_modules,publishsubscribe): SUBDIRS += publishsubscribe
contains(mobility_modules,multimedia): SUBDIRS += multimedia
-contains(mobility_modules,organizer):contains(mobility_modules,versit) SUBDIRS += organizer
+contains(mobility_modules,organizer):contains(mobility_modules,versit): SUBDIRS += organizer
contains(mobility_modules,systeminfo): SUBDIRS += systeminfo
contains(mobility_modules,gallery): SUBDIRS += gallery
contains(mobility_modules,feedback): SUBDIRS += feedback
-contains(mobility_modules,contacts):contains(mobility_modules,versit) SUBDIRS += contacts
+contains(mobility_modules,contacts):contains(mobility_modules,versit): SUBDIRS += contacts
contains(mobility_modules,location): SUBDIRS += location
!win32:!mac:!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2):contains(mobility_modules,connectivity): SUBDIRS += connectivity
contains(qmf_enabled, yes)|wince*|win32|symbian|maemo5|maemo6 {
diff --git a/plugins/declarative/multimedia/qdeclarativecamera.cpp b/plugins/declarative/multimedia/qdeclarativecamera.cpp
index ce63be4432..d36a0c9f32 100644
--- a/plugins/declarative/multimedia/qdeclarativecamera.cpp
+++ b/plugins/declarative/multimedia/qdeclarativecamera.cpp
@@ -351,7 +351,6 @@ QString QDeclarativeCamera::errorString() const
\o The initial camera state, with camera not loaded,
the camera capabilities except of supported capture modes
are unknown.
-
While the supported settings are unknown in this state,
it's allowed to set the camera capture settings like codec,
resolution, or frame rate.
@@ -369,6 +368,28 @@ QString QDeclarativeCamera::errorString() const
the viewfinder displays video frames and the
camera is ready for capture.
\endtable
+*/
+/*!
+ \enum QDeclarativeCamera::State
+ \value UnloadedState
+ The initial camera state, with camera not loaded,
+ the camera capabilities except of supported capture modes
+ are unknown.
+ While the supported settings are unknown in this state,
+ it's allowed to set the camera capture settings like codec,
+ resolution, or frame rate.
+
+ \value LoadedState
+ The camera is loaded and ready to be configured.
+ In the Idle state it's allowed to query camera capabilities,
+ set capture resolution, codecs, etc.
+ The viewfinder is not active in the loaded state.
+
+ \value ActiveState
+ In the active state as soon as camera is started
+ the viewfinder displays video frames and the
+ camera is ready for capture.
+
The default camera state is ActiveState.
*/
@@ -452,7 +473,26 @@ void QDeclarativeCamera::stop()
For example in continuous focusing mode, the focus is considered locked as long
and the object is in focus, even while the actual focusing distance may be constantly changing.
\endtable
+*/
+/*!
+ \enum QDeclarativeCamera::LockStatus
+ \value Unlocked
+ The application is not interested in camera settings value.
+ The camera may keep this parameter without changes, this is common with camera focus,
+ or adjust exposure and white balance constantly to keep the viewfinder image nice.
+
+ \value Searching
+ The application has requested the camera focus, exposure or white balance lock with
+ searchAndLock(). This state indicates the camera is focusing or calculating exposure and white balance.
+ \value Locked
+ The camera focus, exposure or white balance is locked.
+ The camera is ready to capture, application may check the exposure parameters.
+
+ The locked state usually means the requested parameter stays the same,
+ except in the cases when the parameter is requested to be constantly updated.
+ For example in continuous focusing mode, the focus is considered locked as long
+ and the object is in focus, even while the actual focusing distance may be constantly changing.
*/
QDeclarativeCamera::LockStatus QDeclarativeCamera::lockStatus() const
{
@@ -588,6 +628,22 @@ void QDeclarativeCamera::keyReleaseEvent(QKeyEvent * event)
\endtable
*/
+/*!
+ \enum QDeclarativeCamera::FlashMode
+ \value FlashOff Flash is Off.
+ \value FlashOn Flash is On.
+ \value FlashAuto Automatic flash.
+ \value FlashRedEyeReduction Red eye reduction flash.
+ \value FlashFill Use flash to fillin shadows.
+ \value FlashTorch Constant light source, useful for focusing and video capture.
+ \value FlashSlowSyncFrontCurtain
+ Use the flash in conjunction with a slow shutter speed.
+ This mode allows better exposure of distant objects and/or motion blur effect.
+ \value FlashSlowSyncRearCurtain
+ The similar mode to FlashSlowSyncFrontCurtain but flash is fired at the end of exposure.
+ \value FlashManual Flash power is manually set.
+
+*/
int QDeclarativeCamera::flashMode() const
{
if (!m_isValid)
@@ -610,6 +666,12 @@ void QDeclarativeCamera::setFlashMode(int mode)
Adjustment for the automatically calculated exposure. The value is
in EV units.
*/
+/*!
+ \property QDeclarativeCamera::exposureCompensation
+
+ Adjustment for the automatically calculated exposure. The value is
+ in EV units.
+ */
qreal QDeclarativeCamera::exposureCompensation() const
{
if (!m_isValid)
@@ -629,6 +691,11 @@ void QDeclarativeCamera::setExposureCompensation(qreal ev)
The sensor's ISO sensitivity.
*/
+/*!
+ \property QDeclarativeCamera::isoSensitivity
+
+ The sensor's ISO sensitivity.
+ */
int QDeclarativeCamera::isoSensitivity() const
{
if (!m_isValid)
@@ -650,6 +717,11 @@ void QDeclarativeCamera::setManualIsoSensitivity(int iso)
The camera's shutter speed, in seconds.
*/
+/*!
+ \property QDeclarativeCamera::shutterSpeed
+
+ The camera's shutter speed, in seconds.
+*/
qreal QDeclarativeCamera::shutterSpeed() const
{
if (!m_isValid)
@@ -663,6 +735,11 @@ qreal QDeclarativeCamera::shutterSpeed() const
The lens aperture as an F number (the ratio of the focal length to effective aperture diameter).
*/
+/*!
+ \property QDeclarativeCamera::aperture
+
+ The lens aperture as an F number (the ratio of the focal length to effective aperture diameter).
+*/
qreal QDeclarativeCamera::aperture() const
{
if (!m_isValid)
@@ -691,6 +768,27 @@ qreal QDeclarativeCamera::aperture() const
\endtable
*/
+/*!
+ \enum QDeclarativeCamera::ExposureMode
+ \value ExposureManual Manual mode.
+ \value ExposureAuto Automatic mode.
+ \value ExposureNight Night mode.
+ \value ExposureBacklight Backlight exposure mode.
+ \value ExposureSpotlight Spotlight exposure mode.
+ \value ExposureSports Spots exposure mode.
+ \value ExposureSnow Snow exposure mode.
+ \value ExposureBeach Beach exposure mode.
+ \value ExposureLargeAperture Use larger aperture with small depth of field.
+ \value ExposureSmallAperture Use smaller aperture.
+ \value ExposurePortrait Portrait exposure mode.
+ \value ExposureModeVendor The base value for device specific exposure modes.
+
+*/
+/*!
+ \property QDeclarativeCamera::exposureMode
+
+ Camera exposure modes.
+*/
QDeclarativeCamera::ExposureMode QDeclarativeCamera::exposureMode() const
{
if (!m_isValid)
@@ -716,6 +814,12 @@ void QDeclarativeCamera::setExposureMode(QDeclarativeCamera::ExposureMode mode)
The resolution to capture the image at. If empty, the system will pick
a good size.
*/
+/*!
+ \property QDeclarativeCamera::captureResolution
+
+ The resolution to capture the image at. If empty, the system will pick
+ a good size.
+*/
QSize QDeclarativeCamera::captureResolution() const
{
if (!m_isValid)
@@ -743,6 +847,11 @@ void QDeclarativeCamera::setCaptureResolution(const QSize &resolution)
The maximum optical zoom factor, or 1.0 if optical zoom is not supported.
*/
+/*!
+ \property QDeclarativeCamera::maximumOpticalZoom
+
+ The maximum optical zoom factor, or 1.0 if optical zoom is not supported.
+*/
qreal QDeclarativeCamera::maximumOpticalZoom() const
{
if (!m_isValid)
@@ -756,6 +865,11 @@ qreal QDeclarativeCamera::maximumOpticalZoom() const
The maximum digital zoom factor, or 1.0 if digital zoom is not supported.
*/
+/*!
+ \property QDeclarativeCamera::maximumDigitalZoom
+
+ The maximum digital zoom factor, or 1.0 if digital zoom is not supported.
+*/
qreal QDeclarativeCamera::maximumDigitalZoom() const
{
if (!m_isValid)
@@ -769,6 +883,11 @@ qreal QDeclarativeCamera::maximumDigitalZoom() const
The current optical zoom factor.
*/
+/*!
+ \property QDeclarativeCamera::opticalZoom
+
+ The current optical zoom factor.
+*/
qreal QDeclarativeCamera::opticalZoom() const
{
if (!m_isValid)
@@ -788,6 +907,11 @@ void QDeclarativeCamera::setOpticalZoom(qreal value)
The current digital zoom factor.
*/
+/*!
+ \property QDeclarativeCamera::digitalZoom
+
+ The current digital zoom factor.
+*/
qreal QDeclarativeCamera::digitalZoom() const
{
if (!m_isValid)
@@ -803,6 +927,20 @@ void QDeclarativeCamera::setDigitalZoom(qreal value)
}
/*!
+ \enum QDeclarativeCamera::WhiteBalanceMode
+ \value WhiteBalanceManual Manual white balance. In this mode the manual white balance property value is used.
+ \value WhiteBalanceAuto Auto white balance mode.
+ \value WhiteBalanceSunlight Sunlight white balance mode.
+ \value WhiteBalanceCloudy Cloudy white balance mode.
+ \value WhiteBalanceShade Shade white balance mode.
+ \value WhiteBalanceTungsten Tungsten white balance mode.
+ \value WhiteBalanceFluorescent Fluorescent white balance mode.
+ \value WhiteBalanceIncandescent Incandescent white balance mode.
+ \value WhiteBalanceFlash Flash white balance mode.
+ \value WhiteBalanceSunset Sunset white balance mode.
+ \value WhiteBalanceVendor Vendor defined white balance mode.
+*/
+/*!
\qmlproperty enumeration Camera::whiteBalanceMode
\table
@@ -822,6 +960,11 @@ void QDeclarativeCamera::setDigitalZoom(qreal value)
\sa manualWhiteBalance
*/
+/*!
+ \property QDeclarativeCamera::whiteBalanceMode
+
+ \sa WhiteBalanceMode
+*/
QDeclarativeCamera::WhiteBalanceMode QDeclarativeCamera::whiteBalanceMode() const
{
if (!m_isValid)
@@ -845,6 +988,13 @@ void QDeclarativeCamera::setWhiteBalanceMode(QDeclarativeCamera::WhiteBalanceMod
\sa whiteBalanceMode
*/
+/*!
+ \property QCamera::manualWhiteBalance
+
+ The color temperature used when in manual white balance mode (WhiteBalanceManual).
+
+ \sa whiteBalanceMode
+*/
int QDeclarativeCamera::manualWhiteBalance() const
{
if (!m_isValid)
@@ -877,6 +1027,15 @@ void QDeclarativeCamera::setManualWhiteBalance(int colorTemp) const
\row \o NotSupportedFeatureError \o The feature is not supported.
\endtable
*/
+/*!
+ \enum QDeclarativeCamera::Error
+ \value NoError No errors have occurred.
+ \value CameraError An error has occurred.
+ \value InvalidRequestError System resource doesn't support requested functionality.
+ \value ServiceMissingError No camera service available.
+ \value NotSupportedFeatureError The feature is not supported.
+*/
+
/*!
\qmlsignal Camera::onCaptureFailed(message)
diff --git a/plugins/declarative/systeminfo/qdeclarativenetworkinfo.cpp b/plugins/declarative/systeminfo/qdeclarativenetworkinfo.cpp
index edcdf1160c..4d98853ea7 100644
--- a/plugins/declarative/systeminfo/qdeclarativenetworkinfo.cpp
+++ b/plugins/declarative/systeminfo/qdeclarativenetworkinfo.cpp
@@ -274,7 +274,7 @@ void QDeclarativeNetworkInfo::startSignalStrengthChanged(bool on)
/*!
\qmlproperty bool NetworkInfo::monitorSignalStrengthChanges
- \brief Use the monitorSignalStrengthChanges signal.
+ \brief Use the signalStrengthChanged signal.
*/
bool QDeclarativeNetworkInfo::monitorSignalStrengthChanges()
{
@@ -300,7 +300,7 @@ void QDeclarativeNetworkInfo::startNameChanged(bool on)
/*!
\qmlproperty bool NetworkInfo::monitorNameChanges
- \brief Use the monitorNameChanges signal.
+ \brief Use the nameChanged signal.
*/
bool QDeclarativeNetworkInfo::monitorNameChanges()
{
@@ -527,3 +527,59 @@ QSystemNetworkInfo::NetworkMode QDeclarativeNetworkInfo::mode()
{
return m_mode;
}
+
+
+/*!
+ \qmlproperty bool NetworkInfo::monitoringCellDataTechnologyChanges
+ \brief Use the cellDataTechnologyChanges signal.
+
+ \sa QSystemNetworkInfo::cellDataTechnologyChanged
+ */
+bool QDeclarativeNetworkInfo::monitorCellDataChanges()
+{
+ return monitoringCellDataTechnologyChanges;
+}
+
+/*!
+ This function starts the cellDataTechnologyChanges notification
+
+*/
+void QDeclarativeNetworkInfo::startCellDataChanged(bool on)
+{
+ monitoringCellDataTechnologyChanges = on;
+ if (on) {
+ connect(netInfo(),SIGNAL(cellDataTechnologyChanged(QSystemNetworkInfo::CellDataTechnology)),
+ this,SIGNAL(cellDataTechnologyChanges(QSystemNetworkInfo::CellDataTechnology)),Qt::UniqueConnection);
+ } else {
+ disconnect(netInfo(),SIGNAL(cellDataTechnologyChanged(QSystemNetworkInfo::CellDataTechnology)),
+ this,SIGNAL(cellDataTechnologyChanges(QSystemNetworkInfo::CellDataTechnology)));
+ }
+}
+
+/*!
+ \qmlproperty bool NetworkInfo::monitoringCellIdChanges
+ \brief Use the cellIdChanges signal.
+ */
+bool QDeclarativeNetworkInfo::monitorCellIdChanges()
+{
+ return monitoringCellIdChanges;
+}
+
+/*!
+ This function starts the cellIdChanges notification
+
+ \sa QSystemNetworkInfo::cellIdChanged
+
+*/
+void QDeclarativeNetworkInfo::startCellIdChanged(bool on)
+{
+ monitoringCellIdChanges = on;
+ if (on) {
+ connect(netInfo(),SIGNAL(cellIdChanged(int)),
+ this,SIGNAL(cellIdChanges(int)),Qt::UniqueConnection);
+ } else {
+ disconnect(netInfo(),SIGNAL(cellIdChanged(int)),
+ this,SIGNAL(cellIdChanges(int)));
+ }
+}
+
diff --git a/plugins/declarative/systeminfo/qdeclarativenetworkinfo_p.h b/plugins/declarative/systeminfo/qdeclarativenetworkinfo_p.h
index 36427e58d9..df4e825422 100644
--- a/plugins/declarative/systeminfo/qdeclarativenetworkinfo_p.h
+++ b/plugins/declarative/systeminfo/qdeclarativenetworkinfo_p.h
@@ -62,6 +62,8 @@ class QDeclarativeNetworkInfo : public QSystemNetworkInfo
Q_PROPERTY(bool monitorModeChanges READ monitorModeChanges WRITE startModeChanged)
Q_PROPERTY(bool monitorCurrentMobileCountryCodeChanges READ monitorCurrentMobileCountryCodeChanges WRITE startCurrentMobileCountryCodeChanged)
Q_PROPERTY(bool monitorCurrentMobileNetworkCodeChanges READ monitorCurrentMobileNetworkCodeChanges WRITE startCurrentMobileNetworkCodeChanged)
+ Q_PROPERTY(bool monitorCellDataChanges READ monitorCellDataChanges WRITE startCellDataChanged)
+ Q_PROPERTY(bool monitorCellIdChanges READ monitorCellIdChanges WRITE startCellIdChanged)
public:
explicit QDeclarativeNetworkInfo(QObject *parent = 0);
@@ -90,6 +92,12 @@ public:
bool monitorCurrentMobileNetworkCodeChanges();
void startCurrentMobileNetworkCodeChanged(bool on);
+ bool monitorCellDataChanges();
+ void startCellDataChanged(bool on);
+
+ bool monitorCellIdChanges();
+ void startCellIdChanged(bool on);
+
void useMode(QSystemNetworkInfo::NetworkMode curmode);
public slots:
@@ -105,6 +113,10 @@ Q_SIGNALS:
void currentMobileCountryCodeChanged(const QString &newMcc);
void currentMobileNetworkCodeChanged(const QString &newMnc);
+ void cellIdChanges(int cellId);
+ void cellDataTechnologyChanges(QSystemNetworkInfo::CellDataTechnology cellTech);
+
+
private:
QSystemNetworkInfo::NetworkMode m_mode;
QString statusToString(QSystemNetworkInfo::NetworkStatus);
@@ -116,6 +128,8 @@ private:
bool monitoringModeChanges;
bool monitoringCurrentMobileCountryCodeChanges;
bool monitoringCurrentMobileNetworkCodeChanges;
+ bool monitoringCellDataTechnologyChanges;
+ bool monitoringCellIdChanges;
private slots:
void networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus);
diff --git a/plugins/multimedia/directshow/camera/camera.pri b/plugins/multimedia/directshow/camera/camera.pri
new file mode 100644
index 0000000000..42f5999a21
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/camera.pri
@@ -0,0 +1,31 @@
+INCLUDEPATH += $$PWD
+
+DEFINES += QMEDIA_DIRECTSHOW_CAMERA
+
+win32-g++: DEFINES += QT_NO_WMSDK
+
+win32: DEFINES += _CRT_SECURE_NO_WARNINGS
+
+HEADERS += \
+ $$PWD/dscameraservice.h \
+ $$PWD/dscameracontrol.h \
+ $$PWD/dsvideorenderer.h \
+ $$PWD/dsvideodevicecontrol.h \
+ $$PWD/dsimagecapturecontrol.h \
+ $$PWD/dscamerasession.h \
+ $$PWD/dsvideowidgetcontrol.h \
+ $$PWD/dscameraservice.h \
+ $$PWD/directshowglobal.h
+
+
+SOURCES += \
+ $$PWD/dscameraservice.cpp \
+ $$PWD/dscameracontrol.cpp \
+ $$PWD/dsvideorenderer.cpp \
+ $$PWD/dsvideodevicecontrol.cpp \
+ $$PWD/dsimagecapturecontrol.cpp \
+ $$PWD/dscamerasession.cpp \
+ $$PWD/dsvideowidgetcontrol.cpp
+
+INCLUDEPATH += $(DXSDK_DIR)/include
+LIBS += -lstrmiids -ldmoguids -luuid -lmsdmo -lole32 -loleaut32
diff --git a/plugins/multimedia/directshow/camera/directshowglobal.h b/plugins/multimedia/directshow/camera/directshowglobal.h
new file mode 100644
index 0000000000..76c143798d
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/directshowglobal.h
@@ -0,0 +1,236 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DIRECTSHOWGLOBAL_H
+#define DIRECTSHOWGLOBAL_H
+
+#include <QtCore/qglobal.h>
+
+#include <dshow.h>
+
+DEFINE_GUID(MEDIASUBTYPE_I420,
+ 0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71);
+
+extern const GUID MEDIASUBTYPE_RGB24;
+extern const GUID MEDIASUBTYPE_RGB32;
+extern const GUID MEDIASUBTYPE_YUY2;
+extern const GUID MEDIASUBTYPE_MJPG;
+extern const GUID MEDIASUBTYPE_RGB555;
+extern const GUID MEDIASUBTYPE_YVU9;
+extern const GUID MEDIASUBTYPE_UYVY;
+extern const GUID PIN_CATEGORY_CAPTURE;
+extern const GUID PIN_CATEGORY_PREVIEW;
+
+extern const IID IID_IPropertyBag;
+extern const IID IID_ISampleGrabber;
+extern const IID IID_ICaptureGraphBuilder2;
+extern const IID IID_IAMStreamConfig;
+
+
+extern const CLSID CLSID_CVidCapClassManager;
+extern const CLSID CLSID_VideoInputDeviceCategory;
+extern const CLSID CLSID_SampleGrabber;
+extern const CLSID CLSID_CaptureGraphBuilder2;
+
+#define SAFE_RELEASE(x) { if(x) x->Release(); x = NULL; }
+
+typedef struct IFileSinkFilter *LPFILESINKFILTER;
+typedef struct IAMCopyCaptureFileProgress *LPAMCOPYCAPTUREFILEPROGRESS;
+
+#ifndef __ICaptureGraphBuilder2_INTERFACE_DEFINED__
+#define __ICaptureGraphBuilder2_INTERFACE_DEFINED__
+struct ICaptureGraphBuilder2 : public IUnknown
+{
+public:
+ virtual HRESULT STDMETHODCALLTYPE SetFiltergraph(
+ /* [in] */ IGraphBuilder *pfg) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFiltergraph(
+ /* [out] */ IGraphBuilder **ppfg) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetOutputFileName(
+ /* [in] */ const GUID *pType,
+ /* [in] */ LPCOLESTR lpstrFile,
+ /* [out] */ IBaseFilter **ppf,
+ /* [out] */ IFileSinkFilter **ppSink) = 0;
+
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE FindInterface(
+ /* [in] */ const GUID *pCategory,
+ /* [in] */ const GUID *pType,
+ /* [in] */ IBaseFilter *pf,
+ /* [in] */ REFIID riid,
+ /* [out] */ void **ppint) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE RenderStream(
+ /* [in] */ const GUID *pCategory,
+ /* [in] */ const GUID *pType,
+ /* [in] */ IUnknown *pSource,
+ /* [in] */ IBaseFilter *pfCompressor,
+ /* [in] */ IBaseFilter *pfRenderer) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ControlStream(
+ /* [in] */ const GUID *pCategory,
+ /* [in] */ const GUID *pType,
+ /* [in] */ IBaseFilter *pFilter,
+ /* [in] */ REFERENCE_TIME *pstart,
+ /* [in] */ REFERENCE_TIME *pstop,
+ /* [in] */ WORD wStartCookie,
+ /* [in] */ WORD wStopCookie) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AllocCapFile(
+ /* [in] */ LPCOLESTR lpstr,
+ /* [in] */ DWORDLONG dwlSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE CopyCaptureFile(
+ /* [in] */ LPOLESTR lpwstrOld,
+ /* [in] */ LPOLESTR lpwstrNew,
+ /* [in] */ int fAllowEscAbort,
+ /* [in] */ IAMCopyCaptureFileProgress *pCallback) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FindPin(
+ /* [in] */ IUnknown *pSource,
+ /* [in] */ PIN_DIRECTION pindir,
+ /* [in] */ const GUID *pCategory,
+ /* [in] */ const GUID *pType,
+ /* [in] */ BOOL fUnconnected,
+ /* [in] */ int num,
+ /* [out] */ IPin **ppPin) = 0;
+
+};
+#endif
+
+#ifndef __IAMStreamConfig_INTERFACE_DEFINED__
+#define __IAMStreamConfig_INTERFACE_DEFINED__
+struct IAMStreamConfig : public IUnknown
+{
+public:
+ virtual HRESULT STDMETHODCALLTYPE SetFormat(
+ /* [in] */ AM_MEDIA_TYPE *pmt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFormat(
+ /* [out] */ AM_MEDIA_TYPE **ppmt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNumberOfCapabilities(
+ /* [out] */ int *piCount,
+ /* [out] */ int *piSize) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStreamCaps(
+ /* [in] */ int iIndex,
+ /* [out] */ AM_MEDIA_TYPE **ppmt,
+ /* [out] */ BYTE *pSCC) = 0;
+
+};
+#endif
+
+#ifndef __IErrorLog_INTERFACE_DEFINED__
+#define __IErrorLog_INTERFACE_DEFINED__
+struct IErrorLog : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE AddError(
+ /* [in] */ LPCOLESTR pszPropName,
+ /* [in] */ EXCEPINFO *pExcepInfo) = 0;
+
+ };
+#endif
+
+#ifndef __IPropertyBag_INTERFACE_DEFINED__
+#define __IPropertyBag_INTERFACE_DEFINED__
+struct IPropertyBag : public IUnknown
+{
+public:
+ virtual /* [local] */ HRESULT STDMETHODCALLTYPE Read(
+ /* [in] */ LPCOLESTR pszPropName,
+ /* [out][in] */ VARIANT *pVar,
+ /* [in] */ IErrorLog *pErrorLog) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Write(
+ /* [in] */ LPCOLESTR pszPropName,
+ /* [in] */ VARIANT *pVar) = 0;
+
+};
+#endif
+
+typedef struct IMediaSample *LPMEDIASAMPLE;
+
+EXTERN_C const IID IID_ISampleGrabberCB;
+
+#ifndef __ISampleGrabberCB_INTERFACE_DEFINED__
+#define __ISampleGrabberCB_INTERFACE_DEFINED__
+
+#undef INTERFACE
+#define INTERFACE ISampleGrabberCB
+DECLARE_INTERFACE_(ISampleGrabberCB, IUnknown)
+{
+// STDMETHOD(QueryInterface) (THIS_ const GUID *, void **) PURE;
+ STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **) PURE;
+ STDMETHOD_(ULONG, AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG, Release) (THIS) PURE;
+ STDMETHOD_(HRESULT, SampleCB) (THIS_ double, LPMEDIASAMPLE) PURE;
+ STDMETHOD_(HRESULT, BufferCB) (THIS_ double, BYTE *, long) PURE;
+};
+#undef INTERFACE
+
+#endif
+
+
+#ifndef __ISampleGrabber_INTERFACE_DEFINED__
+#define __ISampleGrabber_INTERFACE_DEFINED__
+
+#define INTERFACE ISampleGrabber
+DECLARE_INTERFACE_(ISampleGrabber,IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(SetOneShot)(THIS_ BOOL) PURE;
+ STDMETHOD(SetMediaType)(THIS_ const AM_MEDIA_TYPE*) PURE;
+ STDMETHOD(GetConnectedMediaType)(THIS_ AM_MEDIA_TYPE*) PURE;
+ STDMETHOD(SetBufferSamples)(THIS_ BOOL) PURE;
+ STDMETHOD(GetCurrentBuffer)(THIS_ long*,long*) PURE;
+ STDMETHOD(GetCurrentSample)(THIS_ IMediaSample**) PURE;
+ STDMETHOD(SetCallback)(THIS_ ISampleGrabberCB *,long) PURE;
+};
+#undef INTERFACE
+#endif
+
+
+#endif
diff --git a/plugins/multimedia/directshow/camera/dscameracontrol.cpp b/plugins/multimedia/directshow/camera/dscameracontrol.cpp
new file mode 100644
index 0000000000..b09064c2ba
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dscameracontrol.cpp
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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/qdebug.h>
+
+#include "dscameracontrol.h"
+#include "dscameraservice.h"
+#include "dscamerasession.h"
+
+QT_BEGIN_NAMESPACE
+
+DSCameraControl::DSCameraControl(QObject *parent)
+ :QCameraControl(parent), m_captureMode(QCamera::CaptureStillImage)
+{
+ m_session = qobject_cast<DSCameraSession*>(parent);
+ connect(m_session, SIGNAL(stateChanged(QCamera::State)),this, SIGNAL(stateChanged(QCamera::State)));
+}
+
+DSCameraControl::~DSCameraControl()
+{
+}
+
+void DSCameraControl::setState(QCamera::State state)
+{
+ switch (state) {
+ case QCamera::ActiveState:
+ start();
+ break;
+ case QCamera::UnloadedState: /* fall through */
+ case QCamera::LoadedState:
+ stop();
+ break;
+ }
+}
+
+bool DSCameraControl::isCaptureModeSupported(QCamera::CaptureMode mode) const
+{
+ bool bCaptureSupported = false;
+ switch (mode) {
+ case QCamera::CaptureStillImage:
+ bCaptureSupported = true;
+ break;
+ case QCamera::CaptureVideo:
+ bCaptureSupported = false;
+ break;
+ }
+ return bCaptureSupported;
+}
+
+void DSCameraControl::start()
+{
+ m_session->record();
+}
+
+void DSCameraControl::stop()
+{
+ m_session->stop();
+}
+
+QCamera::State DSCameraControl::state() const
+{
+ return (QCamera::State)m_session->state();
+}
+
+QT_END_NAMESPACE
diff --git a/plugins/multimedia/directshow/camera/dscameracontrol.h b/plugins/multimedia/directshow/camera/dscameracontrol.h
new file mode 100644
index 0000000000..9b20563d2e
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dscameracontrol.h
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DSCAMERACONTROL_H
+#define DSCAMERACONTROL_H
+
+#include <QtCore/qobject.h>
+#include <qcameracontrol.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class DSCameraService;
+class DSCameraSession;
+
+
+class DSCameraControl : public QCameraControl
+{
+ Q_OBJECT
+public:
+ DSCameraControl(QObject *parent = 0);
+ ~DSCameraControl();
+
+ void start();
+ void stop();
+ QCamera::State state() const;
+
+ QCamera::CaptureMode captureMode() const { return m_captureMode; }
+ void setCaptureMode(QCamera::CaptureMode mode)
+ {
+ if (m_captureMode != mode) {
+ m_captureMode = mode;
+ emit captureModeChanged(mode);
+ }
+ }
+
+ void setState(QCamera::State state);
+
+ QCamera::Status status() const { return QCamera::UnavailableStatus; }
+ bool isCaptureModeSupported(QCamera::CaptureMode mode) const;
+ bool canChangeProperty(PropertyChangeType /* changeType */, QCamera::Status /* status */) const {return false; }
+
+private:
+ DSCameraSession *m_session;
+ DSCameraService *m_service;
+ QCamera::CaptureMode m_captureMode;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
+
+
diff --git a/plugins/multimedia/directshow/camera/dscameraservice.cpp b/plugins/multimedia/directshow/camera/dscameraservice.cpp
new file mode 100644
index 0000000000..9d73da02ca
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dscameraservice.cpp
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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/qvariant.h>
+#include <QtCore/qdebug.h>
+#include <QtGui/qwidget.h>
+#include <QVideoWidgetControl.h>
+
+
+#include "dscameraservice.h"
+#include "dscameracontrol.h"
+#include "dscamerasession.h"
+#include "dsvideorenderer.h"
+#include "dsvideodevicecontrol.h"
+#include "dsimagecapturecontrol.h"
+#include "dsvideowidgetcontrol.h"
+
+QT_BEGIN_NAMESPACE
+
+DSCameraService::DSCameraService(QObject *parent):
+ QMediaService(parent)
+{
+ m_session = new DSCameraSession(this);
+
+ m_control = new DSCameraControl(m_session);
+
+ m_videoDevice = new DSVideoDeviceControl(m_session);
+
+ m_videoRenderer = new DSVideoRendererControl(m_session, this);
+
+ m_imageCapture = new DSImageCaptureControl(m_session);
+
+ m_viewFinderWidget = new DSVideoWidgetControl(m_session);
+
+ m_device = QByteArray("default");
+}
+
+DSCameraService::~DSCameraService()
+{
+ delete m_control;
+ delete m_videoDevice;
+ delete m_videoRenderer;
+ delete m_imageCapture;
+ delete m_viewFinderWidget;
+ delete m_session;
+}
+
+QMediaControl* DSCameraService::requestControl(const char *name)
+{
+ if(qstrcmp(name,QCameraControl_iid) == 0)
+ return m_control;
+
+ if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
+ return m_imageCapture;
+
+ if (qstrcmp(name, QVideoWidgetControl_iid) == 0) {
+ if (m_viewFinderWidget) {
+ return m_viewFinderWidget;
+ }
+ }
+
+ if(qstrcmp(name,QVideoRendererControl_iid) == 0)
+ return m_videoRenderer;
+
+ if(qstrcmp(name,QVideoDeviceControl_iid) == 0)
+ return m_videoDevice;
+
+ return 0;
+}
+
+void DSCameraService::releaseControl(QMediaControl *control)
+{
+ // Implemented as a singleton, so we do nothing.
+}
+
+QT_END_NAMESPACE
diff --git a/plugins/multimedia/directshow/camera/dscameraservice.h b/plugins/multimedia/directshow/camera/dscameraservice.h
new file mode 100644
index 0000000000..e8a9450fb9
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dscameraservice.h
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DSCAMERASERVICE_H
+#define DSCAMERASERVICE_H
+
+#include <QtCore/qobject.h>
+
+#include <qmediaservice.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class DSCameraControl;
+class DSCameraSession;
+class DSVideoOutputControl;
+class DSVideoDeviceControl;
+class DSVideoRendererControl;
+class DSImageCaptureControl;
+class DSVideoWidgetControl;
+
+
+class DSCameraService : public QMediaService
+{
+ Q_OBJECT
+
+public:
+ DSCameraService(QObject *parent = 0);
+ ~DSCameraService();
+
+ virtual QMediaControl* requestControl(const char *name);
+ virtual void releaseControl(QMediaControl *control);
+
+private:
+ DSCameraControl *m_control;
+ DSCameraSession *m_session;
+ DSVideoOutputControl *m_videoOutput;
+ DSVideoWidgetControl *m_viewFinderWidget;
+ DSVideoDeviceControl *m_videoDevice;
+ DSVideoRendererControl *m_videoRenderer;
+ DSImageCaptureControl *m_imageCapture;
+ QByteArray m_device;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/plugins/multimedia/directshow/camera/dscamerasession.cpp b/plugins/multimedia/directshow/camera/dscamerasession.cpp
new file mode 100644
index 0000000000..a08fb318ff
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dscamerasession.cpp
@@ -0,0 +1,1160 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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/qdebug.h>
+#include <QWidget>
+#include <QFile>
+#include <QtMultimedia/qabstractvideobuffer.h>
+#include <QtMultimedia/qvideosurfaceformat.h>
+
+#include "dscamerasession.h"
+#include "dsvideorenderer.h"
+#include "directshowglobal.h"
+
+QT_BEGIN_NAMESPACE
+
+// If frames come in quicker than we display them, we allow the queue to build
+// up to this number before we start dropping them.
+const int LIMIT_FRAME = 5;
+
+namespace {
+// DirectShow helper implementation
+void _FreeMediaType(AM_MEDIA_TYPE& mt)
+{
+ if (mt.cbFormat != 0) {
+ CoTaskMemFree((PVOID)mt.pbFormat);
+ mt.cbFormat = 0;
+ mt.pbFormat = NULL;
+ }
+ if (mt.pUnk != NULL) {
+ // pUnk should not be used.
+ mt.pUnk->Release();
+ mt.pUnk = NULL;
+ }
+}
+
+} // end namespace
+
+class SampleGrabberCallbackPrivate : public ISampleGrabberCB
+{
+public:
+ STDMETHODIMP_(ULONG) AddRef() { return 1; }
+ STDMETHODIMP_(ULONG) Release() { return 2; }
+
+ STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject)
+ {
+ if (NULL == ppvObject)
+ return E_POINTER;
+ if (riid == IID_IUnknown /*__uuidof(IUnknown) */ ) {
+ *ppvObject = static_cast<IUnknown*>(this);
+ return S_OK;
+ }
+ if (riid == IID_ISampleGrabberCB /*__uuidof(ISampleGrabberCB)*/ ) {
+ *ppvObject = static_cast<ISampleGrabberCB*>(this);
+ return S_OK;
+ }
+ return E_NOTIMPL;
+ }
+
+ STDMETHODIMP SampleCB(double Time, IMediaSample *pSample)
+ {
+ return E_NOTIMPL;
+ }
+
+ STDMETHODIMP BufferCB(double Time, BYTE *pBuffer, long BufferLen)
+ {
+ if (!cs || active) {
+ return S_OK;
+ }
+
+ if ((cs->StillMediaType.majortype != MEDIATYPE_Video) ||
+ (cs->StillMediaType.formattype != FORMAT_VideoInfo) ||
+ (cs->StillMediaType.cbFormat < sizeof(VIDEOINFOHEADER))) {
+ return VFW_E_INVALIDMEDIATYPE;
+ }
+
+ active = true;
+
+ if(toggle == true) {
+ toggle = false;
+ }
+ else {
+ toggle = true;
+ }
+
+ if(toggle) {
+ active = false;
+ return S_OK;
+ }
+
+ bool check = false;
+ cs->mutex.lock();
+
+ if (cs->frames.size() > LIMIT_FRAME) {
+ check = true;
+ }
+
+ if (check) {
+ cs->mutex.unlock();
+ // Frames building up. We're going to drop some here
+ Sleep(100);
+ active = false;
+ return S_OK;
+ }
+ cs->mutex.unlock();
+
+ unsigned char* vidData = new unsigned char[BufferLen];
+ memcpy(vidData, pBuffer, BufferLen);
+
+ cs->mutex.lock();
+
+ video_buffer* buf = new video_buffer;
+ buf->buffer = vidData;
+ buf->length = BufferLen;
+ buf->time = (qint64)Time;
+
+ cs->frames.append(buf);
+
+ cs->mutex.unlock();
+
+ QMetaObject::invokeMethod(cs, "captureFrame", Qt::QueuedConnection);
+
+ active = false;
+
+ return S_OK;
+ }
+
+ DSCameraSession* cs;
+ bool active;
+ bool toggle;
+};
+
+
+DSCameraSession::DSCameraSession(QObject *parent)
+ : QObject(parent)
+ ,m_currentImageId(0)
+{
+ pBuild = NULL;
+ pGraph = NULL;
+ pCap = NULL;
+ pSG_Filter = NULL;
+ pSG = NULL;
+
+ opened = false;
+ available = false;
+ resolutions.clear();
+ m_state = QCamera::UnloadedState;
+ m_device = "default";
+
+ StillCapCB = new SampleGrabberCallbackPrivate;
+ StillCapCB->cs = this;
+ StillCapCB->active = false;
+ StillCapCB->toggle = false;
+
+ m_output = 0;
+ m_surface = 0;
+ m_windowSize = QSize(320,240);
+ pixelF = QVideoFrame::Format_RGB24;
+ actualFormat = QVideoSurfaceFormat(m_windowSize,pixelF);
+
+ graph = false;
+ active = false;
+
+ ::CoInitialize(NULL);
+}
+
+DSCameraSession::~DSCameraSession()
+{
+ if (opened) {
+ closeStream();
+ }
+
+ CoUninitialize();
+
+ SAFE_RELEASE(pCap);
+ SAFE_RELEASE(pSG_Filter);
+ SAFE_RELEASE(pGraph);
+ SAFE_RELEASE(pBuild);
+
+ if (StillCapCB) {
+ delete StillCapCB;
+ }
+}
+
+int DSCameraSession::captureImage(const QString &fileName)
+{
+ emit readyForCaptureChanged(false);
+
+ // We're going to do this in one big synchronous call
+ m_currentImageId++;
+ if (fileName.isEmpty()) {
+ m_snapshot = "img.jpg";
+ } else {
+ m_snapshot = fileName;
+ }
+
+ if (!active) {
+ startStream();
+ }
+
+ return m_currentImageId;
+}
+
+void DSCameraSession::setSurface(QAbstractVideoSurface* surface)
+{
+ m_surface = surface;
+}
+
+bool DSCameraSession::deviceReady()
+{
+ return available;
+}
+
+bool DSCameraSession::pictureInProgress()
+{
+ return m_snapshot.isEmpty();
+}
+
+int DSCameraSession::framerate() const
+{
+ return -1;
+}
+
+void DSCameraSession::setFrameRate(int rate)
+{
+ Q_UNUSED(rate)
+}
+
+int DSCameraSession::brightness() const
+{
+ return -1;
+}
+
+void DSCameraSession::setBrightness(int b)
+{
+ Q_UNUSED(b)
+}
+
+int DSCameraSession::contrast() const
+{
+ return -1;
+}
+
+void DSCameraSession::setContrast(int c)
+{
+ Q_UNUSED(c)
+}
+
+int DSCameraSession::saturation() const
+{
+ return -1;
+}
+
+void DSCameraSession::setSaturation(int s)
+{
+ Q_UNUSED(s)
+}
+
+int DSCameraSession::hue() const
+{
+ return -1;
+}
+
+void DSCameraSession::setHue(int h)
+{
+ Q_UNUSED(h)
+}
+
+int DSCameraSession::sharpness() const
+{
+ return -1;
+}
+
+void DSCameraSession::setSharpness(int s)
+{
+ Q_UNUSED(s)
+}
+
+int DSCameraSession::zoom() const
+{
+ return -1;
+}
+
+void DSCameraSession::setZoom(int z)
+{
+ Q_UNUSED(z)
+}
+
+bool DSCameraSession::backlightCompensation() const
+{
+ return false;
+}
+
+void DSCameraSession::setBacklightCompensation(bool b)
+{
+ Q_UNUSED(b)
+}
+
+int DSCameraSession::whitelevel() const
+{
+ return -1;
+}
+
+void DSCameraSession::setWhitelevel(int w)
+{
+ Q_UNUSED(w)
+}
+
+int DSCameraSession::rotation() const
+{
+ return 0;
+}
+
+void DSCameraSession::setRotation(int r)
+{
+ Q_UNUSED(r)
+}
+
+bool DSCameraSession::flash() const
+{
+ return false;
+}
+
+void DSCameraSession::setFlash(bool f)
+{
+ Q_UNUSED(f)
+}
+
+bool DSCameraSession::autofocus() const
+{
+ return false;
+}
+
+void DSCameraSession::setAutofocus(bool f)
+{
+ Q_UNUSED(f)
+}
+
+QSize DSCameraSession::frameSize() const
+{
+ return m_windowSize;
+}
+
+void DSCameraSession::setFrameSize(const QSize& s)
+{
+ if (supportedResolutions(pixelF).contains(s))
+ m_windowSize = s;
+ else
+ qWarning() << "frame size if not supported for current pixel format, no change";
+}
+
+void DSCameraSession::setDevice(const QString &device)
+{
+ if(opened)
+ stopStream();
+
+ if(graph) {
+ SAFE_RELEASE(pCap);
+ SAFE_RELEASE(pSG_Filter);
+ SAFE_RELEASE(pGraph);
+ SAFE_RELEASE(pBuild);
+ }
+
+ available = false;
+ m_state = QCamera::LoadedState;
+
+ CoInitialize(NULL);
+
+ ICreateDevEnum* pDevEnum = NULL;
+ IEnumMoniker* pEnum = NULL;
+
+ // Create the System device enumerator
+ HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,
+ CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,
+ reinterpret_cast<void**>(&pDevEnum));
+ if(SUCCEEDED(hr)) {
+ // Create the enumerator for the video capture category
+ hr = pDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &pEnum, 0);
+ if (S_OK == hr) {
+ pEnum->Reset();
+ // go through and find all video capture devices
+ IMoniker* pMoniker = NULL;
+ while(pEnum->Next(1, &pMoniker, NULL) == S_OK) {
+ IPropertyBag *pPropBag;
+ hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag,
+ (void**)(&pPropBag));
+ if(FAILED(hr)) {
+ pMoniker->Release();
+ continue; // skip this one
+ }
+ // Find the description
+ WCHAR str[120];
+ VARIANT varName;
+ varName.vt = VT_BSTR;
+ hr = pPropBag->Read(L"Description", &varName, 0);
+ if(FAILED(hr))
+ hr = pPropBag->Read(L"FriendlyName", &varName, 0);
+ if(SUCCEEDED(hr)) {
+ wcsncpy(str, varName.bstrVal, sizeof(str)/sizeof(str[0]));
+ QString temp(QString::fromUtf16((unsigned short*)str));
+ if(temp.contains(device)) {
+ available = true;
+ }
+ }
+ pPropBag->Release();
+ pMoniker->Release();
+ }
+ pEnum->Release();
+ }
+ pDevEnum->Release();
+ }
+ CoUninitialize();
+
+ if(available) {
+ m_device = QByteArray(device.toLocal8Bit().constData());
+ graph = createFilterGraph();
+ if(!graph)
+ available = false;
+ }
+}
+
+QList<QVideoFrame::PixelFormat> DSCameraSession::supportedPixelFormats()
+{
+ return types;
+}
+
+QVideoFrame::PixelFormat DSCameraSession::pixelFormat() const
+{
+ return pixelF;
+}
+
+void DSCameraSession::setPixelFormat(QVideoFrame::PixelFormat fmt)
+{
+ pixelF = fmt;
+}
+
+QList<QSize> DSCameraSession::supportedResolutions(QVideoFrame::PixelFormat format)
+{
+ if (!resolutions.contains(format))
+ return QList<QSize>();
+ return resolutions.value(format);
+}
+
+bool DSCameraSession::setOutputLocation(const QUrl &sink)
+{
+ m_sink = sink;
+
+ return true;
+}
+
+QUrl DSCameraSession::outputLocation() const
+{
+ return m_sink;
+}
+
+qint64 DSCameraSession::position() const
+{
+ return timeStamp.elapsed();
+}
+
+int DSCameraSession::state() const
+{
+ return int(m_state);
+}
+
+void DSCameraSession::record()
+{
+ if(opened) {
+ return;
+ }
+
+ if(m_surface) {
+ bool match = false;
+
+ if (!m_surface->isFormatSupported(actualFormat)) {
+ QList<QVideoFrame::PixelFormat> fmts;
+ foreach(QVideoFrame::PixelFormat f, types) {
+ if (fmts.contains(f)) {
+ match = true;
+ pixelF = f;
+ actualFormat = QVideoSurfaceFormat(m_windowSize,pixelF);
+ break;
+ }
+ }
+ }
+ if (!m_surface->isFormatSupported(actualFormat) && !match) {
+ // fallback
+ if (types.contains(QVideoFrame::Format_RGB24)) {
+ // get RGB24 from camera and convert to RGB32 for surface!
+ pixelF = QVideoFrame::Format_RGB32;
+ actualFormat = QVideoSurfaceFormat(m_windowSize,pixelF);
+ }
+ }
+
+ if (m_surface->isFormatSupported(actualFormat)) {
+ m_surface->start(actualFormat);
+ m_state = QCamera::ActiveState;
+ emit stateChanged(QCamera::ActiveState);
+ } else {
+ qWarning() << "surface doesn't support camera format, cant start";
+ m_state = QCamera::LoadedState;
+ emit stateChanged(QCamera::LoadedState);
+ return;
+ }
+ } else {
+ qWarning() << "no video surface, cant start";
+ m_state = QCamera::LoadedState;
+ emit stateChanged(QCamera::LoadedState);
+ return;
+ }
+
+ opened = startStream();
+
+ if (!opened) {
+ qWarning() << "Stream did not open";
+ m_state = QCamera::LoadedState;
+ emit stateChanged(QCamera::LoadedState);
+ }
+}
+
+void DSCameraSession::pause()
+{
+ suspendStream();
+}
+
+void DSCameraSession::stop()
+{
+ if(!opened) {
+ return;
+ }
+
+ stopStream();
+ opened = false;
+ m_state = QCamera::LoadedState;
+ emit stateChanged(QCamera::LoadedState);
+}
+
+void DSCameraSession::captureFrame()
+{
+ if(m_surface && frames.count() > 0) {
+
+ QImage image;
+
+ if(pixelF == QVideoFrame::Format_RGB24) {
+
+ mutex.lock();
+
+ image = QImage(frames.at(0)->buffer,m_windowSize.width(),m_windowSize.height(),
+ QImage::Format_RGB888).rgbSwapped().mirrored(true);
+
+ QVideoFrame frame(image);
+ frame.setStartTime(frames.at(0)->time);
+
+ mutex.unlock();
+
+ m_surface->present(frame);
+
+ } else if (pixelF == QVideoFrame::Format_RGB32) {
+
+ mutex.lock();
+
+ image = QImage(frames.at(0)->buffer,m_windowSize.width(),m_windowSize.height(),
+ QImage::Format_RGB888).rgbSwapped().mirrored(true);
+
+ QVideoFrame frame(image.convertToFormat(QImage::Format_RGB32));
+ frame.setStartTime(frames.at(0)->time);
+
+ mutex.unlock();
+
+ m_surface->present(frame);
+
+ } else {
+ qWarning() << "TODO:captureFrame() format =" << pixelF;
+ }
+
+ if (m_snapshot.length() > 0) {
+ emit imageCaptured(m_currentImageId, image);
+ image.save(m_snapshot,"JPG");
+ emit imageSaved(m_currentImageId, m_snapshot);
+ m_snapshot.clear();
+ emit readyForCaptureChanged(true);
+ }
+
+ mutex.lock();
+ if (frames.isEmpty()) {
+ qWarning() << "Frames over-run";
+ }
+
+ video_buffer* buf = frames.takeFirst();
+ delete buf->buffer;
+ delete buf;
+ mutex.unlock();
+ }
+}
+
+HRESULT DSCameraSession::getPin(IBaseFilter *pFilter, PIN_DIRECTION PinDir, IPin **ppPin)
+{
+ *ppPin = 0;
+ IEnumPins *pEnum = 0;
+ IPin *pPin = 0;
+
+ HRESULT hr = pFilter->EnumPins(&pEnum);
+ if(FAILED(hr)) {
+ return hr;
+ }
+
+ pEnum->Reset();
+ while(pEnum->Next(1, &pPin, NULL) == S_OK) {
+ PIN_DIRECTION ThisPinDir;
+ pPin->QueryDirection(&ThisPinDir);
+ if(ThisPinDir == PinDir) {
+ pEnum->Release();
+ *ppPin = pPin;
+ return S_OK;
+ }
+ pEnum->Release();
+ }
+ pEnum->Release();
+ return E_FAIL;
+}
+
+bool DSCameraSession::createFilterGraph()
+{
+ HRESULT hr;
+ IMoniker* pMoniker = NULL;
+ ICreateDevEnum* pDevEnum = NULL;
+ IEnumMoniker* pEnum = NULL;
+
+ CoInitialize(NULL);
+
+ // Create the filter graph
+ hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC,
+ IID_IGraphBuilder, (void**)&pGraph);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to create filter graph";
+ return false;
+ }
+
+ // Create the capture graph builder
+ hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC,
+ IID_ICaptureGraphBuilder2, (void**)&pBuild);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to create graph builder";
+ return false;
+ }
+
+ // Attach the filter graph to the capture graph
+ hr = pBuild->SetFiltergraph(pGraph);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to connect capture graph and filter graph";
+ return false;
+ }
+
+ // Find the Capture device
+ hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,
+ CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,
+ reinterpret_cast<void**>(&pDevEnum));
+ if (SUCCEEDED(hr)) {
+ // Create an enumerator for the video capture category
+ hr = pDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &pEnum, 0);
+ pDevEnum->Release();
+ if (S_OK == hr) {
+ pEnum->Reset();
+ //go through and find all video capture devices
+ while (pEnum->Next(1, &pMoniker, NULL) == S_OK) {
+ IPropertyBag *pPropBag;
+ hr = pMoniker->BindToStorage(0, 0,
+ IID_IPropertyBag, (void**)(&pPropBag));
+ if(FAILED(hr)) {
+ pMoniker->Release();
+ continue; // skip this one
+ }
+ // Find the description
+ WCHAR str[120];
+ VARIANT varName;
+ varName.vt = VT_BSTR;
+ hr = pPropBag->Read(L"FriendlyName", &varName, 0);
+ if (SUCCEEDED(hr)) {
+ // check if it is the selected device
+ wcsncpy(str, varName.bstrVal, sizeof(str)/sizeof(str[0]));
+ QString output = QString::fromUtf16((unsigned short*)str);
+ if (m_device.contains(output.toLocal8Bit().constData())) {
+ hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&pCap);
+ if (SUCCEEDED(hr)) {
+ pPropBag->Release();
+ pMoniker->Release();
+ break;
+ }
+ }
+ }
+ pPropBag->Release();
+ pMoniker->Release();
+ }
+ if (NULL == pCap)
+ {
+ if (m_device.contains("default"))
+ {
+ pEnum->Reset();
+ // still have to loop to discard bind to storage failure case
+ while (pEnum->Next(1, &pMoniker, NULL) == S_OK) {
+ IPropertyBag *pPropBag = 0;
+
+ hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)(&pPropBag));
+ if (FAILED(hr)) {
+ pMoniker->Release();
+ continue; // Don't panic yet
+ }
+
+ // No need to get the description, just grab it
+
+ hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&pCap);
+ pPropBag->Release();
+ pMoniker->Release();
+ if (SUCCEEDED(hr)) {
+ break; // done, stop looping through
+ }
+ else
+ {
+ qWarning() << "Object bind failed";
+ }
+ }
+ }
+ }
+ pEnum->Release();
+ }
+ }
+
+ // Sample grabber filter
+ hr = CoCreateInstance(CLSID_SampleGrabber, NULL,CLSCTX_INPROC,
+ IID_IBaseFilter, (void**)&pSG_Filter);
+ if (FAILED(hr)) {
+ qWarning() << "failed to create sample grabber";
+ return false;
+ }
+
+ pSG_Filter->QueryInterface(IID_ISampleGrabber, (void**)&pSG);
+ if (FAILED(hr)) {
+ qWarning() << "failed to get sample grabber";
+ return false;
+ }
+ pSG->SetOneShot(FALSE);
+ pSG->SetBufferSamples(TRUE);
+ pSG->SetCallback(StillCapCB, 1);
+
+ CoUninitialize();
+
+ return true;
+}
+
+void DSCameraSession::updateProperties()
+{
+ HRESULT hr;
+ AM_MEDIA_TYPE *pmt = NULL;
+ VIDEOINFOHEADER *pvi = NULL;
+ VIDEO_STREAM_CONFIG_CAPS scc;
+ IAMStreamConfig* pConfig = 0;
+
+ hr = pBuild->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,pCap,
+ IID_IAMStreamConfig, (void**)&pConfig);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to get config on capture device";
+ return;
+ }
+
+ int iCount;
+ int iSize;
+ hr = pConfig->GetNumberOfCapabilities(&iCount, &iSize);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to get capabilities";
+ return;
+ }
+
+ QList<QSize> sizes;
+ QVideoFrame::PixelFormat f = QVideoFrame::Format_Invalid;
+
+ types.clear();
+ resolutions.clear();
+
+ for (int iIndex = 0; iIndex < iCount; iIndex++) {
+ hr = pConfig->GetStreamCaps(iIndex, &pmt, reinterpret_cast<BYTE*>(&scc));
+ if (hr == S_OK) {
+ pvi = (VIDEOINFOHEADER*)pmt->pbFormat;
+ if ((pmt->majortype == MEDIATYPE_Video) &&
+ (pmt->formattype == FORMAT_VideoInfo)) {
+ // Add types
+ if (pmt->subtype == MEDIASUBTYPE_RGB24) {
+ if (!types.contains(QVideoFrame::Format_RGB24)) {
+ types.append(QVideoFrame::Format_RGB24);
+ f = QVideoFrame::Format_RGB24;
+ }
+ } else if (pmt->subtype == MEDIASUBTYPE_RGB32) {
+ if (!types.contains(QVideoFrame::Format_RGB32)) {
+ types.append(QVideoFrame::Format_RGB32);
+ f = QVideoFrame::Format_RGB32;
+ }
+ } else if (pmt->subtype == MEDIASUBTYPE_YUY2) {
+ if (!types.contains(QVideoFrame::Format_YUYV)) {
+ types.append(QVideoFrame::Format_YUYV);
+ f = QVideoFrame::Format_YUYV;
+ }
+ } else if (pmt->subtype == MEDIASUBTYPE_MJPG) {
+ } else if (pmt->subtype == MEDIASUBTYPE_I420) {
+ if (!types.contains(QVideoFrame::Format_YUV420P)) {
+ types.append(QVideoFrame::Format_YUV420P);
+ f = QVideoFrame::Format_YUV420P;
+ }
+ } else if (pmt->subtype == MEDIASUBTYPE_RGB555) {
+ if (!types.contains(QVideoFrame::Format_RGB555)) {
+ types.append(QVideoFrame::Format_RGB555);
+ f = QVideoFrame::Format_RGB555;
+ }
+ } else if (pmt->subtype == MEDIASUBTYPE_YVU9) {
+ } else if (pmt->subtype == MEDIASUBTYPE_UYVY) {
+ if (!types.contains(QVideoFrame::Format_UYVY)) {
+ types.append(QVideoFrame::Format_UYVY);
+ f = QVideoFrame::Format_UYVY;
+ }
+ } else {
+ qWarning() << "UNKNOWN FORMAT: " << pmt->subtype.Data1;
+ }
+ // Add resolutions
+ QSize res(pvi->bmiHeader.biWidth, pvi->bmiHeader.biHeight);
+ if (!resolutions.contains(f)) {
+ sizes.clear();
+ resolutions.insert(f,sizes);
+ }
+ resolutions[f].append(res);
+ }
+ }
+ }
+ pConfig->Release();
+}
+
+bool DSCameraSession::setProperties()
+{
+ CoInitialize(NULL);
+
+ HRESULT hr;
+ AM_MEDIA_TYPE am_media_type;
+ AM_MEDIA_TYPE *pmt = NULL;
+ VIDEOINFOHEADER *pvi = NULL;
+ VIDEO_STREAM_CONFIG_CAPS scc;
+
+ IAMStreamConfig* pConfig = 0;
+ hr = pBuild->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, pCap,
+ IID_IAMStreamConfig, (void**)&pConfig);
+ if(FAILED(hr)) {
+ qWarning()<<"failed to get config on capture device";
+ return false;
+ }
+
+ int iCount;
+ int iSize;
+ hr = pConfig->GetNumberOfCapabilities(&iCount, &iSize);
+ if(FAILED(hr)) {
+ qWarning()<<"failed to get capabilities";
+ return false;
+ }
+
+ bool setFormatOK = false;
+ for (int iIndex = 0; iIndex < iCount; iIndex++) {
+ hr = pConfig->GetStreamCaps(iIndex, &pmt, reinterpret_cast<BYTE*>(&scc));
+ if (hr == S_OK) {
+ pvi = (VIDEOINFOHEADER*)pmt->pbFormat;
+
+ if ((pmt->majortype == MEDIATYPE_Video) &&
+ (pmt->formattype == FORMAT_VideoInfo)) {
+ if ((actualFormat.frameWidth() == pvi->bmiHeader.biWidth) &&
+ (actualFormat.frameHeight() == pvi->bmiHeader.biHeight)) {
+ hr = pConfig->SetFormat(pmt);
+ _FreeMediaType(*pmt);
+ if(FAILED(hr)) {
+ qWarning()<<"failed to set format:" << hr;
+ qWarning()<<"but going to continue";
+ continue; // We going to continue
+ } else {
+ setFormatOK = true;
+ break;
+ }
+ }
+ }
+ }
+ }
+ pConfig->Release();
+
+ if (!setFormatOK) {
+ qWarning() << "unable to set any format for camera";
+ return false;
+ }
+
+ // Set Sample Grabber config to match capture
+ ZeroMemory(&am_media_type, sizeof(am_media_type));
+ am_media_type.majortype = MEDIATYPE_Video;
+
+ if (actualFormat.pixelFormat() == QVideoFrame::Format_RGB32)
+ am_media_type.subtype = MEDIASUBTYPE_RGB24;
+ else if (actualFormat.pixelFormat() == QVideoFrame::Format_RGB24)
+ am_media_type.subtype = MEDIASUBTYPE_RGB24;
+ else if (actualFormat.pixelFormat() == QVideoFrame::Format_YUYV)
+ am_media_type.subtype = MEDIASUBTYPE_YUY2;
+ else if (actualFormat.pixelFormat() == QVideoFrame::Format_YUV420P)
+ am_media_type.subtype = MEDIASUBTYPE_I420;
+ else if (actualFormat.pixelFormat() == QVideoFrame::Format_RGB555)
+ am_media_type.subtype = MEDIASUBTYPE_RGB555;
+ else if (actualFormat.pixelFormat() == QVideoFrame::Format_UYVY)
+ am_media_type.subtype = MEDIASUBTYPE_UYVY;
+ else {
+ qWarning()<<"unknown format? for SG";
+ return false;
+ }
+
+ am_media_type.formattype = FORMAT_VideoInfo;
+ hr = pSG->SetMediaType(&am_media_type);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to set video format on grabber";
+ return false;
+ }
+
+ pSG->GetConnectedMediaType(&StillMediaType);
+
+ CoUninitialize();
+
+ return true;
+}
+
+bool DSCameraSession::openStream()
+{
+ //Opens the stream for reading and allocates any necessary resources needed
+ //Return true if success, false otherwise
+
+ if (opened) {
+ return true;
+ }
+
+ if (!graph) {
+ graph = createFilterGraph();
+ if(!graph) {
+ qWarning()<<"failed to create filter graph in openStream";
+ return false;
+ }
+ }
+
+ CoInitialize(NULL);
+
+ HRESULT hr;
+
+ hr = pGraph->AddFilter(pCap, L"Capture Filter");
+ if (FAILED(hr)) {
+ qWarning()<<"failed to create capture filter";
+ return false;
+ }
+
+ hr = pGraph->AddFilter(pSG_Filter, L"Sample Grabber");
+ if (FAILED(hr)) {
+ qWarning()<<"failed to add sample grabber";
+ return false;
+ }
+
+ hr = pBuild->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
+ pCap, NULL, pSG_Filter);
+ if (FAILED(hr)) {
+ qWarning() << "failed to renderstream" << hr;
+ return false;
+ }
+ pSG->GetConnectedMediaType(&StillMediaType);
+ pSG_Filter->Release();
+
+ CoUninitialize();
+
+ return true;
+}
+
+void DSCameraSession::closeStream()
+{
+ // Closes the stream and internally frees any resources used
+ HRESULT hr;
+ IMediaControl* pControl = 0;
+
+ hr = pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to get stream control";
+ return;
+ }
+
+ hr = pControl->StopWhenReady();
+ if (FAILED(hr)) {
+ qWarning()<<"failed to stop";
+ pControl->Release();
+ return;
+ }
+
+ pControl->Release();
+
+ opened = false;
+ IPin *pPin = 0;
+
+ if (pCap)
+ {
+ hr = getPin(pCap, PINDIR_OUTPUT, &pPin);
+ if(FAILED(hr)) {
+ qWarning()<<"failed to disconnect capture filter";
+ return;
+ }
+ }
+
+ pGraph->Disconnect(pPin);
+ if (FAILED(hr)) {
+ qWarning()<<"failed to disconnect grabber filter";
+ return;
+ }
+
+ hr = getPin(pSG_Filter,PINDIR_INPUT,&pPin);
+ pGraph->Disconnect(pPin);
+ pGraph->RemoveFilter(pSG_Filter);
+ pGraph->RemoveFilter(pCap);
+
+ SAFE_RELEASE(pCap);
+ SAFE_RELEASE(pSG_Filter);
+ SAFE_RELEASE(pGraph);
+ SAFE_RELEASE(pBuild);
+
+ graph = false;
+}
+
+bool DSCameraSession::startStream()
+{
+ // Starts the stream, by emitting either QVideoPackets
+ // or QvideoFrames, depending on Format chosen
+ if (!graph)
+ graph = createFilterGraph();
+
+ if (!setProperties()) {
+ qWarning() << "Couldn't set properties (retrying)";
+ closeStream();
+ if (!openStream()) {
+ qWarning() << "Retry to open strean failed";
+ return false;
+ }
+ }
+
+ if (!opened) {
+ opened = openStream();
+ if (!opened) {
+ qWarning() << "failed to openStream()";
+ return false;
+ }
+ }
+
+ HRESULT hr;
+ IMediaControl* pControl = 0;
+
+ hr = pGraph->QueryInterface(IID_IMediaControl, (void**)&pControl);
+ if (FAILED(hr)) {
+ qWarning() << "failed to get stream control";
+ return false;
+ }
+
+ hr = pControl->Run();
+ pControl->Release();
+
+ if (FAILED(hr)) {
+ qWarning() << "failed to start";
+ return false;
+ }
+ active = true;
+ return true;
+}
+
+void DSCameraSession::stopStream()
+{
+ // Stops the stream from emitting packets
+ HRESULT hr;
+
+ IMediaControl* pControl = 0;
+ hr = pGraph->QueryInterface(IID_IMediaControl, (void**)&pControl);
+ if (FAILED(hr)) {
+ qWarning() << "failed to get stream control";
+ return;
+ }
+
+ hr = pControl->Stop();
+ pControl->Release();
+ if (FAILED(hr)) {
+ qWarning() << "failed to stop";
+ return;
+ }
+ active = false;
+
+ if (opened) {
+ closeStream();
+ }
+}
+
+void DSCameraSession::suspendStream()
+{
+ // Pauses the stream
+ HRESULT hr;
+
+ IMediaControl* pControl = 0;
+ hr = pGraph->QueryInterface(IID_IMediaControl, (void**)&pControl);
+ if (FAILED(hr)) {
+ qWarning() << "failed to get stream control";
+ return;
+ }
+
+ hr = pControl->Pause();
+ pControl->Release();
+ if (FAILED(hr)) {
+ qWarning() << "failed to pause";
+ return;
+ }
+
+ active = false;
+}
+
+void DSCameraSession::resumeStream()
+{
+ // Resumes a paused stream
+ startStream();
+}
+
+QT_END_NAMESPACE
+
diff --git a/plugins/multimedia/directshow/camera/dscamerasession.h b/plugins/multimedia/directshow/camera/dscamerasession.h
new file mode 100644
index 0000000000..72a0e5077e
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dscamerasession.h
@@ -0,0 +1,208 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DSCAMERASESSION_H
+#define DSCAMERASESSION_H
+
+#include <QtCore/qobject.h>
+#include <QTime>
+#include <QUrl>
+#include <QMutex>
+
+#include <qcamera.h>
+#include <QtMultimedia/qvideoframe.h>
+#include <QtMultimedia/qabstractvideosurface.h>
+#include <QtMultimedia/qvideosurfaceformat.h>
+
+#include <tchar.h>
+#include <dshow.h>
+#include <objbase.h>
+#include <initguid.h>
+#pragma comment(lib, "strmiids.lib")
+#pragma comment(lib, "ole32.lib")
+#include <windows.h>
+
+#pragma include_alias("dxtrans.h","qedit.h")
+#define __IDxtCompositor_INTERFACE_DEFINED__
+#define __IDxtAlphaSetter_INTERFACE_DEFINED__
+#define __IDxtJpeg_INTERFACE_DEFINED__
+#define __IDxtKey_INTERFACE_DEFINED__
+#include <qedit.h>
+
+struct ICaptureGraphBuilder2;
+struct ISampleGrabber;
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class DSVideoRenderer;
+class SampleGrabberCallbackPrivate;
+
+
+struct video_buffer {
+ unsigned char* buffer;
+ int length;
+ qint64 time;
+};
+
+typedef QMap<unsigned int, QList<QSize> > FormatResolutionMap;
+
+class DSCameraSession : public QObject
+{
+ Q_OBJECT
+public:
+ DSCameraSession(QObject *parent = 0);
+ ~DSCameraSession();
+
+ bool deviceReady();
+ bool pictureInProgress();
+
+ // camera controls
+
+ int framerate() const;
+ void setFrameRate(int rate);
+ int brightness() const;
+ void setBrightness(int b);
+ int contrast() const;
+ void setContrast(int c);
+ int saturation() const;
+ void setSaturation(int s);
+ int hue() const;
+ void setHue(int h);
+ int sharpness() const;
+ void setSharpness(int s);
+ int zoom() const;
+ void setZoom(int z);
+ bool backlightCompensation() const;
+ void setBacklightCompensation(bool);
+ int whitelevel() const;
+ void setWhitelevel(int w);
+ int rotation() const;
+ void setRotation(int r);
+ bool flash() const;
+ void setFlash(bool f);
+ bool autofocus() const;
+ void setAutofocus(bool f);
+
+ QSize frameSize() const;
+ void setFrameSize(const QSize& s);
+ void setDevice(const QString &device);
+ QList<QVideoFrame::PixelFormat> supportedPixelFormats();
+ QVideoFrame::PixelFormat pixelFormat() const;
+ void setPixelFormat(QVideoFrame::PixelFormat fmt);
+ QList<QSize> supportedResolutions(QVideoFrame::PixelFormat format);
+
+ // media control
+
+ bool setOutputLocation(const QUrl &sink);
+ QUrl outputLocation() const;
+ qint64 position() const;
+ int state() const;
+ void record();
+ void pause();
+ void stop();
+
+ void setSurface(QAbstractVideoSurface* surface);
+
+ int captureImage(const QString &fileName);
+
+ AM_MEDIA_TYPE StillMediaType;
+ QList<video_buffer*> frames;
+ SampleGrabberCallbackPrivate* StillCapCB;
+
+ QMutex mutex;
+
+Q_SIGNALS:
+ void stateChanged(QCamera::State);
+ void imageCaptured(int id, const QImage &preview);
+ void imageSaved(int id, const QString &fileName);
+ void readyForCaptureChanged(bool);
+
+private Q_SLOTS:
+ void captureFrame();
+
+private:
+ QVideoSurfaceFormat actualFormat;
+ QList<QVideoFrame::PixelFormat> types;
+
+ QTime timeStamp;
+ bool graph;
+ bool active;
+ bool opened;
+ bool available;
+ QCamera::State m_state;
+ QByteArray m_device;
+ QUrl m_sink;
+ DSVideoRenderer* m_output;
+ QAbstractVideoSurface* m_surface;
+ QVideoFrame::PixelFormat pixelF;
+ QSize m_windowSize;
+ FormatResolutionMap resolutions;
+
+ ICaptureGraphBuilder2* pBuild;
+ IGraphBuilder* pGraph;
+ IBaseFilter* pCap;
+ IBaseFilter* pSG_Filter;
+ ISampleGrabber *pSG;
+
+
+ QString m_snapshot;
+ int m_currentImageId;
+protected:
+ HRESULT getPin(IBaseFilter *pFilter, PIN_DIRECTION PinDir, IPin **ppPin);
+ bool createFilterGraph();
+ void updateProperties();
+ bool setProperties();
+ bool openStream();
+ void closeStream();
+ bool startStream();
+ void stopStream();
+ void suspendStream();
+ void resumeStream();
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+
+#endif
diff --git a/plugins/multimedia/directshow/camera/dsimagecapturecontrol.cpp b/plugins/multimedia/directshow/camera/dsimagecapturecontrol.cpp
new file mode 100644
index 0000000000..17654c4a53
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsimagecapturecontrol.cpp
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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/QDebug>
+
+#include "dsimagecapturecontrol.h"
+
+QT_BEGIN_NAMESPACE
+
+DSImageCaptureControl::DSImageCaptureControl(DSCameraSession *session)
+ :QCameraImageCaptureControl(session), m_session(session), m_ready(false)
+{
+ connect(m_session, SIGNAL(stateChanged(QCamera::State)), SLOT(updateState()));
+ connect(m_session, SIGNAL(imageCaptured(const int, QImage)),
+ this, SIGNAL(imageCaptured(const int, QImage)));
+ connect(m_session, SIGNAL(imageSaved(const int, const QString &)),
+ this, SIGNAL(imageSaved(const int, const QString &)));
+ connect(m_session, SIGNAL(readyForCaptureChanged(bool)),
+ this, SIGNAL(readyForCaptureChanged(bool)));
+}
+
+DSImageCaptureControl::~DSImageCaptureControl()
+{
+}
+
+bool DSImageCaptureControl::isReadyForCapture() const
+{
+ return m_ready;
+}
+
+int DSImageCaptureControl::capture(const QString &fileName)
+{
+ return m_session->captureImage(fileName);
+}
+
+void DSImageCaptureControl::updateState()
+{
+ bool ready = (m_session->state() == QCamera::ActiveState) &&
+ !m_session->pictureInProgress();
+ if(m_ready != ready)
+ emit readyForCaptureChanged(m_ready = ready);
+}
+
+QT_END_NAMESPACE
+
diff --git a/plugins/multimedia/directshow/camera/dsimagecapturecontrol.h b/plugins/multimedia/directshow/camera/dsimagecapturecontrol.h
new file mode 100644
index 0000000000..8eca7b4e70
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsimagecapturecontrol.h
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DSIMAGECAPTURECONTROL_H
+#define DSIMAGECAPTURECONTROL_H
+
+#include <qcameraimagecapturecontrol.h>
+#include "dscamerasession.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class DSImageCaptureControl : public QCameraImageCaptureControl
+{
+ Q_OBJECT
+public:
+ DSImageCaptureControl(DSCameraSession *session);
+ virtual ~DSImageCaptureControl();
+
+ bool isReadyForCapture() const;
+ int capture(const QString &fileName);
+
+ virtual QCameraImageCapture::DriveMode driveMode() const { return QCameraImageCapture::SingleImageCapture; }
+ virtual void setDriveMode(QCameraImageCapture::DriveMode mode) { }
+
+ virtual void cancelCapture() {}
+
+private slots:
+ void updateState();
+
+
+private:
+ DSCameraSession *m_session;
+ bool m_ready;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // DSCAPTURECONTROL_H
diff --git a/plugins/multimedia/directshow/camera/dsvideodevicecontrol.cpp b/plugins/multimedia/directshow/camera/dsvideodevicecontrol.cpp
new file mode 100644
index 0000000000..8c9b030003
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsvideodevicecontrol.cpp
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 <QDebug>
+#include <QFile>
+#include <QtGui/QIcon>
+
+#include "dsvideodevicecontrol.h"
+#include "dscamerasession.h"
+
+#include <tchar.h>
+#include <dshow.h>
+#include <objbase.h>
+#include <initguid.h>
+#include <Ocidl.h>
+#include <string.h>
+
+extern const CLSID CLSID_VideoInputDeviceCategory;
+
+QT_BEGIN_NAMESPACE
+
+DSVideoDeviceControl::DSVideoDeviceControl(QObject *parent)
+ : QVideoDeviceControl(parent)
+{
+ m_session = qobject_cast<DSCameraSession*>(parent);
+
+ devices.clear();
+ descriptions.clear();
+
+ CoInitialize(NULL);
+ ICreateDevEnum* pDevEnum = NULL;
+ IEnumMoniker* pEnum = NULL;
+ // Create the System device enumerator
+ HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,
+ CLSCTX_INPROC_SERVER, IID_ICreateDevEnum,
+ reinterpret_cast<void**>(&pDevEnum));
+ if(SUCCEEDED(hr)) {
+ // Create the enumerator for the video capture category
+ hr = pDevEnum->CreateClassEnumerator(
+ CLSID_VideoInputDeviceCategory, &pEnum, 0);
+ if (S_OK == hr) {
+ pEnum->Reset();
+ // go through and find all video capture devices
+ IMoniker* pMoniker = NULL;
+ while(pEnum->Next(1, &pMoniker, NULL) == S_OK) {
+ IPropertyBag *pPropBag;
+ hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag,
+ (void**)(&pPropBag));
+ if(FAILED(hr)) {
+ pMoniker->Release();
+ continue; // skip this one
+ }
+ // Find the description
+ WCHAR str[120];
+ VARIANT varName;
+ varName.vt = VT_BSTR;
+ hr = pPropBag->Read(L"FriendlyName", &varName, 0);
+ if(SUCCEEDED(hr)) {
+ wcsncpy(str, varName.bstrVal, sizeof(str)/sizeof(str[0]));
+ QString temp(QString::fromUtf16((unsigned short*)str));
+ devices.append(QString("ds:%1").arg(temp).toLocal8Bit().constData());
+ hr = pPropBag->Read(L"Description", &varName, 0);
+ wcsncpy(str, varName.bstrVal, sizeof(str)/sizeof(str[0]));
+ QString temp2(QString::fromUtf16((unsigned short*)str));
+ descriptions.append(temp2.toLocal8Bit().constData());
+ }
+ pPropBag->Release();
+ pMoniker->Release();
+ }
+ pEnum->Release();
+ }
+ pDevEnum->Release();
+ }
+ CoUninitialize();
+
+ selected = 0;
+}
+
+int DSVideoDeviceControl::deviceCount() const
+{
+ return devices.count();
+}
+
+QString DSVideoDeviceControl::deviceName(int index) const
+{
+ if(index >= 0 && index <= devices.count())
+ return devices.at(index);
+
+ return QString();
+}
+
+QString DSVideoDeviceControl::deviceDescription(int index) const
+{
+ if(index >= 0 && index <= descriptions.count())
+ return descriptions.at(index);
+
+ return QString();
+}
+
+QIcon DSVideoDeviceControl::deviceIcon(int index) const
+{
+ Q_UNUSED(index)
+
+ return QIcon();
+}
+
+int DSVideoDeviceControl::defaultDevice() const
+{
+ return 0;
+}
+
+int DSVideoDeviceControl::selectedDevice() const
+{
+ return selected;
+}
+
+void DSVideoDeviceControl::setSelectedDevice(int index)
+{
+ if(index >= 0 && index <= devices.count()) {
+ if (m_session) {
+ QString device = devices.at(index);
+ if (device.startsWith("ds:"))
+ device.remove(0,3);
+ m_session->setDevice(device);
+ }
+ selected = index;
+ }
+}
+
+QT_END_NAMESPACE
diff --git a/plugins/multimedia/directshow/camera/dsvideodevicecontrol.h b/plugins/multimedia/directshow/camera/dsvideodevicecontrol.h
new file mode 100644
index 0000000000..8391c4edaf
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsvideodevicecontrol.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DSVIDEODEVICECONTROL_H
+#define DSVIDEODEVICECONTROL_H
+
+#include <qvideodevicecontrol.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+class DSCameraSession;
+
+//QTM_USE_NAMESPACE
+
+class DSVideoDeviceControl : public QVideoDeviceControl
+{
+ Q_OBJECT
+public:
+ DSVideoDeviceControl(QObject *parent = 0);
+
+ int deviceCount() const;
+ QString deviceName(int index) const;
+ QString deviceDescription(int index) const;
+ QIcon deviceIcon(int index) const;
+ int defaultDevice() const;
+ int selectedDevice() const;
+
+public Q_SLOTS:
+ void setSelectedDevice(int index);
+
+private:
+ DSCameraSession* m_session;
+
+ QList<QString> devices;
+ QList<QString> descriptions;
+
+ int selected;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif
diff --git a/plugins/multimedia/directshow/camera/dsvideorenderer.cpp b/plugins/multimedia/directshow/camera/dsvideorenderer.cpp
new file mode 100644
index 0000000000..0fbdb15b13
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsvideorenderer.cpp
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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/qdebug.h>
+
+#include "dsvideorenderer.h"
+
+QT_BEGIN_NAMESPACE
+
+DSVideoRendererControl::DSVideoRendererControl(DSCameraSession* session, QObject *parent)
+ :QVideoRendererControl(parent),
+ m_surface(0),
+ m_session(session)
+{
+}
+
+DSVideoRendererControl::~DSVideoRendererControl()
+{
+}
+
+QAbstractVideoSurface* DSVideoRendererControl::surface() const
+{
+ return m_surface;
+}
+
+void DSVideoRendererControl::setSurface(QAbstractVideoSurface *surface)
+{
+ m_surface = surface;
+ if(m_session)
+ m_session->setSurface(m_surface);
+}
+
+QT_END_NAMESPACE
+
diff --git a/plugins/multimedia/directshow/camera/dsvideorenderer.h b/plugins/multimedia/directshow/camera/dsvideorenderer.h
new file mode 100644
index 0000000000..b941504ac9
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsvideorenderer.h
@@ -0,0 +1,77 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DSVIDEORENDERER_H
+#define DSVIDEORENDERER_H
+
+#include <qvideorenderercontrol.h>
+#include "dscamerasession.h"
+
+class CameraFormatConverter;
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+
+class DSVideoRendererControl : public QVideoRendererControl
+{
+ Q_OBJECT
+public:
+ DSVideoRendererControl(DSCameraSession* session, QObject *parent = 0);
+ ~DSVideoRendererControl();
+
+ QAbstractVideoSurface *surface() const;
+ void setSurface(QAbstractVideoSurface *surface);
+
+ void setSession(DSCameraSession* session);
+
+private:
+ QAbstractVideoSurface* m_surface;
+ DSCameraSession* m_session;
+ CameraFormatConverter* converter;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // DSVIDEORENDERER_H
diff --git a/plugins/multimedia/directshow/camera/dsvideowidgetcontrol.cpp b/plugins/multimedia/directshow/camera/dsvideowidgetcontrol.cpp
new file mode 100644
index 0000000000..8298c0275e
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsvideowidgetcontrol.cpp
@@ -0,0 +1,250 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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/qcoreevent.h>
+#include <QtCore/qtimer.h>
+
+#include "DSVideoWidgetControl.h"
+#include "dscamerasession.h"
+
+QT_BEGIN_NAMESPACE
+
+DSVideoWidgetSurface::DSVideoWidgetSurface(QLabel *pWidget, QObject *parent)
+{
+ widget = pWidget;
+ myPixmap = 0;
+}
+
+QList<QVideoFrame::PixelFormat> DSVideoWidgetSurface::supportedPixelFormats(
+ QAbstractVideoBuffer::HandleType handleType) const
+{
+ if (handleType == QAbstractVideoBuffer::NoHandle) {
+ return QList<QVideoFrame::PixelFormat>()
+ << QVideoFrame::Format_RGB32
+ << QVideoFrame::Format_RGB24;
+ } else {
+ return QList<QVideoFrame::PixelFormat>();
+ }
+}
+
+
+bool DSVideoWidgetSurface::present(const QVideoFrame &frame)
+{
+ QVideoFrame myFrame = frame;
+ myFrame.map(QAbstractVideoBuffer::ReadOnly);
+ QImage image(
+ frame.bits(),
+ frame.width(),
+ frame.height(),
+ frame.bytesPerLine(),
+ imageFormat);
+ if (image.isNull())
+ {
+ // Try to adapt
+ QImage image2(
+ frame.bits(),
+ frame.width(),
+ frame.height(),
+ frame.bytesPerLine(),
+ QImage::Format_RGB888);
+ image = image2;
+ }
+ myFrame.unmap();
+ delete myPixmap;
+ myPixmap = new QPixmap(QPixmap::fromImage(image).scaled(widget->size()));
+ widget->setPixmap(*myPixmap);
+ widget->repaint();
+ return true;
+}
+
+void DSVideoWidgetSurface::setImageFormat(QImage::Format fmt)
+{
+ imageFormat = fmt;
+}
+
+void DSVideoWidgetSurface::updateVideoRect()
+{
+}
+
+void DSVideoWidgetSurface::paint(QPainter *painter)
+{
+}
+
+
+DSVideoWidgetControl::DSVideoWidgetControl(DSCameraSession* session, QObject *parent) :
+ m_session(session), QVideoWidgetControl(parent),
+ m_widget(new QLabel()),
+ m_fullScreen(false)
+{
+ m_widget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
+ m_widget->setAlignment(Qt::AlignCenter);
+ m_widget->setAttribute(Qt::WA_NoSystemBackground, true);
+
+ surface = new DSVideoWidgetSurface(m_widget);
+
+ QPalette palette;
+ palette.setColor(QPalette::Background, Qt::black);
+ m_widget->setPalette(palette);
+ m_widget->setAutoFillBackground( true );
+
+ // Request QEvents
+ m_widget->installEventFilter(this);
+ m_windowId = m_widget->effectiveWinId();
+
+ surface->setImageFormat(QImage::Format_RGB888);
+ session->setSurface(surface);
+}
+
+DSVideoWidgetControl::~DSVideoWidgetControl()
+{
+ delete m_widget;
+}
+
+bool DSVideoWidgetControl::eventFilter(QObject *object, QEvent *e)
+{
+ if (object == m_widget) {
+ switch (e->type()) {
+ case QEvent::ParentChange:
+ case QEvent::WinIdChange:
+ case QEvent::Show:
+ m_windowId = m_widget->effectiveWinId();
+ emit widgetUpdated();
+ break;
+ case QEvent::Resize:
+ emit widgetResized(m_widget->size());
+ break;
+ case QEvent::PolishRequest:
+ m_widget->ensurePolished();
+ break;
+
+ default:
+ // Do nothing
+ break;
+ }
+ }
+ return false;
+}
+
+QWidget *DSVideoWidgetControl::videoWidget()
+{
+ return m_widget;
+}
+
+Qt::AspectRatioMode DSVideoWidgetControl::aspectRatioMode() const
+{
+ return m_aspectRatioMode;
+}
+
+void DSVideoWidgetControl::setAspectRatioMode(Qt::AspectRatioMode ratio)
+{
+ if (m_aspectRatioMode==ratio) {
+ return;
+ }
+ m_aspectRatioMode = ratio;
+
+ if (m_aspectRatioMode == Qt::KeepAspectRatio)
+ m_widget->setScaledContents(false);
+ else {
+ m_widget->setScaledContents(true);
+ }
+}
+
+bool DSVideoWidgetControl::isFullScreen() const
+{
+ return m_fullScreen;
+}
+
+void DSVideoWidgetControl::setFullScreen(bool fullScreen)
+{
+ if (m_widget && !fullScreen && m_fullScreen) {
+ m_widget->showNormal();
+ m_fullScreen = false;
+ } else if (m_widget && fullScreen) {
+ m_widget->showFullScreen();
+ m_fullScreen = true;
+ }
+
+ emit fullScreenChanged(fullScreen);
+}
+
+int DSVideoWidgetControl::brightness() const
+{
+ return 0;
+}
+
+void DSVideoWidgetControl::setBrightness(int brightness)
+{
+ Q_UNUSED(brightness);
+}
+
+int DSVideoWidgetControl::contrast() const
+{
+ return 0;
+}
+
+void DSVideoWidgetControl::setContrast(int contrast)
+{
+ Q_UNUSED(contrast);
+}
+
+int DSVideoWidgetControl::hue() const
+{
+ return 0;
+}
+
+void DSVideoWidgetControl::setHue(int hue)
+{
+ Q_UNUSED(hue);
+}
+
+int DSVideoWidgetControl::saturation() const
+{
+ return 0;
+}
+
+void DSVideoWidgetControl::setSaturation(int saturation)
+{
+ Q_UNUSED(saturation);
+}
+
+QT_END_NAMESPACE
+
+// End of file
diff --git a/plugins/multimedia/directshow/camera/dsvideowidgetcontrol.h b/plugins/multimedia/directshow/camera/dsvideowidgetcontrol.h
new file mode 100644
index 0000000000..e178274537
--- /dev/null
+++ b/plugins/multimedia/directshow/camera/dsvideowidgetcontrol.h
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 DSVIDEOWIDGETCONTROL_H
+#define DSVIDEOWIDGETCONTROL_H
+
+#include <QtCore/qobject.h>
+#include <QtGui>
+#include <QtMultimedia/qvideoframe.h>
+#include <QtMultimedia/qabstractvideosurface.h>
+#include <QtMultimedia/qvideosurfaceformat.h>
+
+#include <qvideowidgetcontrol.h>
+#include "DsCameraControl.h"
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class DSVideoWidgetSurface : public QAbstractVideoSurface
+{
+ Q_OBJECT
+ public:
+ DSVideoWidgetSurface(QLabel *pWidget, QObject *parent = 0);
+
+ QList<QVideoFrame::PixelFormat> supportedPixelFormats(
+ QAbstractVideoBuffer::HandleType handleType = QAbstractVideoBuffer::NoHandle) const;
+
+ bool present(const QVideoFrame &frame);
+
+ QRect videoRect() const { return targetRect; }
+ void updateVideoRect();
+
+ void paint(QPainter *painter);
+ void setImageFormat(QImage::Format fmt);
+
+ private:
+ QLabel *widget;
+ QImage::Format imageFormat;
+ QRect targetRect;
+ QSize imageSize;
+ QRect sourceRect;
+ QPixmap* myPixmap;
+ };
+
+class DSVideoWidgetControl : public QVideoWidgetControl
+{
+ Q_OBJECT
+
+ DSVideoWidgetSurface* surface;
+public: // Constructor & Destructor
+
+ DSVideoWidgetControl(DSCameraSession* session, QObject *parent = 0);
+ virtual ~DSVideoWidgetControl();
+
+public: // QVideoWidgetControl
+
+ QWidget *videoWidget();
+
+ // Aspect Ratio
+ Qt::AspectRatioMode aspectRatioMode() const;
+ void setAspectRatioMode(Qt::AspectRatioMode ratio);
+
+ // Full Screen
+ bool isFullScreen() const;
+ void setFullScreen(bool fullScreen);
+
+ // Brightness
+ int brightness() const;
+ void setBrightness(int brightness);
+
+ // Contrast
+ int contrast() const;
+ void setContrast(int contrast);
+
+ // Hue
+ int hue() const;
+ void setHue(int hue);
+
+ // Saturation
+ int saturation() const;
+ void setSaturation(int saturation);
+
+public: // Internal
+
+ bool eventFilter(QObject *object, QEvent *event);
+
+/*
+Q_SIGNALS: // QVideoWidgetControl
+
+ void fullScreenChanged(bool fullScreen);
+ void brightnessChanged(int brightness);
+ void contrastChanged(int contrast);
+ void hueChanged(int hue);
+ void saturationChanged(int saturation);
+*/
+
+Q_SIGNALS: // Internal Signals
+
+ void widgetResized(QSize size);
+ void widgetUpdated();
+
+private: // Data
+
+ DSCameraSession* m_session;
+ QLabel *m_widget;
+ WId m_windowId;
+ Qt::AspectRatioMode m_aspectRatioMode;
+ bool m_fullScreen;
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // DSVideoWidgetControl_H
diff --git a/plugins/multimedia/directshow/directshow.pro b/plugins/multimedia/directshow/directshow.pro
index dc6ee9e87d..b86919470b 100644
--- a/plugins/multimedia/directshow/directshow.pro
+++ b/plugins/multimedia/directshow/directshow.pro
@@ -21,3 +21,4 @@ SOURCES += dsserviceplugin.cpp
!contains(wmsdk_enabled, yes): DEFINES += QT_NO_WMSDK
include (player/player.pri)
+include (camera/camera.pri)
diff --git a/plugins/multimedia/directshow/dsserviceplugin.cpp b/plugins/multimedia/directshow/dsserviceplugin.cpp
index d5fbf9c7ea..9c0a214491 100644
--- a/plugins/multimedia/directshow/dsserviceplugin.cpp
+++ b/plugins/multimedia/directshow/dsserviceplugin.cpp
@@ -45,6 +45,7 @@
#include "dsserviceplugin.h"
+
#ifdef QMEDIA_DIRECTSHOW_CAMERA
#include "dscameraservice.h"
#endif
@@ -57,6 +58,10 @@
#ifdef QMEDIA_DIRECTSHOW_CAMERA
+
+extern const CLSID CLSID_VideoInputDeviceCategory;
+
+
#ifndef _STRSAFE_H_INCLUDED_
#include <tchar.h>
#endif
@@ -66,8 +71,11 @@
#pragma comment(lib, "strmiids.lib")
#pragma comment(lib, "ole32.lib")
#include <windows.h>
+#include <ocidl.h>
#endif
+QT_USE_NAMESPACE
+
QStringList DSServicePlugin::keys() const
{
return QStringList()
@@ -91,7 +99,7 @@ QMediaService* DSServicePlugin::create(QString const& key)
return new DirectShowPlayerService;
#endif
- //qDebug() << "unsupported key:" << key;
+ qDebug() << "unsupported key:" << key;
return 0;
}
@@ -139,11 +147,12 @@ QString DSServicePlugin::deviceDescription(const QByteArray &service, const QByt
}
#ifdef QMEDIA_DIRECTSHOW_CAMERA
+
void DSServicePlugin::updateDevices() const
{
m_cameraDevices.clear();
m_cameraDescriptions.clear();
-
+ BOOL bFound = TRUE;
CoInitialize(NULL);
ICreateDevEnum* pDevEnum = NULL;
IEnumMoniker* pEnum = NULL;
@@ -155,36 +164,46 @@ void DSServicePlugin::updateDevices() const
// Create the enumerator for the video capture category
hr = pDevEnum->CreateClassEnumerator(
CLSID_VideoInputDeviceCategory, &pEnum, 0);
- pEnum->Reset();
- // go through and find all video capture devices
- IMoniker* pMoniker = NULL;
- while(pEnum->Next(1, &pMoniker, NULL) == S_OK) {
- IPropertyBag *pPropBag;
- hr = pMoniker->BindToStorage(0,0,IID_IPropertyBag,
- (void**)(&pPropBag));
- if(FAILED(hr)) {
- pMoniker->Release();
- continue; // skip this one
- }
- // Find the description
- WCHAR str[120];
- VARIANT varName;
- varName.vt = VT_BSTR;
- hr = pPropBag->Read(L"FriendlyName", &varName, 0);
- if(SUCCEEDED(hr)) {
- StringCchCopyW(str,sizeof(str)/sizeof(str[0]),varName.bstrVal);
- QString temp(QString::fromUtf16((unsigned short*)str));
- m_cameraDevices.append(QString("ds:%1").arg(temp).toLocal8Bit().constData());
- hr = pPropBag->Read(L"Description", &varName, 0);
- StringCchCopyW(str,sizeof(str)/sizeof(str[0]),varName.bstrVal);
- QString temp2(QString::fromUtf16((unsigned short*)str));
- m_cameraDescriptions.append(temp2);
- }
- pPropBag->Release();
- pMoniker->Release();
- }
+ if (S_OK == hr) {
+ pEnum->Reset();
+ // go through and find all video capture devices
+ IMoniker* pMoniker = NULL;
+ while(pEnum->Next(1, &pMoniker, NULL) == S_OK) {
+ IPropertyBag *pPropBag;
+ hr = pMoniker->BindToStorage(0,0,IID_IPropertyBag,
+ (void**)(&pPropBag));
+ if(FAILED(hr)) {
+ pMoniker->Release();
+ continue; // skip this one
+ }
+ bFound = TRUE;
+ // Find the description
+ WCHAR str[120];
+ VARIANT varName;
+ varName.vt = VT_BSTR;
+ hr = pPropBag->Read(L"FriendlyName", &varName, 0);
+ if(SUCCEEDED(hr)) {
+ wcsncpy(str, varName.bstrVal, sizeof(str)/sizeof(str[0]));
+ QString temp(QString::fromUtf16((unsigned short*)str));
+ m_cameraDevices.append(QString("ds:%1").arg(temp).toLocal8Bit().constData());
+ hr = pPropBag->Read(L"Description", &varName, 0);
+ wcsncpy(str, varName.bstrVal, sizeof(str)/sizeof(str[0]));
+ QString temp2(QString::fromUtf16((unsigned short*)str));
+ m_cameraDescriptions.append(temp2);
+ } else {
+ qWarning() << "No friendly name";
+ }
+ pPropBag->Release();
+ pMoniker->Release();
+ }
+ pEnum->Release();
+ }
+ pDevEnum->Release();
}
CoUninitialize();
+ if (!bFound) {
+ qWarning() << "No camera devices found";
+ }
}
#endif
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
index 56b9e84bc5..8c5a31b627 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
+++ b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.cpp
@@ -87,6 +87,8 @@ CameraBinControl::CameraBinControl(CameraBinSession *session)
SLOT(reloadLater()));
connect(m_session, SIGNAL(readyChanged(bool)),
SLOT(reloadLater()));
+ connect(m_session, SIGNAL(error(int,QString)),
+ SLOT(handleCameraError(int,QString)));
m_resourcePolicy = new CamerabinResourcePolicy(this);
connect(m_resourcePolicy, SIGNAL(resourcesGranted()),
@@ -121,6 +123,7 @@ void CameraBinControl::setCaptureMode(QCamera::CaptureMode mode)
CamerabinResourcePolicy::ImageCaptureResources :
CamerabinResourcePolicy::VideoCaptureResources);
}
+ emit captureModeChanged(mode);
}
}
@@ -293,6 +296,12 @@ void CameraBinControl::handleBusyChanged(bool busy)
}
}
+void CameraBinControl::handleCameraError(int errorCode, const QString &errorString)
+{
+ emit error(errorCode, errorString);
+ setState(QCamera::UnloadedState);
+}
+
void CameraBinControl::delayedReload()
{
#ifdef CAMEABIN_DEBUG
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.h b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.h
index 5e45d7a4df..bab17e5a49 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabincontrol.h
+++ b/plugins/multimedia/gstreamer/camerabin/camerabincontrol.h
@@ -82,6 +82,7 @@ private slots:
void handleResourcesLost();
void handleBusyChanged(bool);
+ void handleCameraError(int error, const QString &errorString);
private:
void updateSupportedResolutions(const QString &device);
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabinimagecapture.cpp b/plugins/multimedia/gstreamer/camerabin/camerabinimagecapture.cpp
index 18a6b664b9..3df1105bc3 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabinimagecapture.cpp
+++ b/plugins/multimedia/gstreamer/camerabin/camerabinimagecapture.cpp
@@ -104,6 +104,12 @@ bool CameraBinImageCapture::isReadyForCapture() const
int CameraBinImageCapture::capture(const QString &fileName)
{
m_requestId++;
+
+ if (!m_ready) {
+ emit error(m_requestId, QCameraImageCapture::NotReadyError, tr("Camera not ready"));
+ return m_requestId;
+ }
+
#ifdef DEBUG_CAPTURE
qDebug() << Q_FUNC_INFO << m_requestId << fileName;
#endif
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabinrecorder.cpp b/plugins/multimedia/gstreamer/camerabin/camerabinrecorder.cpp
index a29831129c..0cd8a5aaf9 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabinrecorder.cpp
+++ b/plugins/multimedia/gstreamer/camerabin/camerabinrecorder.cpp
@@ -51,7 +51,6 @@ CameraBinRecorder::CameraBinRecorder(CameraBinSession *session)
m_state(QMediaRecorder::StoppedState)
{
connect(m_session, SIGNAL(stateChanged(QCamera::State)), SLOT(updateState()));
- connect(m_session, SIGNAL(error(int,QString)), SIGNAL(error(int,QString)));
connect(m_session, SIGNAL(durationChanged(qint64)), SIGNAL(durationChanged(qint64)));
connect(m_session, SIGNAL(mutedChanged(bool)), this, SIGNAL(mutedChanged(bool)));
}
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.cpp b/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.cpp
index 0d1357ad16..db9218c4a2 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.cpp
+++ b/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.cpp
@@ -47,6 +47,7 @@
//#define DEBUG_RESOURCE_POLICY
#include <QtCore/qdebug.h>
+#include <QtCore/qset.h>
#ifdef HAVE_RESOURCE_POLICY
#include <policy/resource.h>
@@ -56,57 +57,39 @@
CamerabinResourcePolicy::CamerabinResourcePolicy(QObject *parent) :
QObject(parent),
- m_resourceSet(NoResources)
+ m_resourceSet(NoResources),
+ m_releasingResources(false)
{
#ifdef HAVE_RESOURCE_POLICY
- ResourcePolicy::ResourceSet *resourceSet;
-
//loaded resource set is also kept requested for image and video capture sets
- resourceSet = new ResourcePolicy::ResourceSet("camera", this);
-
- resourceSet->addResource(ResourcePolicy::VideoRecorderType);
- ResourcePolicy::LensCoverResource *lensCoverResource = new ResourcePolicy::LensCoverResource;
- lensCoverResource->setOptional(true);
- resourceSet->addResourceObject(lensCoverResource);
- resourceSet->update();
-
- m_resources.append(resourceSet);
- m_resourceStatuses.append(Initial);
-
- //still image resources:
- resourceSet = new ResourcePolicy::ResourceSet("camera", this);
- resourceSet->addResource(ResourcePolicy::VideoPlaybackType);
- resourceSet->addResource(ResourcePolicy::LedsType);
- resourceSet->update();
-
- m_resources.append(resourceSet);
- m_resourceStatuses.append(Initial);
-
- //video capture resources:
- resourceSet = new ResourcePolicy::ResourceSet("camera", this);
-
- resourceSet->addResource(ResourcePolicy::VideoPlaybackType);
- resourceSet->addResource(ResourcePolicy::AudioPlaybackType);
- resourceSet->addResource(ResourcePolicy::AudioRecorderType);
- resourceSet->addResource(ResourcePolicy::LedsType);
- resourceSet->update();
-
- m_resources.append(resourceSet);
- m_resourceStatuses.append(Initial);
-
- foreach (ResourcePolicy::ResourceSet *resource, m_resources) {
- connect(resource, SIGNAL(resourcesGranted(const QList<ResourcePolicy::ResourceType>)),
- this, SLOT(handleResourcesGranted()));
- connect(resource, SIGNAL(resourcesDenied()),
- this, SLOT(handleResourcesDenied()));
- connect(resource, SIGNAL(lostResources()),
- this, SLOT(handleResourcesLost()));
- }
+ m_resource = new ResourcePolicy::ResourceSet("camera");
+ m_resource->setAlwaysReply();
+ m_resource->initAndConnect();
+
+ connect(m_resource, SIGNAL(resourcesGranted(const QList<ResourcePolicy::ResourceType>)),
+ SIGNAL(resourcesGranted()));
+ connect(m_resource, SIGNAL(resourcesDenied()), SIGNAL(resourcesDenied()));
+ connect(m_resource, SIGNAL(lostResources()), SIGNAL(resourcesLost()));
+ connect(m_resource, SIGNAL(resourcesReleased()), SLOT(handleResourcesReleased()));
#endif
}
CamerabinResourcePolicy::~CamerabinResourcePolicy()
{
+#ifdef HAVE_RESOURCE_POLICY
+ //ensure the resources are released
+ if (m_resourceSet != NoResources)
+ setResourceSet(NoResources);
+
+ //don't delete the resource set until resources are released
+ if (m_releasingResources) {
+ m_resource->connect(m_resource, SIGNAL(resourcesReleased()),
+ SLOT(deleteLater()));
+ } else {
+ delete m_resource;
+ m_resource = 0;
+ }
+#endif
}
CamerabinResourcePolicy::ResourceSet CamerabinResourcePolicy::resourceSet() const
@@ -116,8 +99,7 @@ CamerabinResourcePolicy::ResourceSet CamerabinResourcePolicy::resourceSet() cons
void CamerabinResourcePolicy::setResourceSet(CamerabinResourcePolicy::ResourceSet set)
{
- if (m_resourceSet == set)
- return;
+ CamerabinResourcePolicy::ResourceSet oldSet = m_resourceSet;
m_resourceSet = set;
#ifdef DEBUG_RESOURCE_POLICY
@@ -125,108 +107,82 @@ void CamerabinResourcePolicy::setResourceSet(CamerabinResourcePolicy::ResourceSe
#endif
#ifdef HAVE_RESOURCE_POLICY
- m_requestedSets.clear();
+ QSet<ResourcePolicy::ResourceType> requestedTypes;
+
switch (set) {
case NoResources:
break;
case LoadedResources:
- m_requestedSets << LoadedResourcesSet;
+ requestedTypes << ResourcePolicy::LensCoverType //to detect lens cover is opened/closed
+ << ResourcePolicy::VideoRecorderType //to open camera device
+ << ResourcePolicy::SnapButtonType; //to detect capture button events
break;
case ImageCaptureResources:
- m_requestedSets << LoadedResourcesSet << ImageResourcesSet;
+ requestedTypes << ResourcePolicy::LensCoverType
+ << ResourcePolicy::VideoPlaybackType
+ << ResourcePolicy::VideoRecorderType
+ << ResourcePolicy::AudioPlaybackType
+ << ResourcePolicy::ScaleButtonType
+ << ResourcePolicy::LedsType
+ << ResourcePolicy::SnapButtonType;
break;
case VideoCaptureResources:
- m_requestedSets << LoadedResourcesSet << VideoResouresSet;
+ requestedTypes << ResourcePolicy::LensCoverType
+ << ResourcePolicy::VideoPlaybackType
+ << ResourcePolicy::VideoRecorderType
+ << ResourcePolicy::AudioPlaybackType
+ << ResourcePolicy::AudioRecorderType
+ << ResourcePolicy::ScaleButtonType
+ << ResourcePolicy::LedsType
+ << ResourcePolicy::SnapButtonType;
break;
}
- //release the resource we don't need any more
- for (int i=0; i<m_resources.count(); i++) {
- if (!m_requestedSets.contains(i) && m_resourceStatuses[i] != Initial) {
- m_resourceStatuses[i] = Initial;
- m_resources[i]->release();
- }
- }
+ QSet<ResourcePolicy::ResourceType> currentTypes;
+ foreach (ResourcePolicy::Resource *resource, m_resource->resources())
+ currentTypes << resource->type();
- //and acquire ones we need
- foreach (int i, m_requestedSets) {
- if (m_resourceStatuses[i] == Initial) {
- m_resourceStatuses[i] = RequestedResource;
- m_resources[i]->acquire();
- }
- }
-#endif
-}
+ foreach (ResourcePolicy::ResourceType resourceType, currentTypes - requestedTypes)
+ m_resource->deleteResource(resourceType);
-bool CamerabinResourcePolicy::isResourcesGranted() const
-{
- foreach (int i, m_requestedSets) {
- if (m_resourceStatuses[i] != GrantedResource)
- return false;
+ foreach (ResourcePolicy::ResourceType resourceType, requestedTypes - currentTypes) {
+ if (resourceType == ResourcePolicy::LensCoverType) {
+ ResourcePolicy::LensCoverResource *lensCoverResource = new ResourcePolicy::LensCoverResource;
+ lensCoverResource->setOptional(true);
+ m_resource->addResourceObject(lensCoverResource);
+ } else {
+ m_resource->addResource(resourceType);
+ }
}
- return true;
-}
-
-
-
-void CamerabinResourcePolicy::handleResourcesGranted()
-{
-#ifdef HAVE_RESOURCE_POLICY
- for (int i=0; i<m_resources.count(); i++) {
- if (sender() == m_resources[i]) {
- m_resourceStatuses[i] = GrantedResource;
-
-#ifdef DEBUG_RESOURCE_POLICY
- qDebug() << Q_FUNC_INFO << "Resource granted" << i;
-#endif
- if (m_requestedSets.contains(i)) {
- if (isResourcesGranted())
- emit resourcesGranted();
- }
- break;
+ m_resource->update();
+ if (set != NoResources) {
+ m_resource->acquire();
+ } else {
+ if (oldSet != NoResources) {
+ m_releasingResources = true;
+ m_resource->release();
}
}
#endif
}
-void CamerabinResourcePolicy::handleResourcesDenied()
+bool CamerabinResourcePolicy::isResourcesGranted() const
{
#ifdef HAVE_RESOURCE_POLICY
- for (int i=0; i<m_resources.count(); i++) {
- if (sender() == m_resources[i]) {
- bool wasGranted = isResourcesGranted();
- m_resourceStatuses[i] = RequestedResource;
-
-#ifdef DEBUG_RESOURCE_POLICY
- qDebug() << Q_FUNC_INFO << "Resource denied" << i << "was granted:" << wasGranted;
-#endif
- if (wasGranted && m_requestedSets.contains(i))
- emit resourcesDenied();
-
- break;
- }
- }
+ foreach (ResourcePolicy::Resource *resource, m_resource->resources())
+ if (!resource->isOptional() && !resource->isGranted())
+ return false;
#endif
+ return true;
}
-void CamerabinResourcePolicy::handleResourcesLost()
+void CamerabinResourcePolicy::handleResourcesReleased()
{
#ifdef HAVE_RESOURCE_POLICY
- for (int i=0; i<m_resources.count(); i++) {
- if (sender() == m_resources[i]) {
- bool wasGranted = isResourcesGranted();
- m_resourceStatuses[i] = RequestedResource;
-
#ifdef DEBUG_RESOURCE_POLICY
- qDebug() << Q_FUNC_INFO << "Resource lost" << i << "was granted:" << wasGranted;
+ qDebug() << Q_FUNC_INFO;
#endif
-
- if (wasGranted && m_requestedSets.contains(i))
- emit resourcesLost();
-
- break;
- }
- }
+ m_releasingResources = false;
#endif
}
diff --git a/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.h b/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.h
index 4d30da7cc1..cd2d846881 100644
--- a/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.h
+++ b/plugins/multimedia/gstreamer/camerabin/camerabinresourcepolicy.h
@@ -43,7 +43,6 @@
#define CAMERARESOURCEPOLICY_H
#include <QtCore/qobject.h>
-#include <QtCore/qlist.h>
namespace ResourcePolicy {
class ResourceSet;
@@ -74,28 +73,12 @@ Q_SIGNALS:
void resourcesLost();
private Q_SLOTS:
- void handleResourcesGranted();
- void handleResourcesDenied();
- void handleResourcesLost();
+ void handleResourcesReleased();
private:
ResourceSet m_resourceSet;
-
- enum ResourceStatus {
- Initial = 0,
- RequestedResource,
- GrantedResource
- };
-
- enum {
- LoadedResourcesSet = 0,
- ImageResourcesSet,
- VideoResouresSet
- };
-
- QList<ResourcePolicy::ResourceSet *> m_resources;
- QList<ResourceStatus> m_resourceStatuses;
- QList<int> m_requestedSets;
+ ResourcePolicy::ResourceSet *m_resource;
+ bool m_releasingResources;
};
#endif
diff --git a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
index 6dec6a5348..7c27618ef7 100644
--- a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
+++ b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
@@ -56,13 +56,14 @@
#include <fcntl.h>
#include <unistd.h>
+//#define DEBUG_PLAYBIN
+
QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *session, QObject *parent)
: QMediaPlayerControl(parent)
, m_ownStream(false)
, m_session(session)
, m_state(QMediaPlayer::StoppedState)
, m_mediaStatus(QMediaPlayer::NoMedia)
- , m_blockStatusChangedSignal(false)
, m_bufferProgress(-1)
, m_seekToStartPending(false)
, m_pendingSeekPosition(-1)
@@ -86,7 +87,7 @@ QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *sessio
connect(m_session, SIGNAL(volumeChanged(int)),
this, SIGNAL(volumeChanged(int)));
connect(m_session, SIGNAL(stateChanged(QMediaPlayer::State)),
- this, SLOT(updateState(QMediaPlayer::State)));
+ this, SLOT(updateSessionState(QMediaPlayer::State)));
connect(m_session,SIGNAL(bufferingProgressChanged(int)),
this, SLOT(setBufferProgress(int)));
connect(m_session, SIGNAL(playbackFinished()),
@@ -166,12 +167,7 @@ bool QGstreamerPlayerControl::isSeekable() const
QMediaTimeRange QGstreamerPlayerControl::availablePlaybackRanges() const
{
- QMediaTimeRange ranges;
-
- if (m_session->isSeekable())
- ranges.addInterval(0, m_session->duration());
-
- return ranges;
+ return m_session->availablePlaybackRanges();
}
qreal QGstreamerPlayerControl::playbackRate() const
@@ -186,10 +182,15 @@ void QGstreamerPlayerControl::setPlaybackRate(qreal rate)
void QGstreamerPlayerControl::setPosition(qint64 pos)
{
+#ifdef DEBUG_PLAYBIN
+ qDebug() << Q_FUNC_INFO << pos/1000.0;
+#endif
+
+ pushState();
+
if (m_mediaStatus == QMediaPlayer::EndOfMedia) {
m_mediaStatus = QMediaPlayer::LoadedMedia;
m_seekToStartPending = true;
- emit mediaStatusChanged(m_mediaStatus);
}
if (m_session->isSeekable() && m_session->seek(pos)) {
@@ -198,15 +199,25 @@ void QGstreamerPlayerControl::setPosition(qint64 pos)
} else {
m_pendingSeekPosition = pos;
}
+
+ popAndNotifyState();
}
void QGstreamerPlayerControl::play()
{
+#ifdef DEBUG_PLAYBIN
+ qDebug() << Q_FUNC_INFO;
+#endif
+
playOrPause(QMediaPlayer::PlayingState);
}
void QGstreamerPlayerControl::pause()
{
+#ifdef DEBUG_PLAYBIN
+ qDebug() << Q_FUNC_INFO;
+#endif
+
playOrPause(QMediaPlayer::PausedState);
}
@@ -215,8 +226,7 @@ void QGstreamerPlayerControl::playOrPause(QMediaPlayer::State newState)
if (m_mediaStatus == QMediaPlayer::NoMedia)
return;
- QMediaPlayer::State oldState = m_state;
- QMediaPlayer::MediaStatus oldMediaStatus = m_mediaStatus;
+ pushState();
if (m_mediaStatus == QMediaPlayer::EndOfMedia) {
m_mediaStatus = QMediaPlayer::BufferedMedia;
@@ -260,29 +270,31 @@ void QGstreamerPlayerControl::playOrPause(QMediaPlayer::State newState)
m_mediaStatus = QMediaPlayer::BufferingMedia;
}
- if (m_state != oldState)
- emit stateChanged(m_state);
- if (m_mediaStatus != oldMediaStatus)
- emit mediaStatusChanged(m_mediaStatus);
+ popAndNotifyState();
emit positionChanged(position());
}
void QGstreamerPlayerControl::stop()
{
+#ifdef DEBUG_PLAYBIN
+ qDebug() << Q_FUNC_INFO;
+#endif
+
+ pushState();
+
if (m_state != QMediaPlayer::StoppedState) {
m_state = QMediaPlayer::StoppedState;
if (m_resources->isGranted())
m_session->pause();
- updateState(m_session->state());
-
if (m_mediaStatus != QMediaPlayer::EndOfMedia) {
m_seekToStartPending = true;
emit positionChanged(position());
}
- emit stateChanged(m_state);
}
+
+ popAndNotifyState();
}
void QGstreamerPlayerControl::setVolume(int volume)
@@ -307,7 +319,12 @@ const QIODevice *QGstreamerPlayerControl::mediaStream() const
void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice *stream)
{
- QMediaPlayer::State oldState = m_state;
+#ifdef DEBUG_PLAYBIN
+ qDebug() << Q_FUNC_INFO;
+#endif
+
+ pushState();
+
m_state = QMediaPlayer::StoppedState;
QMediaContent oldMedia = m_currentResource;
m_pendingSeekPosition = -1;
@@ -320,15 +337,11 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice *
m_currentResource = content;
m_stream = stream;
- QMediaPlayer::MediaStatus oldStatus = m_mediaStatus;
m_state = QMediaPlayer::StoppedState;
m_mediaStatus = QMediaPlayer::LoadingMedia;
if (m_currentResource != oldMedia)
emit mediaChanged(m_currentResource);
- if (m_state != oldState && !m_blockStatusChangedSignal)
- emit stateChanged(m_state);
- if (m_mediaStatus != oldStatus && !m_blockStatusChangedSignal)
- emit mediaStatusChanged(m_mediaStatus);
+ popAndNotifyState();
return;
}
} else {
@@ -367,11 +380,9 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice *
m_currentResource = content;
emit mediaChanged(m_currentResource);
emit error(QMediaPlayer::FormatError, tr("Attempting to play invalid Qt resource"));
- emit mediaStatusChanged(m_mediaStatus);
- if (m_state != oldState)
- emit stateChanged(m_state);
if (m_state != QMediaPlayer::PlayingState)
m_resources->release();
+ popAndNotifyState();
return;
}
m_ownStream = true;
@@ -404,12 +415,10 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice *
m_session->loadFromStream(request, m_stream);
} else {
m_mediaStatus = QMediaPlayer::InvalidMedia;
- emit mediaStatusChanged(m_mediaStatus);
- if (m_state != oldState)
- emit stateChanged(m_state);
emit error(QMediaPlayer::FormatError, tr("Attempting to play invalid user stream"));
if (m_state != QMediaPlayer::PlayingState)
m_resources->release();
+ popAndNotifyState();
return;
}
} else
@@ -429,25 +438,22 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice *
#else
if (!request.url().isEmpty()) {
#endif
- if (m_mediaStatus != QMediaPlayer::LoadingMedia)
- emit mediaStatusChanged(m_mediaStatus = QMediaPlayer::LoadingMedia);
+ m_mediaStatus = QMediaPlayer::LoadingMedia;
m_session->pause();
} else {
- if (m_mediaStatus != QMediaPlayer::NoMedia)
- emit mediaStatusChanged(m_mediaStatus = QMediaPlayer::NoMedia);
+ m_mediaStatus = QMediaPlayer::NoMedia;
setBufferProgress(0);
}
if (m_currentResource != oldMedia)
emit mediaChanged(m_currentResource);
- if (m_state != oldState && !m_blockStatusChangedSignal)
- emit stateChanged(m_state);
-
emit positionChanged(position());
if (content.isNull() && !stream)
m_resources->release();
+
+ popAndNotifyState();
}
void QGstreamerPlayerControl::setVideoOutput(QObject *output)
@@ -465,14 +471,25 @@ bool QGstreamerPlayerControl::isVideoAvailable() const
return m_session->isVideoAvailable();
}
-void QGstreamerPlayerControl::updateState(QMediaPlayer::State state)
+void QGstreamerPlayerControl::updateSessionState(QMediaPlayer::State state)
+{
+ pushState();
+
+ if (state == QMediaPlayer::StoppedState)
+ m_state = QMediaPlayer::StoppedState;
+
+ updateMediaStatus();
+
+ popAndNotifyState();
+}
+
+void QGstreamerPlayerControl::updateMediaStatus()
{
+ pushState();
QMediaPlayer::MediaStatus oldStatus = m_mediaStatus;
- QMediaPlayer::State oldState = m_state;
- switch (state) {
+ switch (m_session->state()) {
case QMediaPlayer::StoppedState:
- m_state = QMediaPlayer::StoppedState;
if (m_currentResource.isNull())
m_mediaStatus = QMediaPlayer::NoMedia;
else
@@ -486,6 +503,8 @@ void QGstreamerPlayerControl::updateState(QMediaPlayer::State state)
} else {
if (m_bufferProgress == -1 || m_bufferProgress == 100)
m_mediaStatus = QMediaPlayer::BufferedMedia;
+ else
+ m_mediaStatus = QMediaPlayer::StalledMedia;
}
break;
}
@@ -497,18 +516,16 @@ void QGstreamerPlayerControl::updateState(QMediaPlayer::State state)
if (oldStatus == QMediaPlayer::EndOfMedia)
m_mediaStatus = QMediaPlayer::EndOfMedia;
- if (m_state != oldState && !m_blockStatusChangedSignal)
- emit stateChanged(m_state);
- if (m_mediaStatus != oldStatus && !m_blockStatusChangedSignal)
- emit mediaStatusChanged(m_mediaStatus);
+ popAndNotifyState();
}
void QGstreamerPlayerControl::processEOS()
{
+ pushState();
m_mediaStatus = QMediaPlayer::EndOfMedia;
emit positionChanged(position());
stop();
- emit mediaStatusChanged(m_mediaStatus);
+ popAndNotifyState();
}
void QGstreamerPlayerControl::setBufferProgress(int progress)
@@ -516,31 +533,22 @@ void QGstreamerPlayerControl::setBufferProgress(int progress)
if (m_bufferProgress == progress || m_mediaStatus == QMediaPlayer::NoMedia)
return;
- QMediaPlayer::MediaStatus oldStatus = m_mediaStatus;
-
+#ifdef DEBUG_PLAYBIN
+ qDebug() << Q_FUNC_INFO << progress;
+#endif
m_bufferProgress = progress;
- if (m_state == QMediaPlayer::StoppedState) {
- m_mediaStatus = QMediaPlayer::LoadedMedia;
- } else {
- if (m_bufferProgress < 30) {
- m_mediaStatus = QMediaPlayer::StalledMedia;
- if (m_session->state() == QMediaPlayer::PlayingState)
- m_session->pause();
- } else if (m_bufferProgress > 90) {
- m_mediaStatus = QMediaPlayer::BufferingMedia;
- if (m_state == QMediaPlayer::PlayingState &&
- m_resources->isGranted() &&
+ if (m_resources->isGranted()) {
+ if (m_state == QMediaPlayer::PlayingState &&
+ m_bufferProgress == 100 &&
m_session->state() != QMediaPlayer::PlayingState)
- m_session->play();
- }
+ m_session->play();
- if (m_bufferProgress == 100)
- m_mediaStatus = QMediaPlayer::BufferedMedia;
+ if (m_bufferProgress < 100 && m_session->state() == QMediaPlayer::PlayingState)
+ m_session->pause();
}
- if (m_mediaStatus != oldStatus)
- emit mediaStatusChanged(m_mediaStatus);
+ updateMediaStatus();
emit bufferStatusChanged(m_bufferProgress);
}
@@ -645,30 +653,21 @@ void QGstreamerPlayerControl::applyPendingSeek(bool isSeekable)
void QGstreamerPlayerControl::handleInvalidMedia()
{
- bool emitMediaStateChanged = false;
- if (m_mediaStatus != QMediaPlayer::InvalidMedia) {
- m_mediaStatus = QMediaPlayer::InvalidMedia;
- emitMediaStateChanged = true;
- }
- if (m_state != m_session->state()) {
- m_state = m_session->state();
- emit stateChanged(m_state);
- }
- if (emitMediaStateChanged)
- emit mediaStatusChanged(m_mediaStatus);
+ pushState();
+ m_mediaStatus = QMediaPlayer::InvalidMedia;
+ m_state = QMediaPlayer::StoppedState;
+ popAndNotifyState();
}
void QGstreamerPlayerControl::handleResourcesGranted()
{
+ pushState();
+
QMediaPlayer::State state = m_state;
//preserve m_pendingSeekPosition, it's reset on setMedia
qint64 pos = m_pendingSeekPosition;
-
- //don't emit state changed to stopped at this stage
- m_blockStatusChangedSignal = true;
setMedia(m_currentResource, m_stream);
- m_blockStatusChangedSignal = false;
if (pos != -1)
setPosition(pos);
@@ -676,7 +675,9 @@ void QGstreamerPlayerControl::handleResourcesGranted()
if (state != QMediaPlayer::StoppedState)
playOrPause(state);
else
- updateState(m_session->state());
+ updateMediaStatus();
+
+ popAndNotifyState();
}
void QGstreamerPlayerControl::handleResourcesLost()
@@ -684,22 +685,55 @@ void QGstreamerPlayerControl::handleResourcesLost()
//on resource lost the pipeline should be stopped
//player status is changed to paused
+ pushState();
QMediaPlayer::State oldState = m_state;
- QMediaPlayer::MediaStatus oldMediaStatus = m_mediaStatus;
- qint64 pos = m_session->position();
- m_blockStatusChangedSignal = true;
+ qint64 pos = m_session->position();
m_session->stop();
- m_blockStatusChangedSignal = false;
-
m_pendingSeekPosition = pos;
if (oldState != QMediaPlayer::StoppedState )
m_state = QMediaPlayer::PausedState;
- if (m_state != oldState)
- emit stateChanged(m_state);
+ popAndNotifyState();
+}
- if (m_mediaStatus != oldMediaStatus)
- emit mediaStatusChanged(m_mediaStatus);
+bool QGstreamerPlayerControl::isMediaDownloadEnabled() const
+{
+ return m_session->property("mediaDownloadEnabled").toBool();
+}
+
+void QGstreamerPlayerControl::setMediaDownloadEnabled(bool enabled)
+{
+ m_session->setProperty("mediaDownloadEnabled", enabled);
+}
+
+void QGstreamerPlayerControl::pushState()
+{
+ m_stateStack.push(m_state);
+ m_mediaStatusStack.push(m_mediaStatus);
+}
+
+void QGstreamerPlayerControl::popAndNotifyState()
+{
+ Q_ASSERT(!m_stateStack.isEmpty());
+
+ QMediaPlayer::State oldState = m_stateStack.pop();
+ QMediaPlayer::MediaStatus oldMediaStatus = m_mediaStatusStack.pop();
+
+ if (m_stateStack.isEmpty()) {
+ if (m_state != oldState) {
+#ifdef DEBUG_PLAYBIN
+ qDebug() << "State changed:" << m_state;
+#endif
+ emit stateChanged(m_state);
+ }
+
+ if (m_mediaStatus != oldMediaStatus) {
+#ifdef DEBUG_PLAYBIN
+ qDebug() << "Media status changed:" << m_mediaStatus;
+#endif
+ emit mediaStatusChanged(m_mediaStatus);
+ }
+ }
}
diff --git a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h
index 83a609d32c..5a53a07131 100644
--- a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h
+++ b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayercontrol.h
@@ -43,6 +43,7 @@
#define QGSTREAMERPLAYERCONTROL_H
#include <QtCore/qobject.h>
+#include <QtCore/qstack.h>
#include <qmediaplayercontrol.h>
#include <qmediaplayer.h>
@@ -64,6 +65,7 @@ class PlayerResourcePolicy;
class QGstreamerPlayerControl : public QMediaPlayerControl
{
Q_OBJECT
+ Q_PROPERTY(bool mediaDownloadEnabled READ isMediaDownloadEnabled WRITE setMediaDownloadEnabled)
public:
QGstreamerPlayerControl(QGstreamerPlayerSession *session, QObject *parent = 0);
@@ -94,6 +96,9 @@ public:
const QIODevice *mediaStream() const;
void setMedia(const QMediaContent&, QIODevice *);
+ bool isMediaDownloadEnabled() const;
+ void setMediaDownloadEnabled(bool enabled);
+
public Q_SLOTS:
void setPosition(qint64 pos);
@@ -108,7 +113,8 @@ private Q_SLOTS:
void writeFifo();
void fifoReadyWrite(int socket);
- void updateState(QMediaPlayer::State);
+ void updateSessionState(QMediaPlayer::State state);
+ void updateMediaStatus();
void processEOS();
void setBufferProgress(int progress);
void applyPendingSeek(bool isSeekable);
@@ -123,11 +129,16 @@ private:
void closeFifo();
void playOrPause(QMediaPlayer::State state);
+ void pushState();
+ void popAndNotifyState();
+
bool m_ownStream;
QGstreamerPlayerSession *m_session;
QMediaPlayer::State m_state;
QMediaPlayer::MediaStatus m_mediaStatus;
- bool m_blockStatusChangedSignal;
+ QStack<QMediaPlayer::State> m_stateStack;
+ QStack<QMediaPlayer::MediaStatus> m_mediaStatusStack;
+
int m_bufferProgress;
bool m_seekToStartPending;
qint64 m_pendingSeekPosition;
diff --git a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp
index 98a3b0cca3..1011d07b8a 100644
--- a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp
+++ b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.cpp
@@ -53,6 +53,8 @@
#include <QtCore/qsize.h>
#include <QtCore/qtimer.h>
#include <QtCore/qdebug.h>
+#include <QtCore/qdir.h>
+#include <QtGui/qdesktopservices.h>
#if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) || (GST_VERSION_MICRO > 20)
#define USE_PLAYBIN2
@@ -87,6 +89,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
m_bus(0),
m_videoOutput(0),
m_renderer(0),
+ m_haveQueueElement(false),
#if defined(HAVE_GST_APPSRC)
m_appSrc(0),
#endif
@@ -154,6 +157,7 @@ QGstreamerPlayerSession::QGstreamerPlayerSession(QObject *parent)
g_object_set(G_OBJECT(m_playbin), "video-sink", m_videoOutputBin, NULL);
g_signal_connect(G_OBJECT(m_playbin), "notify::source", G_CALLBACK(playbinNotifySource), this);
+ g_signal_connect(G_OBJECT(m_playbin), "element-added", G_CALLBACK(handleElementAdded), this);
// Initial volume
double volume = 1.0;
@@ -200,6 +204,7 @@ void QGstreamerPlayerSession::loadFromStream(const QNetworkRequest &request, QIO
m_request = request;
m_duration = -1;
m_lastPosition = 0;
+ m_haveQueueElement = false;
if (m_appSrc)
m_appSrc->deleteLater();
@@ -228,6 +233,7 @@ void QGstreamerPlayerSession::loadFromUri(const QNetworkRequest &request)
m_request = request;
m_duration = -1;
m_lastPosition = 0;
+ m_haveQueueElement = false;
if (m_playbin) {
m_tags.clear();
@@ -279,6 +285,41 @@ void QGstreamerPlayerSession::setPlaybackRate(qreal rate)
}
}
+QMediaTimeRange QGstreamerPlayerSession::availablePlaybackRanges() const
+{
+ QMediaTimeRange ranges;
+#if (GST_VERSION_MAJOR >= 0) && (GST_VERSION_MINOR >= 10) && (GST_VERSION_MICRO >= 31)
+ //GST_FORMAT_TIME would be more appropriate, but unfortunately it's not supported.
+ //with GST_FORMAT_PERCENT media is treated as encoded with constant bitrate.
+ GstQuery* query = gst_query_new_buffering(GST_FORMAT_PERCENT);
+
+ if (gst_element_query(m_playbin, query)) {
+ for (guint index = 0; index < gst_query_get_n_buffering_ranges(query); index++) {
+ gint64 rangeStart = 0;
+ gint64 rangeStop = 0;
+
+ //This query should return values in GST_FORMAT_PERCENT_MAX range,
+ //but queue2 returns values in 0..100 range instead
+ if (gst_query_parse_nth_buffering_range(query, index, &rangeStart, &rangeStop))
+ ranges.addInterval(rangeStart * duration() / 100,
+ rangeStop * duration() / 100);
+ }
+ }
+
+ gst_query_unref(query);
+#endif
+
+ //without queue2 element in pipeline all the media is considered available
+ if (ranges.isEmpty() && duration() > 0 && !m_haveQueueElement)
+ ranges.addInterval(0, duration());
+
+#ifdef DEBUG_PLAYBIN
+ qDebug() << ranges;
+#endif
+
+ return ranges;
+}
+
int QGstreamerPlayerSession::activeStream(QMediaStreamsControl::StreamType streamType) const
{
int streamNumber = -1;
@@ -1420,3 +1461,37 @@ void QGstreamerPlayerSession::updateMuted()
emit mutedStateChanged(muted);
}
}
+
+
+void QGstreamerPlayerSession::handleElementAdded(GstBin *bin, GstElement *element, QGstreamerPlayerSession *session)
+{
+ Q_UNUSED(bin);
+ //we have to configure queue2 element to enable media downloading
+ //and reporting available ranges,
+ //but it's added dynamically to playbin2
+
+ gchar *elementName = gst_element_get_name(element);
+
+ if (g_str_has_prefix(elementName, "queue2")) {
+ session->m_haveQueueElement = true;
+
+ if (session->property("mediaDownloadEnabled").toBool()) {
+ QDir cacheDir(QDesktopServices::storageLocation(QDesktopServices::CacheLocation));
+ QString cacheLocation = cacheDir.absoluteFilePath("gstmedia__XXXXXX");
+#ifdef DEBUG_PLAYBIN
+ qDebug() << "set queue2 temp-location" << cacheLocation;
+#endif
+ g_object_set(G_OBJECT(element), "temp-template", cacheLocation.toUtf8().constData(), NULL);
+ } else {
+ g_object_set(G_OBJECT(element), "temp-template", NULL, NULL);
+ }
+ } else if (g_str_has_prefix(elementName, "uridecodebin") ||
+ g_str_has_prefix(elementName, "decodebin2")) {
+ //listen for queue2 element added to uridecodebin/decodebin2 as well.
+ //Don't touch other bins since they may have unrelated queues
+ g_signal_connect(element, "element-added",
+ G_CALLBACK(handleElementAdded), session);
+ }
+
+ g_free(elementName);
+}
diff --git a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.h b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.h
index 06e3b567c1..b0304f1ce2 100644
--- a/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.h
+++ b/plugins/multimedia/gstreamer/mediaplayer/qgstreamerplayersession.h
@@ -94,6 +94,8 @@ public:
qreal playbackRate() const;
void setPlaybackRate(qreal rate);
+ QMediaTimeRange availablePlaybackRanges() const;
+
QMap<QByteArray ,QVariant> tags() const { return m_tags; }
QMap<QtMultimediaKit::MetaData,QVariant> streamProperties(int streamNumber) const { return m_streamProperties[streamNumber]; }
int streamCount() const { return m_streamProperties.count(); }
@@ -155,6 +157,7 @@ private:
static void handleVolumeChange(GObject *o, GParamSpec *p, gpointer d);
static void handleMutedChange(GObject *o, GParamSpec *p, gpointer d);
static void insertColorSpaceElement(GstElement *element, gpointer data);
+ static void handleElementAdded(GstBin *bin, GstElement *element, QGstreamerPlayerSession *session);
QNetworkRequest m_request;
QMediaPlayer::State m_state;
@@ -175,6 +178,8 @@ private:
QObject *m_videoOutput;
QGstreamerVideoRendererInterface *m_renderer;
+ bool m_haveQueueElement;
+
#if defined(HAVE_GST_APPSRC)
QGstAppSrc *m_appSrc;
#endif
diff --git a/plugins/multimedia/gstreamer/qgstreamergltexturerenderer.cpp b/plugins/multimedia/gstreamer/qgstreamergltexturerenderer.cpp
index fd1d4e5164..98a4736fb2 100644
--- a/plugins/multimedia/gstreamer/qgstreamergltexturerenderer.cpp
+++ b/plugins/multimedia/gstreamer/qgstreamergltexturerenderer.cpp
@@ -91,22 +91,12 @@ public:
QGStreamerGLTextureBuffer(MeegoGstVideoTexture *textureSink, int frameNumber) :
QAbstractVideoBuffer(EGLImageTextureHandle),
m_textureSink(MEEGO_GST_VIDEO_TEXTURE(textureSink)),
- m_frameNumber(frameNumber),
- m_sync(0)
+ m_frameNumber(frameNumber)
{
-#if defined(GL_TEXTURE_SINK_DEBUG) && GL_TEXTURE_SINK_DEBUG > 1
- qDebug() << "acquire frame" << m_frameNumber;
-#endif
- if (!meego_gst_video_texture_acquire_frame(m_textureSink,frameNumber))
- qWarning() << Q_FUNC_INFO << "acquire-frame failed" << m_frameNumber;
}
~QGStreamerGLTextureBuffer()
{
-#if defined(GL_TEXTURE_SINK_DEBUG) && GL_TEXTURE_SINK_DEBUG > 1
- qDebug() << "release frame" << m_frameNumber;
-#endif
- meego_gst_video_texture_release_frame(m_textureSink, m_frameNumber, m_sync);
}
@@ -117,6 +107,15 @@ public:
Q_UNUSED(numBytes);
Q_UNUSED(bytesPerLine);
+ //acquire_frame should really be called at buffer construction time
+ //but it conflicts with id-less implementation of gst texture sink.
+#if defined(GL_TEXTURE_SINK_DEBUG) && GL_TEXTURE_SINK_DEBUG > 1
+ qDebug() << "acquire frame" << m_frameNumber;
+#endif
+ if (!meego_gst_video_texture_acquire_frame(m_textureSink,m_frameNumber))
+ qWarning() << Q_FUNC_INFO << "acquire-frame failed" << m_frameNumber;
+
+
#if defined(GL_TEXTURE_SINK_DEBUG) && GL_TEXTURE_SINK_DEBUG > 1
qDebug() << "map frame" << m_frameNumber;
#endif
@@ -136,13 +135,16 @@ public:
qDebug() << "unmap frame" << m_frameNumber;
#endif
- if (!bind_status) {
+ if (!bind_status)
qWarning() << Q_FUNC_INFO << "unbind-frame failed";
- } else {
- if (m_sync)
- eglDestroySyncKHR(eglGetDisplay((EGLNativeDisplayType)QX11Info::display()), m_sync);
- m_sync = eglCreateSyncKHR(eglGetDisplay((EGLNativeDisplayType)QX11Info::display()), EGL_SYNC_FENCE_KHR, NULL);
- }
+
+ //release_frame should really be called in destructor
+ //but this conflicts with id-less implementation of gst texture sink.
+#if defined(GL_TEXTURE_SINK_DEBUG) && GL_TEXTURE_SINK_DEBUG > 1
+ qDebug() << "release frame" << m_frameNumber;
+#endif
+ EGLSyncKHR sync = eglCreateSyncKHR(eglGetDisplay((EGLNativeDisplayType)QX11Info::display()), EGL_SYNC_FENCE_KHR, NULL);
+ meego_gst_video_texture_release_frame(m_textureSink, m_frameNumber, sync);
}
QVariant handle() const
@@ -153,7 +155,6 @@ public:
private:
MeegoGstVideoTexture *m_textureSink;
int m_frameNumber;
- EGLSyncKHR m_sync;
};
diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp
index 8b32042ba9..b68835c2c4 100644
--- a/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp
+++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60mediaplayersession.cpp
@@ -336,7 +336,7 @@ void S60MediaPlayerSession::reset()
stopStalledTimer();
doStop();
doClose();
- setPosition(0);
+ emit positionChanged(0);
setState(QMediaPlayer::StoppedState);
setMediaStatus(QMediaPlayer::UnknownMediaStatus);
diff --git a/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp b/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp
index 9d123efc6b..23ed2a88c1 100644
--- a/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp
+++ b/plugins/multimedia/symbian/mmf/mediaplayer/s60videoplayersession.cpp
@@ -239,8 +239,10 @@ void S60VideoPlayerSession::applicationGainedFocus()
m_backendInitiatedPause = false;
play();
}
- if (QMediaPlayer::PausedState == state())
- m_player->RefreshFrameL();
+ if (QMediaPlayer::PausedState == state()) {
+ TRAPD(err, m_player->RefreshFrameL());
+ setError(err);
+ }
}
void S60VideoPlayerSession::applicationLostFocus()
diff --git a/plugins/organizer/mkcal/mkcalid.h b/plugins/organizer/mkcal/mkcalid.h
index b29b0225bb..b1dc7caa01 100644
--- a/plugins/organizer/mkcal/mkcalid.h
+++ b/plugins/organizer/mkcal/mkcalid.h
@@ -97,7 +97,8 @@ public:
#ifndef QT_NO_DEBUG_STREAM
QDebug& debugStreamOut(QDebug& dbg) const
{
- return dbg << m_id << m_rid.dateTime() << managerUri();
+ dbg << m_id << m_rid.dateTime() << managerUri();
+ return dbg;
}
#endif
uint hash() const
diff --git a/plugins/sensors/meego/Sensors.conf b/plugins/sensors/meego/Sensors.conf
index f3b7965518..aa3be63a38 100644
--- a/plugins/sensors/meego/Sensors.conf
+++ b/plugins/sensors/meego/Sensors.conf
@@ -4,7 +4,8 @@ QAmbientLightSensor=meego.als
QCompass=meego.compass
QMagnetometer=meego.magnetometer
QOrientationSensor=meego.orientationsensor
-QProximitySensor=meego.proximity
+QProximitySensor=meego.proximitysensor
QRotationSensor=meego.rotationsensor
QTapSensor=meego.tapsensor
-QLightSensor=meego.lightsensor \ No newline at end of file
+QLightSensor=meego.lightsensor
+QIRProximitySensor=meego.irproximitysensor
diff --git a/plugins/sensors/meego/main.cpp b/plugins/sensors/meego/main.cpp
index 40981e0fe3..46e5bde767 100644
--- a/plugins/sensors/meego/main.cpp
+++ b/plugins/sensors/meego/main.cpp
@@ -45,6 +45,7 @@
#include "meegomagnetometer.h"
#include "meegoorientationsensor.h"
#include "meegoproximitysensor.h"
+#include "meegoirproximitysensor.h"
#include "meegorotationsensor.h"
#include "meegotapsensor.h"
#include "meegogyroscope.h"
@@ -99,6 +100,8 @@ public:
return new meegogyroscope(sensor);
if (sensor->identifier() == meegolightsensor::id)
return new meegolightsensor(sensor);
+ if (sensor->identifier() == meegoirproximitysensor::id)
+ return new meegoirproximitysensor(sensor);
return 0;
}
};
diff --git a/plugins/sensors/meego/meego.pri b/plugins/sensors/meego/meego.pri
index 95f586f238..11b1806e5f 100644
--- a/plugins/sensors/meego/meego.pri
+++ b/plugins/sensors/meego/meego.pri
@@ -8,7 +8,10 @@ HEADERS += meegosensorbase.h \
meegoproximitysensor.h \
meegorotationsensor.h \
meegotapsensor.h \
- meegolightsensor.h
+ meegolightsensor.h \
+ meegoirproximitysensor.h \
+ qirproximitysensor.h \
+ qirproximitysensor_p.h \
SOURCES += meegosensorbase.cpp \
meegoaccelerometer.cpp \
@@ -18,7 +21,9 @@ SOURCES += meegosensorbase.cpp \
meegomagnetometer.cpp \
meegoorientationsensor.cpp \
meegoproximitysensor.cpp \
+ meegoirproximitysensor.cpp \
meegorotationsensor.cpp \
meegotapsensor.cpp \
meegolightsensor.cpp \
+ qirproximitysensor.cpp \
main.cpp
diff --git a/plugins/sensors/meego/meegoaccelerometer.cpp b/plugins/sensors/meego/meegoaccelerometer.cpp
index 4a1d097d6a..3813547dd2 100644
--- a/plugins/sensors/meego/meegoaccelerometer.cpp
+++ b/plugins/sensors/meego/meegoaccelerometer.cpp
@@ -72,17 +72,15 @@ void meegoaccelerometer::slotFrameAvailable(const QVector<XYZ>& frame)
}
bool meegoaccelerometer::doConnect(){
- if (m_bufferSize==1?
- QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const XYZ&)), this, SLOT(slotDataAvailable(const XYZ&))):
- QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<XYZ>& )),this, SLOT(slotFrameAvailable(const QVector<XYZ>& ))))
- return true;
- return false;
+ if (m_bufferSize==1)
+ return QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const XYZ&)), this, SLOT(slotDataAvailable(const XYZ&)));
+ return QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<XYZ>& )),this, SLOT(slotFrameAvailable(const QVector<XYZ>& )));
}
-const QString meegoaccelerometer::sensorName(){
+QString meegoaccelerometer::sensorName() const{
return "accelerometersensor";
}
-const qreal meegoaccelerometer::correctionFactor(){return GRAVITY_EARTH_THOUSANDTH;}
+qreal meegoaccelerometer::correctionFactor() const{return GRAVITY_EARTH_THOUSANDTH;}
diff --git a/plugins/sensors/meego/meegoaccelerometer.h b/plugins/sensors/meego/meegoaccelerometer.h
index d34a45a918..357fbe2d8a 100644
--- a/plugins/sensors/meego/meegoaccelerometer.h
+++ b/plugins/sensors/meego/meegoaccelerometer.h
@@ -59,8 +59,8 @@ public:
meegoaccelerometer(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
- virtual const qreal correctionFactor();
+ virtual QString sensorName() const;
+ virtual qreal correctionFactor() const;
private:
diff --git a/plugins/sensors/meego/meegoals.cpp b/plugins/sensors/meego/meegoals.cpp
index 7e95574114..65d008d749 100644
--- a/plugins/sensors/meego/meegoals.cpp
+++ b/plugins/sensors/meego/meegoals.cpp
@@ -75,15 +75,12 @@ void meegoals::slotDataAvailable(const Unsigned& data)
}
bool meegoals::doConnect(){
- if (!(QObject::connect(m_sensorInterface, SIGNAL(ALSChanged(const Unsigned&)),
- this, SLOT(slotDataAvailable(const Unsigned&))))){
- return false;
- }
- return true;
+ return QObject::connect(m_sensorInterface, SIGNAL(ALSChanged(const Unsigned&)),
+ this, SLOT(slotDataAvailable(const Unsigned&)));
}
-const QString meegoals::sensorName(){
+QString meegoals::sensorName() const{
return "alssensor";
}
diff --git a/plugins/sensors/meego/meegoals.h b/plugins/sensors/meego/meegoals.h
index 0465bd3f36..4bfa093b90 100644
--- a/plugins/sensors/meego/meegoals.h
+++ b/plugins/sensors/meego/meegoals.h
@@ -59,7 +59,7 @@ public:
meegoals(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
+ virtual QString sensorName() const;
virtual void start();
diff --git a/plugins/sensors/meego/meegocompass.cpp b/plugins/sensors/meego/meegocompass.cpp
index bbb14372a3..2b8d6ad796 100644
--- a/plugins/sensors/meego/meegocompass.cpp
+++ b/plugins/sensors/meego/meegocompass.cpp
@@ -67,14 +67,11 @@ void meegocompass::slotDataAvailable(const Compass& data)
bool meegocompass::doConnect(){
- if (!(QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const Compass&)),
- this, SLOT(slotDataAvailable(const Compass&))))){
- return false;
- }
- return true;
+ return QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const Compass&)),
+ this, SLOT(slotDataAvailable(const Compass&)));
}
-const QString meegocompass::sensorName(){
+QString meegocompass::sensorName() const{
return "compasssensor";
}
diff --git a/plugins/sensors/meego/meegocompass.h b/plugins/sensors/meego/meegocompass.h
index e2c7cf34fa..f8c192a073 100644
--- a/plugins/sensors/meego/meegocompass.h
+++ b/plugins/sensors/meego/meegocompass.h
@@ -59,7 +59,7 @@ public:
meegocompass(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
+ virtual QString sensorName() const;
private:
QCompassReading m_reading;
diff --git a/plugins/sensors/meego/meegogyroscope.cpp b/plugins/sensors/meego/meegogyroscope.cpp
index c2a22406e0..1514ee0a6e 100644
--- a/plugins/sensors/meego/meegogyroscope.cpp
+++ b/plugins/sensors/meego/meegogyroscope.cpp
@@ -73,15 +73,13 @@ void meegogyroscope::slotFrameAvailable(const QVector<XYZ>& frame)
}
bool meegogyroscope::doConnect(){
- if (m_bufferSize==1?
- QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const XYZ&)), this, SLOT(slotDataAvailable(const XYZ&))):
- QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<XYZ>& )),this, SLOT(slotFrameAvailable(const QVector<XYZ>& ))))
- return true;
- return false;
+ if (m_bufferSize==1)
+ return QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const XYZ&)), this, SLOT(slotDataAvailable(const XYZ&)));
+ return QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<XYZ>& )),this, SLOT(slotFrameAvailable(const QVector<XYZ>& )));
}
-const QString meegogyroscope::sensorName(){
+QString meegogyroscope::sensorName() const{
return "gyroscopesensor";
}
-const qreal meegogyroscope::correctionFactor(){return MILLI;}
+qreal meegogyroscope::correctionFactor() const{return MILLI;}
diff --git a/plugins/sensors/meego/meegogyroscope.h b/plugins/sensors/meego/meegogyroscope.h
index 6048e9bbe2..4887ecfd60 100644
--- a/plugins/sensors/meego/meegogyroscope.h
+++ b/plugins/sensors/meego/meegogyroscope.h
@@ -59,8 +59,8 @@ public:
meegogyroscope(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
- virtual const qreal correctionFactor();
+ virtual QString sensorName() const;
+ virtual qreal correctionFactor() const;
private:
diff --git a/plugins/sensors/meego/meegoirproximitysensor.cpp b/plugins/sensors/meego/meegoirproximitysensor.cpp
new file mode 100644
index 0000000000..379297bfe0
--- /dev/null
+++ b/plugins/sensors/meego/meegoirproximitysensor.cpp
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 "meegoirproximitysensor.h"
+#define RM680_PS "/dev/bh1770glc_ps"
+
+char const * const meegoirproximitysensor::id("meego.irproximitysensor");
+bool meegoirproximitysensor::m_initDone = false;
+
+
+
+meegoirproximitysensor::meegoirproximitysensor(QSensor *sensor)
+ : meegosensorbase(sensor)
+{
+ initSensor<ProximitySensorChannelInterface>(m_initDone);
+ setReading<QIRProximityReading>(&m_reading);
+ setDescription(QLatin1String("reflectance as percentage (%) of maximum"));
+ addOutputRange(0, 100, 1);
+ addDataRate(10,10);
+ rangeMax = QFile::exists(RM680_PS)?255:1023;
+}
+
+#ifdef Q_WS_MAEMO_6
+void meegoirproximitysensor::slotDataAvailable(const Proximity& proximity){
+ m_reading.setReflectance((float)proximity.reflectance()*100 / rangeMax);
+ m_reading.setTimestamp(proximity.UnsignedData().timestamp_);
+ newReadingAvailable();
+}
+#endif
+
+
+bool meegoirproximitysensor::doConnect(){
+#ifdef Q_WS_MAEMO_6
+ return QObject::connect(m_sensorInterface, SIGNAL(reflectanceDataAvailable(const Proximity&)),
+ this, SLOT(slotDataAvailable(const Proximity&)));
+#endif
+ return false;
+}
+
+
+QString meegoirproximitysensor::sensorName() const{
+ return "proximitysensor";
+}
+
+
diff --git a/plugins/sensors/meego/meegoirproximitysensor.h b/plugins/sensors/meego/meegoirproximitysensor.h
new file mode 100644
index 0000000000..7625e05487
--- /dev/null
+++ b/plugins/sensors/meego/meegoirproximitysensor.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 MEEGOIRPROXIMITYSENSOR_H
+#define MEEGOIRPROXIMITYSENSOR_H
+
+#include "meegosensorbase.h"
+#include <qirproximitysensor.h>
+#include <proximitysensor_i.h>
+
+
+QTM_USE_NAMESPACE
+
+class meegoirproximitysensor : public meegosensorbase
+{
+ Q_OBJECT
+
+public:
+ static char const * const id;
+
+ meegoirproximitysensor(QSensor *sensor);
+protected:
+ virtual bool doConnect();
+ virtual QString sensorName() const;
+
+private:
+ QIRProximityReading m_reading;
+ static bool m_initDone;
+ int rangeMax;
+
+private slots:
+#ifdef Q_WS_MAEMO_6
+ void slotDataAvailable(const Proximity& proximity);
+#endif
+};
+
+#endif
diff --git a/plugins/sensors/meego/meegolightsensor.cpp b/plugins/sensors/meego/meegolightsensor.cpp
index aa19eb0e11..7793f136b8 100644
--- a/plugins/sensors/meego/meegolightsensor.cpp
+++ b/plugins/sensors/meego/meegolightsensor.cpp
@@ -59,14 +59,11 @@ void meegolightsensor::slotDataAvailable(const Unsigned& data)
}
bool meegolightsensor::doConnect(){
- if (!(QObject::connect(m_sensorInterface, SIGNAL(ALSChanged(const Unsigned&)),
- this, SLOT(slotDataAvailable(const Unsigned&))))){
- return false;
- }
- return true;
+ return QObject::connect(m_sensorInterface, SIGNAL(ALSChanged(const Unsigned&)),
+ this, SLOT(slotDataAvailable(const Unsigned&)));
}
-const QString meegolightsensor::sensorName(){
+QString meegolightsensor::sensorName() const{
return "alssensor";
}
diff --git a/plugins/sensors/meego/meegolightsensor.h b/plugins/sensors/meego/meegolightsensor.h
index 4d77299869..b66cde2957 100644
--- a/plugins/sensors/meego/meegolightsensor.h
+++ b/plugins/sensors/meego/meegolightsensor.h
@@ -59,7 +59,7 @@ public:
meegolightsensor(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
+ virtual QString sensorName() const;
private:
QLightReading m_reading;
diff --git a/plugins/sensors/meego/meegomagnetometer.cpp b/plugins/sensors/meego/meegomagnetometer.cpp
index 69b92e4218..069fa815f1 100644
--- a/plugins/sensors/meego/meegomagnetometer.cpp
+++ b/plugins/sensors/meego/meegomagnetometer.cpp
@@ -86,15 +86,13 @@ void meegomagnetometer::slotFrameAvailable(const QVector<MagneticField>& frame
}
bool meegomagnetometer::doConnect(){
- if (m_bufferSize==1?
- QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const MagneticField&)), this, SLOT(slotDataAvailable(const MagneticField&))):
- QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<MagneticField>& )),this, SLOT(slotFrameAvailable(const QVector<MagneticField>& ))))
- return true;
- return false;
+ if (m_bufferSize==1)
+ return QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const MagneticField&)), this, SLOT(slotDataAvailable(const MagneticField&)));
+ return QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<MagneticField>& )),this, SLOT(slotFrameAvailable(const QVector<MagneticField>& )));
}
-const QString meegomagnetometer::sensorName(){
+QString meegomagnetometer::sensorName() const{
return "magnetometersensor";
}
-const qreal meegomagnetometer::correctionFactor(){return meegomagnetometer::NANO;}
+qreal meegomagnetometer::correctionFactor() const{return meegomagnetometer::NANO;}
diff --git a/plugins/sensors/meego/meegomagnetometer.h b/plugins/sensors/meego/meegomagnetometer.h
index b95651a4e7..fd2f461f76 100644
--- a/plugins/sensors/meego/meegomagnetometer.h
+++ b/plugins/sensors/meego/meegomagnetometer.h
@@ -60,8 +60,8 @@ public:
protected:
virtual bool doConnect();
virtual void start();
- virtual const QString sensorName();
- virtual const qreal correctionFactor();
+ virtual QString sensorName() const;
+ virtual qreal correctionFactor() const;
private:
diff --git a/plugins/sensors/meego/meegoorientationsensor.cpp b/plugins/sensors/meego/meegoorientationsensor.cpp
index de777da886..9bc1d603c8 100644
--- a/plugins/sensors/meego/meegoorientationsensor.cpp
+++ b/plugins/sensors/meego/meegoorientationsensor.cpp
@@ -71,14 +71,11 @@ void meegoorientationsensor::slotDataAvailable(const Unsigned& data)
}
bool meegoorientationsensor::doConnect(){
- if (!(QObject::connect(m_sensorInterface, SIGNAL(orientationChanged(const Unsigned&)),
- this, SLOT(slotDataAvailable(const Unsigned&))))){
- return false;
- }
- return true;
+ return QObject::connect(m_sensorInterface, SIGNAL(orientationChanged(const Unsigned&)),
+ this, SLOT(slotDataAvailable(const Unsigned&)));
}
-const QString meegoorientationsensor::sensorName(){
+QString meegoorientationsensor::sensorName() const{
return "orientationsensor";
}
diff --git a/plugins/sensors/meego/meegoorientationsensor.h b/plugins/sensors/meego/meegoorientationsensor.h
index 038c71bec8..dd58fa8a0f 100644
--- a/plugins/sensors/meego/meegoorientationsensor.h
+++ b/plugins/sensors/meego/meegoorientationsensor.h
@@ -59,7 +59,7 @@ public:
meegoorientationsensor(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
+ virtual QString sensorName() const;
virtual void start();
private:
diff --git a/plugins/sensors/meego/meegoproximitysensor.cpp b/plugins/sensors/meego/meegoproximitysensor.cpp
index 8513f59bf9..fb1c3bcb8b 100644
--- a/plugins/sensors/meego/meegoproximitysensor.cpp
+++ b/plugins/sensors/meego/meegoproximitysensor.cpp
@@ -41,11 +41,11 @@
#include "meegoproximitysensor.h"
-char const * const meegoproximitysensor::id("meego.proximity");
+char const * const meegoproximitysensor::id("meego.proximitysensor");
bool meegoproximitysensor::m_initDone = false;
meegoproximitysensor::meegoproximitysensor(QSensor *sensor)
- : meegosensorbase(sensor)
+ : meegosensorbase(sensor), m_exClose(false)
{
initSensor<ProximitySensorChannelInterface>(m_initDone);
setReading<QProximityReading>(&m_reading);
@@ -63,9 +63,12 @@ void meegoproximitysensor::start(){
void meegoproximitysensor::slotDataAvailable(const Unsigned& data)
{
+ bool close = data.x()? true: false;
+ if (close == m_exClose) return;
m_reading.setClose(data.x()? true: false);
m_reading.setTimestamp(data.UnsignedData().timestamp_);
newReadingAvailable();
+ m_exClose = close;
}
bool meegoproximitysensor::doConnect(){
@@ -74,6 +77,6 @@ bool meegoproximitysensor::doConnect(){
}
-const QString meegoproximitysensor::sensorName(){
+QString meegoproximitysensor::sensorName() const{
return "proximitysensor";
}
diff --git a/plugins/sensors/meego/meegoproximitysensor.h b/plugins/sensors/meego/meegoproximitysensor.h
index 6c45ee905e..285b43d785 100644
--- a/plugins/sensors/meego/meegoproximitysensor.h
+++ b/plugins/sensors/meego/meegoproximitysensor.h
@@ -59,13 +59,14 @@ public:
meegoproximitysensor(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
+ virtual QString sensorName() const;
virtual void start();
private:
QProximityReading m_reading;
static bool m_initDone;
+ bool m_exClose;
private slots:
void slotDataAvailable(const Unsigned& data);
diff --git a/plugins/sensors/meego/meegorotationsensor.cpp b/plugins/sensors/meego/meegorotationsensor.cpp
index 5a1943373a..38c285ee62 100644
--- a/plugins/sensors/meego/meegorotationsensor.cpp
+++ b/plugins/sensors/meego/meegorotationsensor.cpp
@@ -69,13 +69,11 @@ void meegorotationsensor::slotFrameAvailable(const QVector<XYZ>& frame)
}
bool meegorotationsensor::doConnect(){
- if (m_bufferSize==1?
- QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const XYZ&)), this, SLOT(slotDataAvailable(const XYZ&))):
- QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<XYZ>& )),this, SLOT(slotFrameAvailable(const QVector<XYZ>& ))))
- return true;
- return false;
+ if (m_bufferSize==1)
+ return QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const XYZ&)), this, SLOT(slotDataAvailable(const XYZ&)));
+ return QObject::connect(m_sensorInterface, SIGNAL(frameAvailable(const QVector<XYZ>& )),this, SLOT(slotFrameAvailable(const QVector<XYZ>& )));
}
-const QString meegorotationsensor::sensorName(){
+QString meegorotationsensor::sensorName() const{
return "rotationsensor";
}
diff --git a/plugins/sensors/meego/meegorotationsensor.h b/plugins/sensors/meego/meegorotationsensor.h
index 52b01eca14..8c0e407615 100644
--- a/plugins/sensors/meego/meegorotationsensor.h
+++ b/plugins/sensors/meego/meegorotationsensor.h
@@ -59,7 +59,7 @@ public:
meegorotationsensor(QSensor *sensor);
protected:
virtual bool doConnect();
- virtual const QString sensorName();
+ virtual QString sensorName() const;
private:
QRotationReading m_reading;
diff --git a/plugins/sensors/meego/meegosensorbase.cpp b/plugins/sensors/meego/meegosensorbase.cpp
index 71efc4e283..26ffbe6d10 100644
--- a/plugins/sensors/meego/meegosensorbase.cpp
+++ b/plugins/sensors/meego/meegosensorbase.cpp
@@ -44,15 +44,16 @@
SensorManagerInterface* meegosensorbase::m_remoteSensorManager = 0;
-
-const float meegosensorbase::GRAVITY_EARTH = 9.80665;
-const float meegosensorbase::GRAVITY_EARTH_THOUSANDTH = 0.00980665;
+//According to wikipedia link http://en.wikipedia.org/wiki/Standard_gravity
+//const float meegosensorbase::GRAVITY_EARTH = 9.812865328;
+const float meegosensorbase::GRAVITY_EARTH_THOUSANDTH = 0.009812865328;
const int meegosensorbase::KErrNotFound=-1;
const int meegosensorbase::KErrInUse=-14;
const char* const meegosensorbase::ALWAYS_ON = "alwaysOn";
const char* const meegosensorbase::BUFFER_SIZE = "bufferSize";
const char* const meegosensorbase::MAX_BUFFER_SIZE = "maxBufferSize";
const char* const meegosensorbase::EFFICIENT_BUFFER_SIZE = "efficientBufferSize";
+QStringList meegosensorbase::m_bufferingSensors = QStringList()<<"meego.accelerometer"<<"meego.magnetometer"<<"meego.gyroscope"<<"meego.rotationsensor";
meegosensorbase::meegosensorbase(QSensor *sensor)
: QSensorBackend(sensor), m_sensorInterface(0), m_bufferSize(-1), m_prevOutputRange(0), m_efficientBufferSize(1), m_maxBufferSize(1)
@@ -91,7 +92,7 @@ void meegosensorbase::start()
int l = sensor()->outputRanges().size();
if (l>1){
if (currentRange != m_prevOutputRange){
-#ifdef Q_WS_MAEMO6
+#ifdef Q_WS_MAEMO_6
bool isOk = m_sensorInterface->setDataRangeIndex(currentRange); //NOTE THAT THE CHANGE MIGHT NOT SUCCEED, FIRST COME FIRST SERVED
if (!isOk) sensorError(KErrInUse);
else m_prevOutputRange = currentRange;
@@ -149,8 +150,11 @@ bool meegosensorbase::doConnectAfterCheck(){
int size = bufferSize();
if (size == m_bufferSize) return true;
- m_sensorInterface->setBufferSize(size);
+ if (m_bufferingSensors.contains(sensor()->identifier()))
+ m_sensorInterface->setBufferSize(size);
+ else size = 1;
+
// if multiple->single or single->multiple or if uninitialized
if ((m_bufferSize>1 && size==1) || (m_bufferSize==1 && size>1) || m_bufferSize==-1){
m_bufferSize = size;
@@ -166,7 +170,7 @@ bool meegosensorbase::doConnectAfterCheck(){
}
-const int meegosensorbase::bufferSize(){
+int meegosensorbase::bufferSize() const{
QVariant bufferVariant = sensor()->property(BUFFER_SIZE);
int bufferSize = bufferVariant.isValid()?bufferVariant.toInt():1;
if (bufferSize==1) return 1;
@@ -183,5 +187,5 @@ const int meegosensorbase::bufferSize(){
return bufferSize;
}
-const qreal meegosensorbase::correctionFactor(){return 1;}
+qreal meegosensorbase::correctionFactor() const{return 1;}
diff --git a/plugins/sensors/meego/meegosensorbase.h b/plugins/sensors/meego/meegosensorbase.h
index 55b32db0df..449584dc44 100644
--- a/plugins/sensors/meego/meegosensorbase.h
+++ b/plugins/sensors/meego/meegosensorbase.h
@@ -68,9 +68,10 @@ protected:
static const float GRAVITY_EARTH_THOUSANDTH; //for speed
static const int KErrNotFound;
static const int KErrInUse;
+ static QStringList m_bufferingSensors;
void setRanges(qreal correctionFactor=1);
- virtual const QString sensorName()=0;
+ virtual QString sensorName() const=0;
template<typename T>
void initSensor(bool &initDone)
@@ -124,21 +125,28 @@ protected:
}
//bufferSizes
- IntegerRangeList sizes = m_sensorInterface->getAvailableBufferSizes();
- int l = sizes.size();
- for (int i=0; i<l; i++){
- int second = sizes.at(i).second;
- m_maxBufferSize = second>m_bufferSize? second:m_maxBufferSize;
+ if (m_bufferingSensors.contains(sensor()->identifier())){
+
+ IntegerRangeList sizes = m_sensorInterface->getAvailableBufferSizes();
+ int l = sizes.size();
+ for (int i=0; i<l; i++){
+ int second = sizes.at(i).second;
+ m_maxBufferSize = second>m_bufferSize? second:m_maxBufferSize;
+ }
+ m_maxBufferSize = m_maxBufferSize<0?1:m_maxBufferSize;
+ //SensorFW guarantees to provide the most efficient size first
+ //TODO: remove from comments
+ //m_efficientBufferSize = m_sensorInterface->hwBuffering()? (l>0?sizes.at(0).first:1) : 1;
}
- m_maxBufferSize = m_maxBufferSize<0?1:m_maxBufferSize;
- //SensorFW guarantees to provide the most efficient size first
- //TODO: remove from comments
-// m_efficientBufferSize = m_sensorInterface->hwBuffering()? (l>0?sizes.at(0).first:1) : 1;
+ else
+ m_maxBufferSize = 1;
sensor()->setProperty(MAX_BUFFER_SIZE, m_maxBufferSize);
sensor()->setProperty(EFFICIENT_BUFFER_SIZE, m_efficientBufferSize);
- if (sensor()->type()=="QAmbientLightSensor") return; // SensorFW returns lux values, plugin enumerated values
+ QString type = sensor()->type();
+ if (type=="QAmbientLightSensor") return; // SensorFW returns lux values, plugin enumerated values
+ if (type=="QIRProximitySensor") return; // SensorFW returns raw reflectance values, plugin % of max reflectance
if (name=="accelerometersensor") return; // SensorFW returns milliGs, plugin m/s^2
if (name=="magnetometersensor") return; // SensorFW returns nanoTeslas, plugin Teslas
if (name=="gyroscopesensor") return; // SensorFW returns DSPs, plugin milliDSPs
@@ -153,10 +161,11 @@ protected:
AbstractSensorChannelInterface* m_sensorInterface;
int m_bufferSize;
- const int bufferSize();
- virtual const qreal correctionFactor();
+ int bufferSize() const;
+ virtual qreal correctionFactor() const;
private:
+
static SensorManagerInterface* m_remoteSensorManager;
int m_prevOutputRange;
bool doConnectAfterCheck();
diff --git a/plugins/sensors/meego/meegotapsensor.cpp b/plugins/sensors/meego/meegotapsensor.cpp
index 5504c91bee..26c4b5de85 100644
--- a/plugins/sensors/meego/meegotapsensor.cpp
+++ b/plugins/sensors/meego/meegotapsensor.cpp
@@ -102,6 +102,6 @@ bool meegotapsensor::doConnect(){
}
-const QString meegotapsensor::sensorName(){
+QString meegotapsensor::sensorName() const{
return "tapsensor";
}
diff --git a/plugins/sensors/meego/meegotapsensor.h b/plugins/sensors/meego/meegotapsensor.h
index 85b46e9431..dc7be9d958 100644
--- a/plugins/sensors/meego/meegotapsensor.h
+++ b/plugins/sensors/meego/meegotapsensor.h
@@ -60,7 +60,7 @@ public:
protected:
virtual bool doConnect();
virtual void start();
- virtual const QString sensorName();
+ virtual QString sensorName() const;
private:
QTapReading m_reading;
diff --git a/plugins/sensors/meego/qirproximitysensor.cpp b/plugins/sensors/meego/qirproximitysensor.cpp
new file mode 100644
index 0000000000..ff94c3ebfd
--- /dev/null
+++ b/plugins/sensors/meego/qirproximitysensor.cpp
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 <qirproximitysensor.h>
+#include "qirproximitysensor_p.h"
+
+QTM_BEGIN_NAMESPACE
+
+IMPLEMENT_READING(QIRProximityReading)
+
+/*!
+ \class QIRProximityReading
+ \ingroup sensors_reading
+ \inmodule QtSensors
+
+ \brief The QIRProximityReading class holds readings from the IR proximity sensor.
+
+ The IR (infra-red) proximity sensor detects proximity by beaming out infra-red light
+ and detecting how much of the light returns.
+
+ The biggest limitation of this technology is that there is no reliable way to turn the
+ reflectance values into distances unless both the item being detected and the ambient
+ conditions are known.
+
+ \section2 QIRProximityReading Units
+
+ The sensor reports reflectance as a percentage. That is, 0 indicates nothing was detected
+ within the range of the sensor and 100 indicates the infra-red signal returned at the full
+ power level that it was sent at.
+*/
+
+/*!
+ \property QIRProximityReading::reflectance
+ \brief Holds the reflectance value.
+
+ The reflectance is a percentage (from 0 to 100) indicating how much of the transmitted
+ infra-red light was returned.
+
+ \sa {QIRProximityReading Units}
+*/
+qreal QIRProximityReading::reflectance() const
+{
+ return d->reflectance;
+}
+
+/*!
+ Sets the reflectance value to \a reflectance.
+*/
+void QIRProximityReading::setReflectance(qreal reflectance)
+{
+ d->reflectance = reflectance;
+}
+
+// =====================================================================
+
+/*!
+ \class QIRProximityFilter
+ \ingroup sensors_filter
+ \inmodule QtSensors
+
+ \brief The QIRProximityFilter class is a convenience wrapper around QSensorFilter.
+
+ The only difference is that the filter() method features a pointer to QIRProximityReading
+ instead of QSensorReading.
+*/
+
+/*!
+ \fn QIRProximityFilter::filter(QIRProximityReading *reading)
+
+ Called when \a reading changes. Returns false to prevent the reading from propagating.
+
+ \sa QSensorFilter::filter()
+*/
+
+char const * const QIRProximitySensor::type("QIRProximitySensor");
+
+/*!
+ \class QIRProximitySensor
+ \ingroup sensors_type
+ \inmodule QtSensors
+
+ \brief The QIRProximitySensor class is a convenience wrapper around QSensor.
+
+ The only behavioural difference is that this class sets the type properly.
+
+ This class also features a reading() function that returns a QIRProximityReading instead of a QSensorReading.
+
+ For details about how the sensor works, see \l QIRProximityReading.
+
+ \sa QIRProximityReading
+*/
+
+/*!
+ \fn QIRProximitySensor::QIRProximitySensor(QObject *parent)
+
+ Construct the sensor as a child of \a parent.
+*/
+
+/*!
+ \fn QIRProximitySensor::~QIRProximitySensor()
+
+ Destroy the sensor. Stops the sensor if it has not already been stopped.
+*/
+
+/*!
+ \fn QIRProximitySensor::reading() const
+
+ Returns the reading class for this sensor.
+
+ \sa QSensor::reading()
+*/
+
+
+#include "moc_qirproximitysensor.cpp"
+QTM_END_NAMESPACE
diff --git a/plugins/sensors/meego/qirproximitysensor.h b/plugins/sensors/meego/qirproximitysensor.h
new file mode 100644
index 0000000000..fd57f89d80
--- /dev/null
+++ b/plugins/sensors/meego/qirproximitysensor.h
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 QIRPROXIMITYSENSOR_H
+#define QIRPROXIMITYSENSOR_H
+
+#include <qsensor.h>
+
+QTM_BEGIN_NAMESPACE
+
+class QIRProximityReadingPrivate;
+
+class Q_SENSORS_EXPORT QIRProximityReading : public QSensorReading
+{
+ Q_OBJECT
+ Q_PROPERTY(qreal reflectance READ reflectance)
+ DECLARE_READING(QIRProximityReading)
+public:
+ qreal reflectance() const;
+ void setReflectance(qreal reflectance);
+};
+
+class Q_SENSORS_EXPORT QIRProximityFilter : public QSensorFilter
+{
+public:
+ virtual bool filter(QIRProximityReading *reading) = 0;
+private:
+ bool filter(QSensorReading *reading) { return filter(static_cast<QIRProximityReading*>(reading)); }
+};
+
+class Q_SENSORS_EXPORT QIRProximitySensor : public QSensor
+{
+ Q_OBJECT
+public:
+ explicit QIRProximitySensor(QObject *parent = 0) : QSensor(QIRProximitySensor::type, parent) {}
+ virtual ~QIRProximitySensor() {}
+ QIRProximityReading *reading() const { return static_cast<QIRProximityReading*>(QSensor::reading()); }
+ static char const * const type;
+};
+
+QTM_END_NAMESPACE
+
+#endif
+
diff --git a/plugins/sensors/meego/qirproximitysensor_p.h b/plugins/sensors/meego/qirproximitysensor_p.h
new file mode 100644
index 0000000000..e06e929360
--- /dev/null
+++ b/plugins/sensors/meego/qirproximitysensor_p.h
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $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 QIRPROXIMITYSENSOR_P_H
+#define QIRPROXIMITYSENSOR_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+QTM_BEGIN_NAMESPACE
+
+class QIRProximityReadingPrivate
+{
+public:
+ QIRProximityReadingPrivate()
+ : reflectance(0)
+ {
+ }
+
+
+
+ /*
+ * Note that this class is copied so you may need to implement
+ * a copy constructor if you have complex types or pointers
+ * as values.
+ */
+ qreal reflectance;
+};
+
+QTM_END_NAMESPACE
+
+#endif
diff --git a/plugins/sensors/n900/n900proximitysensor.cpp b/plugins/sensors/n900/n900proximitysensor.cpp
index 4248c41c79..46e2c0588d 100644
--- a/plugins/sensors/n900/n900proximitysensor.cpp
+++ b/plugins/sensors/n900/n900proximitysensor.cpp
@@ -51,12 +51,9 @@ n900proximitysensor::n900proximitysensor(QSensor *sensor)
: n900filebasedsensor(sensor)
{
setReading<QProximityReading>(&m_reading);
- // Not sure what rate the hardware runs at. Actually, I don't
- // think it's even configurable. I think the proximity state
- // is updated via interrupt. This this is really about the poll
- // speed.
- // Report 1-100 so the app can choose the speed it wants to poll
- addDataRate(1, 100);
+ // The proximity hardware runs at 10Hz.
+ // Report 1-10 so the app can choose the speed it wants to poll
+ addDataRate(1, 10);
}
void n900proximitysensor::start()
diff --git a/plugins/sensors/symbian/rotationsensorsym.cpp b/plugins/sensors/symbian/rotationsensorsym.cpp
index b4b166ba88..23dc122586 100644
--- a/plugins/sensors/symbian/rotationsensorsym.cpp
+++ b/plugins/sensors/symbian/rotationsensorsym.cpp
@@ -81,6 +81,7 @@ CRotationSensorSym::CRotationSensorSym(QSensor *sensor):CSensorBackendSym(sensor
{
setReading<QRotationReading>(&iReading);
iBackendData.iSensorType = KSensrvChannelTypeIdRotationData;
+ sensor->setProperty("hasZ", QVariant(FALSE));
}
/*
@@ -125,24 +126,6 @@ void CRotationSensorSym::ProcessReading()
iReading.setY(iData.iDeviceRotationAboutYAxis - 180);
}
- if(iData.iDeviceRotationAboutZAxis == TSensrvRotationData::KSensrvRotationUndefined)
- {
- sensor()->setProperty("hasZ", QVariant(FALSE));
- }
- else
- {
- sensor()->setProperty("hasZ", QVariant(TRUE));
- // For z axis symbian provides reading from 0 to 359 range
- // This logic maps value to Qt range -180 to 180
- if(iData.iDeviceRotationAboutZAxis >= 0 && iData.iDeviceRotationAboutZAxis <= 180)
- {
- iReading.setZ(180 - iData.iDeviceRotationAboutZAxis);
- }
- else if(iData.iDeviceRotationAboutZAxis > 180 && iData.iDeviceRotationAboutZAxis < 360)
- {
- iReading.setZ(0 - (iData.iDeviceRotationAboutZAxis - 180));
- }
- }
// Set the timestamp
iReading.setTimestamp(iData.iTimeStamp.Int64());
// Release the lock
diff --git a/src/bearer/qnetworkconfigmanager.cpp b/src/bearer/qnetworkconfigmanager.cpp
index 1fb9d364b7..28e3c84ad5 100644
--- a/src/bearer/qnetworkconfigmanager.cpp
+++ b/src/bearer/qnetworkconfigmanager.cpp
@@ -106,6 +106,7 @@ Q_GLOBAL_STATIC_QAPP_DESTRUCTION(QNetworkConfigurationManagerPrivate, connManage
\inmodule QtNetwork
\ingroup bearer
+ \since 1.0
QNetworkConfigurationManager provides access to the network configurations known to the system and
enables applications to detect the system capabilities (with regards to network sessions) at runtime.
@@ -133,7 +134,7 @@ Q_GLOBAL_STATIC_QAPP_DESTRUCTION(QNetworkConfigurationManagerPrivate, connManage
\sa QNetworkConfiguration
*/
-/*!
+/*!
\fn void QNetworkConfigurationManager::configurationAdded(const QNetworkConfiguration& config)
This signal is emitted whenever a new network configuration is added to the system. The new
@@ -224,7 +225,7 @@ QNetworkConfigurationManager::QNetworkConfigurationManager( QObject* parent )
this, SIGNAL(configurationRemoved(QNetworkConfiguration)));
connect(priv, SIGNAL(configurationUpdateComplete()),
this, SIGNAL(updateCompleted()));
- connect(priv, SIGNAL(onlineStateChanged(bool)),
+ connect(priv, SIGNAL(onlineStateChanged(bool)),
this, SIGNAL(onlineStateChanged(bool)));
connect(priv, SIGNAL(configurationChanged(QNetworkConfiguration)),
this, SIGNAL(configurationChanged(QNetworkConfiguration)));
@@ -284,7 +285,7 @@ QList<QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(QNe
//find all InternetAccessPoints
foreach (const QString &ii, conPriv->accessPointConfigurations.keys()) {
- QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> p =
+ QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> p =
conPriv->accessPointConfigurations.value(ii);
if ( (p->state & filter) == filter ) {
QNetworkConfiguration pt;
@@ -295,7 +296,7 @@ QList<QNetworkConfiguration> QNetworkConfigurationManager::allConfigurations(QNe
//find all service networks
foreach (const QString &ii, conPriv->snapConfigurations.keys()) {
- QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> p =
+ QExplicitlySharedDataPointer<QNetworkConfigurationPrivate> p =
conPriv->snapConfigurations.value(ii);
if ( (p->state & filter) == filter ) {
QNetworkConfiguration pt;
diff --git a/src/bearer/qnetworkconfiguration.cpp b/src/bearer/qnetworkconfiguration.cpp
index 933b8b5684..e446a3c96f 100644
--- a/src/bearer/qnetworkconfiguration.cpp
+++ b/src/bearer/qnetworkconfiguration.cpp
@@ -58,6 +58,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtNetwork
\ingroup bearer
+ \since 1.0
QNetworkConfiguration encapsulates a single access point or service network.
In most cases a single access point configuration can be mapped to one network
@@ -352,7 +353,7 @@ QList<QNetworkConfiguration> QNetworkConfiguration::children() const
bearer types:
\table
- \header
+ \header
\o Value
\o Description
\row
@@ -367,7 +368,7 @@ QList<QNetworkConfiguration> QNetworkConfiguration::children() const
\row
\o 2G
\o The session uses CSD, GPRS, HSCSD, EDGE or cdmaOne.
- \row
+ \row
\o CDMA2000
\o The session uses CDMA.
\row
diff --git a/src/bearer/qnetworksession.cpp b/src/bearer/qnetworksession.cpp
index fa79c47c76..b7b9bc6220 100644
--- a/src/bearer/qnetworksession.cpp
+++ b/src/bearer/qnetworksession.cpp
@@ -62,39 +62,40 @@ QTM_BEGIN_NAMESPACE
\inmodule QtNetwork
\ingroup bearer
+ \since 1.0
A QNetworkSession enables control over the system's network interfaces. The session's configuration
- parameter are determined via the QNetworkConfiguration object to which it is bound. Depending on the
+ parameter are determined via the QNetworkConfiguration object to which it is bound. Depending on the
type of the session (single access point or service network) a session may be linked to one or more
- network interfaces. By means of \l{open()}{opening} and \l{close()}{closing} of network sessions
- a developer can start and stop the systems network interfaces. If the configuration represents
+ network interfaces. By means of \l{open()}{opening} and \l{close()}{closing} of network sessions
+ a developer can start and stop the systems network interfaces. If the configuration represents
multiple access points (see \l QNetworkConfiguration::ServiceNetwork) more advanced features such as roaming may be supported.
- QNetworkSession supports session management within the same process and depending on the platform's
- capabilities may support out-of-process sessions. If the same
+ QNetworkSession supports session management within the same process and depending on the platform's
+ capabilities may support out-of-process sessions. If the same
network configuration is used by multiple open sessions the underlying network interface is only terminated once
the last session has been closed.
\section1 Roaming
- Applications may connect to the preferredConfigurationChanged() signal in order to
- receive notifications when a more suitable access point becomes available.
+ Applications may connect to the preferredConfigurationChanged() signal in order to
+ receive notifications when a more suitable access point becomes available.
In response to this signal the application must either initiate the roaming via migrate()
- or ignore() the new access point. Once the session has roamed the
- newConfigurationActivated() signal is emitted. The application may now test the
+ or ignore() the new access point. Once the session has roamed the
+ newConfigurationActivated() signal is emitted. The application may now test the
carrier and must either accept() or reject() it. The session will return to the previous
access point if the roaming was rejected. The subsequent state diagram depicts the required
state transitions.
-
+
\image roaming-states.png
- Some platforms may distinguish forced roaming and application level roaming (ALR).
- ALR implies that the application controls (via migrate(), ignore(), accept() and reject())
+ Some platforms may distinguish forced roaming and application level roaming (ALR).
+ ALR implies that the application controls (via migrate(), ignore(), accept() and reject())
whether a network session can roam from one access point to the next. Such control is useful
if the application maintains stateful socket connections and wants to control the transition from
- one interface to the next. Forced roaming implies that the system automatically roams to the next network without
+ one interface to the next. Forced roaming implies that the system automatically roams to the next network without
consulting the application. This has the advantage that the application can make use of roaming features
- without actually being aware of it. It is expected that the application detects that the underlying
+ without actually being aware of it. It is expected that the application detects that the underlying
socket is broken and automatically reconnects via the new network link.
If the platform supports both modes of roaming, an application indicates its preference
@@ -103,7 +104,7 @@ QTM_BEGIN_NAMESPACE
level roaming. If the client does not connect to the preferredConfigurationChanged(), forced roaming
is used. If forced roaming is not supported the network session will not roam by default.
- Some applications may want to suppress any form of roaming altogether. Possible use cases may be
+ Some applications may want to suppress any form of roaming altogether. Possible use cases may be
high priority downloads or remote services which cannot handle a roaming enabled client. Clients
can suppress roaming by connecting to the preferredConfigurationChanged() signal and answer each
signal emission with ignore().
@@ -118,19 +119,19 @@ QTM_BEGIN_NAMESPACE
single access point configuration the state of the session is the same as the state of the
associated network interface.
- \value Invalid The session is invalid due to an invalid configuration. This may
- happen due to a removed access point or a configuration that was
+ \value Invalid The session is invalid due to an invalid configuration. This may
+ happen due to a removed access point or a configuration that was
invalid to begin with.
\value NotAvailable The session is based on a defined but not yet discovered QNetworkConfiguration
(see \l QNetworkConfiguration::StateFlag).
\value Connecting The network session is being established.
\value Connected The network session is connected. If the current process wishes to use this session
- it has to register its interest by calling open(). A network session
+ it has to register its interest by calling open(). A network session
is considered to be ready for socket operations if it isOpen() and connected.
\value Closing The network session is in the process of being shut down.
\value Disconnected The network session is not connected. The associated QNetworkConfiguration
has the state QNetworkConfiguration::Discovered.
- \value Roaming The network session is roaming from one access point to another
+ \value Roaming The network session is roaming from one access point to another
access point.
*/
@@ -180,16 +181,16 @@ QTM_BEGIN_NAMESPACE
If the roaming process is non-seamless the IP address will change which means that
a socket becomes invalid. However seamless mobility can ensure that the local IP address
does not change. This is achieved by using a virtual IP address which is bound to the actual
- link address. During the roaming process the virtual address is attached to the new link
+ link address. During the roaming process the virtual address is attached to the new link
address.
- Some platforms may support the concept of Forced Roaming and Application Level Roaming (ALR).
- Forced roaming implies that the platform may simply roam to a new configuration without
+ Some platforms may support the concept of Forced Roaming and Application Level Roaming (ALR).
+ Forced roaming implies that the platform may simply roam to a new configuration without
consulting applications. It is up to the application to detect the link layer loss and reestablish
- its sockets. In contrast ALR provides the opportunity to prevent the system from roaming.
+ its sockets. In contrast ALR provides the opportunity to prevent the system from roaming.
If this session is based on a configuration that supports roaming the application can choose
- whether it wants to be consulted (ALR use case) by connecting to this signal. For as long as this signal
- connection remains the session remains registered as a roaming stakeholder; otherwise roaming will
+ whether it wants to be consulted (ALR use case) by connecting to this signal. For as long as this signal
+ connection remains the session remains registered as a roaming stakeholder; otherwise roaming will
be enforced by the platform.
\sa migrate(), ignore(), QNetworkConfiguration::isRoamingAvailable()
@@ -200,7 +201,7 @@ QTM_BEGIN_NAMESPACE
This signal is emitted once the session has roamed to the new access point.
The application may reopen its socket and test the suitability of the new network link.
- Subsequently it must either accept() or reject() the new access point.
+ Subsequently it must either accept() or reject() the new access point.
\sa accept(), reject()
*/
@@ -208,8 +209,8 @@ QTM_BEGIN_NAMESPACE
/*!
\fn void QNetworkSession::opened()
- This signal is emitted when the network session has been opened.
-
+ This signal is emitted when the network session has been opened.
+
The underlying network interface will not be shut down as long as the session remains open.
Note that this feature is dependent on \l{QNetworkConfigurationManager::SystemSessionSupport}{system wide session support}.
*/
@@ -232,7 +233,7 @@ QNetworkSession::QNetworkSession(const QNetworkConfiguration& connectionConfig,
d->q = this;
d->publicConfig = connectionConfig;
d->syncStateWithInterface();
- QObject::connect(d, SIGNAL(quitPendingWaitsForOpened()),
+ QObject::connect(d, SIGNAL(quitPendingWaitsForOpened()),
this, SIGNAL(opened()));
}
@@ -249,12 +250,12 @@ QNetworkSession::~QNetworkSession()
The system will not terminate a network interface until the session reference counter reaches zero.
Therefore an open session allows an application to register its use of the interface.
- As a result of calling open() the interface will be started if it is not connected/up yet.
+ As a result of calling open() the interface will be started if it is not connected/up yet.
Some platforms may not provide support for out-of-process sessions. On such platforms the session
- counter ignores any sessions held by another process. The platform capabilities can be
+ counter ignores any sessions held by another process. The platform capabilities can be
detected via QNetworkConfigurationManager::capabilities().
- Note that this call is asynchronous. Depending on the outcome of this call the results can be enquired
+ Note that this call is asynchronous. Depending on the outcome of this call the results can be enquired
by connecting to the stateChanged(), opened() or error() signals.
It is not a requirement to open a session in order to monitor the underlying network interface.
@@ -314,10 +315,10 @@ bool QNetworkSession::waitForOpened(int msecs)
\l Disconnected if the current session was the last open session.
If the platform does not support out-of-process sessions calling this function does not stop the
- interface. In this case \l{stop()} has to be used to force a shut down.
+ interface. In this case \l{stop()} has to be used to force a shut down.
The platform capabilities can be detected via QNetworkConfigurationManager::capabilities().
- Note that this call is asynchronous. Depending on the outcome of this call the results can be enquired
+ Note that this call is asynchronous. Depending on the outcome of this call the results can be enquired
by connecting to the stateChanged(), opened() or error() signals.
\sa open(), stop(), isOpen()
@@ -328,10 +329,10 @@ void QNetworkSession::close()
}
/*!
- Invalidates all open sessions against the network interface and therefore stops the
+ Invalidates all open sessions against the network interface and therefore stops the
underlying network interface. This function always changes the session's state() flag to
- \l Disconnected.
-
+ \l Disconnected.
+
On Symbian platform, a 'NetworkControl' capability is required for
full interface-level stop (without the capability, only the current session is stopped).
@@ -358,7 +359,7 @@ QNetworkConfiguration QNetworkSession::configuration() const
bearer types:
\table
- \header
+ \header
\o Value
\o Description
\row
@@ -373,7 +374,7 @@ QNetworkConfiguration QNetworkSession::configuration() const
\row
\o 2G
\o The session uses CSD, GPRS, HSCSD, EDGE or cdmaOne.
- \row
+ \row
\o CDMA2000
\o The session uses CDMA.
\row
@@ -390,9 +391,9 @@ QNetworkConfiguration QNetworkSession::configuration() const
\o The session uses WiMAX.
\endtable
- If the session is based on a network configuration of type
- \l QNetworkConfiguration::ServiceNetwork the type of the preferred or currently
- active configuration is returned. Therefore the bearer type may change
+ If the session is based on a network configuration of type
+ \l QNetworkConfiguration::ServiceNetwork the type of the preferred or currently
+ active configuration is returned. Therefore the bearer type may change
over time.
This function returns an empty string if this session is based on an invalid configuration, or
@@ -410,8 +411,8 @@ QNetworkConfiguration QNetworkSession::configuration() const
This function only returns a valid QNetworkInterface when this session is \l Connected.
The returned interface may change as a result of a roaming process.
-
- Note: this function does not work in Symbian emulator due to the way the
+
+ Note: this function does not work in Symbian emulator due to the way the
connectivity is emulated on Windows.
\sa state()
@@ -433,15 +434,15 @@ bool QNetworkSession::isOpen() const
}
/*!
- Returns the state of the session.
-
- If the session is based on a single access point configuration the state of the
+ Returns the state of the session.
+
+ If the session is based on a single access point configuration the state of the
session is the same as the state of the associated network interface. Therefore
- a network session object can be used to monitor network interfaces.
+ a network session object can be used to monitor network interfaces.
A \l QNetworkConfiguration::ServiceNetwork based session summarizes the state of all its children
- and therefore returns the \l Connected state if at least one of the service network's
- \l {QNetworkConfiguration::children()}{children()} configurations is active.
+ and therefore returns the \l Connected state if at least one of the service network's
+ \l {QNetworkConfiguration::children()}{children()} configurations is active.
Note that it is not required to hold an open session in order to obtain the network interface state.
A connected but closed session may be used to monitor network interfaces whereas an open and connected
@@ -465,7 +466,7 @@ QNetworkSession::SessionError QNetworkSession::error() const
}
/*!
- Returns a human-readable description of the last device error that
+ Returns a human-readable description of the last device error that
occurred.
\sa error()
@@ -492,7 +493,7 @@ QString QNetworkSession::errorString() const
QNetworkConfiguration that is used by this session; otherwise an empty string.
The main purpose of this key is to determine which Internet access point is used
- if the session is based on a \l{QNetworkConfiguration::ServiceNetwork}{ServiceNetwork}.
+ if the session is based on a \l{QNetworkConfiguration::ServiceNetwork}{ServiceNetwork}.
The following code snippet highlights the difference:
\code
QNetworkConfigurationManager mgr;
@@ -519,7 +520,7 @@ QString QNetworkSession::errorString() const
this key may return an identifier for either a
\l {QNetworkConfiguration::ServiceNetwork}{service network} or a
\l {QNetworkConfiguration::InternetAccessPoint}{Internet access points} configurations
- whereas \i ActiveConfiguration always returns identifiers to
+ whereas \i ActiveConfiguration always returns identifiers to
\l {QNetworkConfiguration::InternetAccessPoint}{Internet access points} configurations.
\row
\o ConnectInBackground
@@ -555,7 +556,7 @@ QVariant QNetworkSession::sessionProperty(const QString& key) const
/*!
Sets the property \a value on the session. The property is identified using
- \a key. Removing an already set property can be achieved by passing an
+ \a key. Removing an already set property can be achieved by passing an
invalid QVariant.
Note that the \i UserChoiceConfiguration and \i ActiveConfiguration
@@ -563,15 +564,15 @@ QVariant QNetworkSession::sessionProperty(const QString& key) const
*/
void QNetworkSession::setSessionProperty(const QString& key, const QVariant& value)
{
- if (key == "ActiveConfiguration"
- || key == "UserChoiceConfiguration")
+ if (key == "ActiveConfiguration"
+ || key == "UserChoiceConfiguration")
return;
d->setSessionProperty(key, value);
}
/*!
- Instructs the session to roam to the new access point. The old access point remains active
+ Instructs the session to roam to the new access point. The old access point remains active
until the application calls accept().
The newConfigurationActivated() signal is emitted once roaming has been completed.
@@ -590,17 +591,17 @@ void QNetworkSession::migrate()
*/
void QNetworkSession::ignore()
{
- // Needed on at least Symbian platform: the roaming must be explicitly
+ // Needed on at least Symbian platform: the roaming must be explicitly
// ignore()'d or migrate()'d
d->ignore();
}
/*!
- Instructs the session to permanently accept the new access point. Once this function
+ Instructs the session to permanently accept the new access point. Once this function
has been called the session may not return to the old access point.
The old access point may be closed in the process if there are no other network sessions for it.
- Therefore any open socket that still uses the old access point
+ Therefore any open socket that still uses the old access point
may become unusable and should be closed before completing the migration.
*/
void QNetworkSession::accept()
@@ -609,7 +610,7 @@ void QNetworkSession::accept()
}
/*!
- The new access point is not suitable for the application. By calling this function the
+ The new access point is not suitable for the application. By calling this function the
session returns to the previous access point/configuration. This action may invalidate
any socket that has been created via the not desired access point.
@@ -624,10 +625,10 @@ void QNetworkSession::reject()
/*!
Returns the amount of data sent in bytes; otherwise 0.
- This field value includes the usage across all open network
+ This field value includes the usage across all open network
sessions which use the same network interface.
- If the session is based on a service network configuration the number of
+ If the session is based on a service network configuration the number of
sent bytes across all active member configurations are returned.
This function may not always be supported on all platforms and returns 0.
@@ -643,10 +644,10 @@ quint64 QNetworkSession::bytesWritten() const
/*!
Returns the amount of data received in bytes; otherwise 0.
- This field value includes the usage across all open network
+ This field value includes the usage across all open network
sessions which use the same network interface.
- If the session is based on a service network configuration the number of
+ If the session is based on a service network configuration the number of
sent bytes across all active member configurations are returned.
This function may not always be supported on all platforms and returns 0.
@@ -670,12 +671,12 @@ quint64 QNetworkSession::activeTime() const
/*!
\internal
- This function is required to detect whether the client wants to control
+ This function is required to detect whether the client wants to control
the roaming process. If he connects to preferredConfigurationChanged() signal
he intends to influence it. Otherwise QNetworkSession always roams
without registering this session as a stakeholder in the roaming process.
- For more details check the Forced vs ALR roaming section in the QNetworkSession
+ For more details check the Forced vs ALR roaming section in the QNetworkSession
class description.
*/
void QNetworkSession::connectNotify(const char *signal)
@@ -687,7 +688,7 @@ void QNetworkSession::connectNotify(const char *signal)
if (qstrcmp(signal, SIGNAL(preferredConfigurationChanged(QNetworkConfiguration,bool))) == 0) {
d->setALREnabled(true);
}
-#endif
+#endif
}
/*!
@@ -706,8 +707,8 @@ void QNetworkSession::disconnectNotify(const char *signal)
#ifdef Q_OS_SYMBIAN
if (qstrcmp(signal, SIGNAL(preferredConfigurationChanged(QNetworkConfiguration,bool))) == 0) {
d->setALREnabled(false);
- }
-#endif
+ }
+#endif
}
#include "moc_qnetworksession.cpp"
diff --git a/src/connectivity/bluetooth/qbluetooth.cpp b/src/connectivity/bluetooth/qbluetooth.cpp
index a835822cbc..13268b8d3f 100644
--- a/src/connectivity/bluetooth/qbluetooth.cpp
+++ b/src/connectivity/bluetooth/qbluetooth.cpp
@@ -44,6 +44,7 @@
/*!
\namespace QBluetooth
\brief The QBluetooth namespace contains functions and definitions related to Bluetooth.
+ \since 1.2
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
diff --git a/src/connectivity/bluetooth/qbluetoothaddress.cpp b/src/connectivity/bluetooth/qbluetoothaddress.cpp
index 97f4c6d9a0..052c687184 100644
--- a/src/connectivity/bluetooth/qbluetoothaddress.cpp
+++ b/src/connectivity/bluetooth/qbluetoothaddress.cpp
@@ -47,6 +47,7 @@ QTM_BEGIN_NAMESPACE
/*!
\class QBluetoothAddress
\brief The QBluetoothAddress class provides a Bluetooth address.
+ \since 1.2
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
@@ -134,7 +135,7 @@ QBluetoothAddress::QBluetoothAddress(const QBluetoothAddress &other)
/*!
Assigns \a other to this Bluetooth address.
*/
-QBluetoothAddress &QBluetoothAddress::operator=(const QBluetoothAddress &other)
+QBluetoothAddress &QBluetoothAddress::operator=(const QBluetoothAddress &other)
{
d_ptr = other.d_ptr;
return *this;
@@ -176,7 +177,7 @@ bool QBluetoothAddress::operator<(const QBluetoothAddress &other) const
Returns true if the Bluetooth address are equal, otherwise returns false.
*/
bool QBluetoothAddress::operator==(const QBluetoothAddress &other) const
-{
+{
Q_D(const QBluetoothAddress);
return d->m_address == other.d_func()->m_address;
}
diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.cpp b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.cpp
index e80c2b5e2f..fe30bfbc35 100644
--- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.cpp
+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.cpp
@@ -48,6 +48,7 @@ QTM_BEGIN_NAMESPACE
\class QBluetoothDeviceDiscoveryAgent
\brief The QBluetoothDeviceDiscoveryAgent class provides an API for discovering nearby
Bluetooth devices.
+ \since 1.2
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
@@ -69,7 +70,7 @@ QTM_BEGIN_NAMESPACE
\value NoError No error has occurred.
\value PoweredOff Bluetooth adaptor is powered off, power it on before doing discovery.
\value IOFailure Writing or reading from device resulted in an error.
- \value UnknownError An unknown error has occurred.
+ \value UnknownError An unknown error has occurred.
*/
/*!
diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h
index c61d3291d7..a95c467962 100644
--- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h
+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent.h
@@ -108,6 +108,7 @@ private:
#ifdef QTM_SYMBIAN_BLUETOOTH
Q_PRIVATE_SLOT(d_func(), void _q_newDeviceFound(const QBluetoothDeviceInfo &device))
+ Q_PRIVATE_SLOT(d_func(), void _q_setError(QBluetoothDeviceDiscoveryAgent::Error errorCode, QString errorDescription))
#endif // QTM_SYMBIAN_BLUETOOTH
};
diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
index 68d7162675..370d061757 100644
--- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
@@ -166,7 +166,7 @@ void QBluetoothDeviceDiscoveryAgentPrivate::_q_deviceFound(const QString &addres
if(dict.value(QLatin1String("RSSI")).isValid())
device.setRssi(dict.value(QLatin1String("RSSI")).toInt());
QList<QBluetoothUuid> uuids;
- foreach (QString u, dict.value(QLatin1String("UUIDs")).toStringList()) {
+ foreach (const QString &u, dict.value(QLatin1String("UUIDs")).toStringList()) {
uuids.append(QBluetoothUuid(u));
}
device.setServiceUuids(uuids, QBluetoothDeviceInfo::DataIncomplete);
diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h
index 16b78ebed2..0e34e057f6 100644
--- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h
+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_p.h
@@ -74,8 +74,10 @@ public:
bool isActive() const;
#ifdef QTM_SYMBIAN_BLUETOOTH
- // private slot
+// private slots
void _q_newDeviceFound(const QBluetoothDeviceInfo &device);
+ void _q_setError(QBluetoothDeviceDiscoveryAgent::Error errorCode,
+ QString errorDescription);
#endif
#ifndef QT_NO_DBUS
@@ -85,8 +87,8 @@ public:
private:
#ifdef QTM_SYMBIAN_BLUETOOTH
+ void allocate();
uint inquiryTypeToIAC() const;
- void setError(int errorCode, QString errorDescription);
#endif
QList<QBluetoothDeviceInfo> discoveredDevices;
diff --git a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_symbian.cpp b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_symbian.cpp
index e4afbf220c..99564164bf 100644
--- a/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_symbian.cpp
+++ b/src/connectivity/bluetooth/qbluetoothdevicediscoveryagent_symbian.cpp
@@ -56,70 +56,75 @@ QBluetoothDeviceDiscoveryAgentPrivate::QBluetoothDeviceDiscoveryAgentPrivate()
{
/* connect to socker server */
TInt result = m_socketServer.Connect();
- setError(result, QString("RSocketServ.Connect() failed with error"));
+ if (result != KErrNone)
+ _q_setError(QBluetoothDeviceDiscoveryAgent::UnknownError,
+ QString("RSocketServ.Connect() failed with error"));
}
QBluetoothDeviceDiscoveryAgentPrivate::~QBluetoothDeviceDiscoveryAgentPrivate()
{
delete m_deviceDiscovery;
- m_socketServer.Close();
+ if (m_socketServer.Handle() != NULL)
+ m_socketServer.Close();
}
-void QBluetoothDeviceDiscoveryAgentPrivate::start()
+void QBluetoothDeviceDiscoveryAgentPrivate::allocate()
{
- // we need to delete previous discovery as only one query could be active a one time
- if (m_deviceDiscovery) {
- delete m_deviceDiscovery;
- m_deviceDiscovery = NULL;
- }
- // clear list of found devices
- discoveredDevices.clear();
+ Q_Q(QBluetoothDeviceDiscoveryAgent);
+ // create link manager device discoverer
if (m_socketServer.Handle() != NULL) {
// create new active object for querying devices
m_deviceDiscovery = new BluetoothLinkManagerDeviceDiscoverer(m_socketServer);
- //bind signals on public interface
- Q_Q(QBluetoothDeviceDiscoveryAgent);
- QObject::connect(m_deviceDiscovery, SIGNAL(deviceDiscoveryComplete(int)), q, SIGNAL(finished()));
- QObject::connect(m_deviceDiscovery, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)),
- q, SLOT(_q_newDeviceFound(const QBluetoothDeviceInfo&)));
- QObject::connect(m_deviceDiscovery, SIGNAL(linkManagerError(QBluetoothDeviceDiscoveryAgent::Error)),
- q, SIGNAL(error(QBluetoothDeviceDiscoveryAgent::Error)));
- QObject::connect(m_deviceDiscovery, SIGNAL(canceled()),
- q, SIGNAL(canceled()));
- // startup the device discovery. Discovery results are obtained from signal connected above.
- if (!m_deviceDiscovery->startDiscovery(inquiryTypeToIAC()))
- setError(KErrNotReady, "Discovery is still active");
- } else {
- setError(KErrBadHandle, QString("RSocketServ.Connect() failed with error"));
- }
+ if (m_deviceDiscovery) {
+ QObject::connect(m_deviceDiscovery, SIGNAL(deviceDiscoveryComplete()), q, SIGNAL(finished()));
+ QObject::connect(m_deviceDiscovery, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)),
+ q, SLOT(_q_newDeviceFound(const QBluetoothDeviceInfo&)));
+ QObject::connect(m_deviceDiscovery, SIGNAL(linkManagerError(QBluetoothDeviceDiscoveryAgent::Error,QString)),
+ q, SLOT(_q_setError(QBluetoothDeviceDiscoveryAgent::Error,QString)));
+ QObject::connect(m_deviceDiscovery, SIGNAL(canceled()), q, SIGNAL(canceled()));
+ } else {
+ _q_setError(QBluetoothDeviceDiscoveryAgent::UnknownError,
+ QString("Cannot allocate BluetoothLinkManagerDeviceDiscoverer: failed with error"));
+ }
+ }
+}
+
+void QBluetoothDeviceDiscoveryAgentPrivate::start()
+{
+
+ // clear list of found devices
+ discoveredDevices.clear();
+ if (!m_deviceDiscovery) {
+ allocate();
+ }
+ m_deviceDiscovery->startDiscovery(inquiryTypeToIAC());
+
}
void QBluetoothDeviceDiscoveryAgentPrivate::stop()
{
- delete m_deviceDiscovery;
- m_deviceDiscovery = NULL;
+ if (m_deviceDiscovery)
+ m_deviceDiscovery->stopDiscovery();
}
bool QBluetoothDeviceDiscoveryAgentPrivate::isActive() const
{
if (m_deviceDiscovery)
- return m_deviceDiscovery->IsActive();
+ return m_deviceDiscovery->isReallyActive();
return false;
}
-void QBluetoothDeviceDiscoveryAgentPrivate::setError(int errorCode, QString errorDescription)
+void QBluetoothDeviceDiscoveryAgentPrivate::_q_setError(QBluetoothDeviceDiscoveryAgent::Error errorCode,
+ QString errorDescription)
{
+ qDebug() << __PRETTY_FUNCTION__ << errorCode << errorDescription;
if (errorCode == KErrNone)
return;
Q_Q(QBluetoothDeviceDiscoveryAgent);
errorString = errorDescription;
- if (errorCode == KErrCancel)
- emit q->canceled();
- else
- emit q->error(QBluetoothDeviceDiscoveryAgent::UnknownError);
-
+ emit q->error(errorCode);
}
void QBluetoothDeviceDiscoveryAgentPrivate::_q_newDeviceFound(const QBluetoothDeviceInfo &device)
diff --git a/src/connectivity/bluetooth/qbluetoothdeviceinfo.cpp b/src/connectivity/bluetooth/qbluetoothdeviceinfo.cpp
index d26c44e29b..b44bd63052 100644
--- a/src/connectivity/bluetooth/qbluetoothdeviceinfo.cpp
+++ b/src/connectivity/bluetooth/qbluetoothdeviceinfo.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
QBluetoothDeviceInfo provides information about a Bluetooth device's name, address and class of device.
*/
diff --git a/src/connectivity/bluetooth/qbluetoothdeviceinfo.h b/src/connectivity/bluetooth/qbluetoothdeviceinfo.h
index 990193962c..ad2cb021ac 100644
--- a/src/connectivity/bluetooth/qbluetoothdeviceinfo.h
+++ b/src/connectivity/bluetooth/qbluetoothdeviceinfo.h
@@ -122,9 +122,9 @@ public:
Camcorder = 13,
VideoMonitor = 14,
VideoDisplayAndLoudspeaker = 15,
- VideoConferencing = 17,
- // reserved = 18,
- GamingDevice = 19,
+ VideoConferencing = 16,
+ // reserved = 17,
+ GamingDevice = 18,
};
enum MinorPeripheralClass {
@@ -174,8 +174,8 @@ public:
HealthWeightScale = 0x3,
HealthGlucoseMeter = 0x4,
HealthPulseOximeter = 0x5,
- HealthDataDisplay = 0x6,
- HealthStepCounter = 0x7
+ HealthDataDisplay = 0x7,
+ HealthStepCounter = 0x8
};
enum ServiceClass {
diff --git a/src/connectivity/bluetooth/qbluetoothlocaldevice.cpp b/src/connectivity/bluetooth/qbluetoothlocaldevice.cpp
index 94c420a0b9..a20307dc6a 100644
--- a/src/connectivity/bluetooth/qbluetoothlocaldevice.cpp
+++ b/src/connectivity/bluetooth/qbluetoothlocaldevice.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
QBluetoothLocalDevice provides functions for getting and setting the state of local Bluetooth
devices.
@@ -131,7 +132,7 @@ QBluetoothLocalDevice::~QBluetoothLocalDevice()
otherwise return false.
*/
bool QBluetoothLocalDevice::isValid() const
-{
+{
return d_ptr;
}
@@ -226,7 +227,7 @@ bool QBluetoothLocalDevice::isValid() const
/*!
\fn QBluetoothLocalDevice::error(QBluetoothLocalDevice::Error error)
- Signal emited for pairing if there's an exceptional \a error
+ Signal emitted for pairing if there's an exceptional \a error
*/
diff --git a/src/connectivity/bluetooth/qbluetoothlocaldevice.h b/src/connectivity/bluetooth/qbluetoothlocaldevice.h
index 660323d900..657d430ec0 100644
--- a/src/connectivity/bluetooth/qbluetoothlocaldevice.h
+++ b/src/connectivity/bluetooth/qbluetoothlocaldevice.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -105,7 +105,7 @@ public:
UnknownError = 100
};
QBluetoothLocalDevice(QObject *parent = 0);
- QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0);
+ explicit QBluetoothLocalDevice(const QBluetoothAddress &address, QObject *parent = 0);
virtual ~QBluetoothLocalDevice();
bool isValid() const;
diff --git a/src/connectivity/bluetooth/qbluetoothlocaldevice_symbian.cpp b/src/connectivity/bluetooth/qbluetoothlocaldevice_symbian.cpp
index 6047b3f905..94b6d6fe72 100644
--- a/src/connectivity/bluetooth/qbluetoothlocaldevice_symbian.cpp
+++ b/src/connectivity/bluetooth/qbluetoothlocaldevice_symbian.cpp
@@ -78,7 +78,6 @@ QString QBluetoothLocalDevicePrivate::name()
TRAPD(err, settings = CBTEngSettings::NewL());
if (err != KErrNone)
return QString();
- QString name = QString();
HBufC *localName = NULL;
TRAPD(error, localName = HBufC::NewL(256));
if (error != KErrNone) {
@@ -87,9 +86,10 @@ QString QBluetoothLocalDevicePrivate::name()
}
TPtr localPtr = localName->Des();
TInt errorCode = settings->GetLocalName(localPtr);
- if (errorCode == KErrNone) {
+ QString name;
+ if (errorCode == KErrNone)
name = s60DescToQString(localPtr);
- }
+
delete localName;
delete settings;
return name;
diff --git a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.cpp b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.cpp
index 613691bb75..308c40653b 100644
--- a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.cpp
+++ b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
To query the services provided by all contactable Bluetooth devices create an instance of
QBluetoothServiceDiscoveryAgent, connect to either the serviceDiscovered() or finished()
diff --git a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h
index 02f9739eb8..6279432ffe 100644
--- a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h
+++ b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -74,7 +74,7 @@ public:
};
QBluetoothServiceDiscoveryAgent(QObject *parent = 0);
- QBluetoothServiceDiscoveryAgent(const QBluetoothAddress &remoteAddress, QObject *parent = 0);
+ explicit QBluetoothServiceDiscoveryAgent(const QBluetoothAddress &remoteAddress, QObject *parent = 0);
~QBluetoothServiceDiscoveryAgent();
bool isActive() const;
diff --git a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
index 43b1a06aa2..e6042c15ba 100644
--- a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
+++ b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
@@ -58,7 +58,8 @@ QTM_BEGIN_NAMESPACE
QBluetoothServiceDiscoveryAgentPrivate::QBluetoothServiceDiscoveryAgentPrivate(const QBluetoothAddress &address)
: error(QBluetoothServiceDiscoveryAgent::NoError), state(Inactive), deviceAddress(address),
- deviceDiscoveryAgent(0), mode(QBluetoothServiceDiscoveryAgent::MinimalDiscovery), manager(0), device(0), singleDevice(false)
+ deviceDiscoveryAgent(0), mode(QBluetoothServiceDiscoveryAgent::MinimalDiscovery),
+ singleDevice(false), manager(0), device(0)
{
qRegisterMetaType<ServiceMap>("ServiceMap");
qDBusRegisterMetaType<ServiceMap>();
diff --git a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_symbian.cpp b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_symbian.cpp
index 002a8168f6..df98d3a345 100644
--- a/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_symbian.cpp
+++ b/src/connectivity/bluetooth/qbluetoothservicediscoveryagent_symbian.cpp
@@ -55,10 +55,10 @@ QBluetoothServiceDiscoveryAgentPrivate::QBluetoothServiceDiscoveryAgentPrivate(c
, deviceAddress(address)
, deviceDiscoveryAgent(0)
, mode(QBluetoothServiceDiscoveryAgent::MinimalDiscovery)
+ , singleDevice(false)
, m_sdpAgent(NULL)
, m_filter(NULL)
, m_attributes(NULL)
- , singleDevice(false)
{
}
@@ -191,6 +191,10 @@ void QBluetoothServiceDiscoveryAgentPrivate::AttributeRequestComplete(TSdpServRe
m_serviceInfo.setDevice(discoveredDevices.at(0));
discoveredServices.append(m_serviceInfo);
m_serviceInfo = QBluetoothServiceInfo();
+ if (discoveredServices.last().isValid())
+ {
+ emit q->serviceDiscovered(discoveredServices.last());
+ }
TRAPD(err, m_sdpAgent->NextRecordRequestL());
if (err != KErrNone) {
error = QBluetoothServiceDiscoveryAgent::UnknownError;
@@ -201,9 +205,6 @@ void QBluetoothServiceDiscoveryAgentPrivate::AttributeRequestComplete(TSdpServRe
emit q->error(error);
}
- // emit found service.
- if (discoveredServices.last().isValid())
- emit q->serviceDiscovered(discoveredServices.last());
}
diff --git a/src/connectivity/bluetooth/qbluetoothserviceinfo.cpp b/src/connectivity/bluetooth/qbluetoothserviceinfo.cpp
index 5e925b55e1..c3d269c18b 100644
--- a/src/connectivity/bluetooth/qbluetoothserviceinfo.cpp
+++ b/src/connectivity/bluetooth/qbluetoothserviceinfo.cpp
@@ -50,6 +50,7 @@ QTM_BEGIN_NAMESPACE
\class QBluetoothServiceInfo::Sequence
\brief The Sequence class provides a data type for Bluetooth Data
Element Sequence attributes.
+ \since 1.2
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
diff --git a/src/connectivity/bluetooth/qbluetoothserviceinfo_symbian.cpp b/src/connectivity/bluetooth/qbluetoothserviceinfo_symbian.cpp
index 8b684f3006..3346cf33fd 100644
--- a/src/connectivity/bluetooth/qbluetoothserviceinfo_symbian.cpp
+++ b/src/connectivity/bluetooth/qbluetoothserviceinfo_symbian.cpp
@@ -289,7 +289,9 @@ bool QBluetoothServiceInfo::registerService() const
bool QBluetoothServiceInfo::unregisterService() const
{
Q_D(const QBluetoothServiceInfo);
-
+ if(d->serviceRecord == 0)
+ return true;
+
if (!d->ensureSdpConnection())
return false;
diff --git a/src/connectivity/bluetooth/qbluetoothsocket.cpp b/src/connectivity/bluetooth/qbluetoothsocket.cpp
index 5397a35548..db61211afe 100644
--- a/src/connectivity/bluetooth/qbluetoothsocket.cpp
+++ b/src/connectivity/bluetooth/qbluetoothsocket.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -58,6 +58,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
QBluetoothSocket supports two socket types, \l {QBluetoothSocket::L2capSocket}{L2CAP} and
\l {QBluetoothSocket::RfcommSocket}{RFCOMM}.
@@ -247,7 +248,7 @@ QBluetoothSocket::QBluetoothSocket(QObject *parent)
Destroys the Bluetooth socket.
*/
QBluetoothSocket::~QBluetoothSocket()
-{
+{
delete d_ptr;
d_ptr = 0;
}
@@ -422,7 +423,7 @@ void QBluetoothSocket::setSocketState(QBluetoothSocket::SocketState state)
}
/*!
- Returns true if you can read atleast one line from the device
+ Returns true if you can read at least one line from the device
*/
bool QBluetoothSocket::canReadLine() const
@@ -450,7 +451,7 @@ void QBluetoothSocket::setSocketError(QBluetoothSocket::SocketError error_)
void QBluetoothSocket::doDeviceDiscovery(const QBluetoothServiceInfo &service, OpenMode openMode)
{
Q_D(QBluetoothSocket);
-
+
qDebug() << "Starting discovery";
if(d->discoveryAgent) {
@@ -458,7 +459,7 @@ void QBluetoothSocket::doDeviceDiscovery(const QBluetoothServiceInfo &service, O
}
d->discoveryAgent = new QBluetoothServiceDiscoveryAgent(service.device().address(),this);
-
+
qDebug() << "Got agent";
connect(d->discoveryAgent, SIGNAL(serviceDiscovered(QBluetoothServiceInfo)), this, SLOT(serviceDiscovered(QBluetoothServiceInfo)));
@@ -474,7 +475,7 @@ void QBluetoothSocket::doDeviceDiscovery(const QBluetoothServiceInfo &service, O
// we have to ID the service somehow
Q_ASSERT(!d->discoveryAgent->uuidFilter().isEmpty());
-
+
qDebug() << "UUID filter" << d->discoveryAgent->uuidFilter();
d->discoveryAgent->start(QBluetoothServiceDiscoveryAgent::FullDiscovery);
diff --git a/src/connectivity/bluetooth/qbluetoothsocket.h b/src/connectivity/bluetooth/qbluetoothsocket.h
index ae9f4b94e0..09df6d5482 100644
--- a/src/connectivity/bluetooth/qbluetoothsocket.h
+++ b/src/connectivity/bluetooth/qbluetoothsocket.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -94,7 +94,7 @@ public:
NetworkError = QAbstractSocket::NetworkError
};
- QBluetoothSocket(SocketType socketType, QObject *parent = 0); // create socket of type socketType
+ explicit QBluetoothSocket(SocketType socketType, QObject *parent = 0); // create socket of type socketType
QBluetoothSocket(QObject *parent = 0); // create a blank socket
virtual ~QBluetoothSocket();
diff --git a/src/connectivity/bluetooth/qbluetoothsocket_p.h b/src/connectivity/bluetooth/qbluetoothsocket_p.h
index 9369e6cbca..585329e967 100644
--- a/src/connectivity/bluetooth/qbluetoothsocket_p.h
+++ b/src/connectivity/bluetooth/qbluetoothsocket_p.h
@@ -54,6 +54,7 @@
#ifdef QTM_SYMBIAN_BLUETOOTH
#include <es_sock.h>
#include <bt_sock.h>
+#include <bttypes.h>
#endif
QT_FORWARD_DECLARE_CLASS(QSocketNotifier)
@@ -125,10 +126,11 @@ public:
void startReceive();
void startServerSideReceive();
void receive();
- void ensureBlankNativeSocket();
+ bool ensureBlankNativeSocket(QBluetoothSocket::SocketType type);
+ bool tryToSend();
/* MBluetoothSocketNotifier virtual functions */
- void HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification &aEventNotification);
+ void HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification& aEventNotification);
void HandleAcceptCompleteL(TInt aErr);
void HandleConnectCompleteL(TInt aErr);
void HandleIoctlCompleteL(TInt aErr);
@@ -154,18 +156,19 @@ public:
// QByteArray rxBuffer;
// qint64 rxOffset;
-// QByteArray txBuffer;
QString errorString;
#ifdef QTM_SYMBIAN_BLUETOOTH
CBluetoothSocket *iSocket;
- CBluetoothSocket *iBlankSocket;
TPtr8 rxDescriptor;
TPtrC8 txDescriptor;
+ QByteArray txArray;
TSockXfrLength rxLength;
- bool receiving;
TInt recvMTU;
- QByteArray txTempBuffer;
+ TInt txMTU;
+ char* bufPtr;
+ bool transmitting;
+ quint64 writeSize;
#endif
// private slots
diff --git a/src/connectivity/bluetooth/qbluetoothsocket_symbian.cpp b/src/connectivity/bluetooth/qbluetoothsocket_symbian.cpp
index 411f91b224..d5daf5d2fc 100644
--- a/src/connectivity/bluetooth/qbluetoothsocket_symbian.cpp
+++ b/src/connectivity/bluetooth/qbluetoothsocket_symbian.cpp
@@ -64,29 +64,40 @@ QBluetoothSocketPrivate::QBluetoothSocketPrivate()
, connectWriteNotifier(0)
, discoveryAgent(0)
, iSocket(0)
- , iBlankSocket(0)
, rxDescriptor(0, 0)
, txDescriptor(0, 0)
- , receiving(false)
-
+ , recvMTU(0)
+ , txMTU(0)
+ , transmitting(false)
+ , writeSize(0)
{
}
QBluetoothSocketPrivate::~QBluetoothSocketPrivate()
{
- delete iBlankSocket;
delete iSocket;
}
void QBluetoothSocketPrivate::connectToService(const QBluetoothAddress &address, quint16 port, QIODevice::OpenMode openMode)
{
Q_Q(QBluetoothSocket);
+ Q_UNUSED(openMode);
+
TBTSockAddr a;
- a.SetBTAddr(TBTDevAddr(address.toUInt64()));
+ if(address.isNull())
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ return;
+ }
+ TInt err = KErrNone;
a.SetPort(port);
-
- if (iSocket->Connect(a) == KErrNone) {
+ // Trap TBTDevAddr constructor which may panic
+ TRAP(err, a.SetBTAddr(TBTDevAddr(address.toUInt64())));
+ if(err == KErrNone)
+ err = iSocket->Connect(a);
+ if (err == KErrNone) {
q->setSocketState(QBluetoothSocket::ConnectingState);
} else {
socketError = QBluetoothSocket::UnknownSocketError;
@@ -98,9 +109,14 @@ bool QBluetoothSocketPrivate::ensureNativeSocket(QBluetoothSocket::SocketType ty
{
if (iSocket) {
if (socketType == type)
+ {
return true;
+ }
else
+ {
delete iSocket;
+ iSocket = 0;
+ }
}
socketType = type;
@@ -118,56 +134,58 @@ bool QBluetoothSocketPrivate::ensureNativeSocket(QBluetoothSocket::SocketType ty
}
default:
iSocket = 0;
- return false;
}
if (iSocket)
return true;
-
- return false;
+ else
+ return false;
}
-void QBluetoothSocketPrivate::ensureBlankNativeSocket()
+bool QBluetoothSocketPrivate::ensureBlankNativeSocket(QBluetoothSocket::SocketType type)
{
- if (iBlankSocket) {
- delete iBlankSocket;
- iBlankSocket = NULL;
+ if (iSocket) {
+ delete iSocket;
+ iSocket = 0;
}
-
- TRAPD(err, iBlankSocket = CBluetoothSocket::NewL(*this, getSocketServer()->socketServer));
+ socketType = type;
+ TRAPD(err, iSocket = CBluetoothSocket::NewL(*this, getSocketServer()->socketServer));
Q_UNUSED(err);
+ if(iSocket)
+ return true;
+ else
+ return false;
}
void QBluetoothSocketPrivate::startReceive()
{
- if (receiving)
- return;
-
Q_Q(QBluetoothSocket);
- if (!iSocket) {
+ if (!iSocket || state != QBluetoothSocket::ConnectedState) {
emit q->error(QBluetoothSocket::UnknownSocketError);
return;
}
- receiving = true;
- TInt err;
- recvMTU = 0;
- err = iSocket->GetOpt(KL2CAPInboundMTU, KSolBtL2CAP, recvMTU);
+ TInt err = iSocket->GetOpt(KL2CAPInboundMTU, KSolBtL2CAP, recvMTU);
if(err != KErrNone)
+ {
+ emit q->error(QBluetoothSocket::UnknownSocketError);
return;
- receive();
-}
-void QBluetoothSocketPrivate::startServerSideReceive()
-{
- Q_Q(QBluetoothSocket);
- if (!iBlankSocket) {
+ }
+ err = iSocket->GetOpt(KL2CAPNegotiatedOutboundMTU, KSolBtL2CAP, txMTU);
+ if(err != KErrNone)
+ {
emit q->error(QBluetoothSocket::UnknownSocketError);
return;
}
- TInt err;
- recvMTU = 0;
- err = iBlankSocket->GetOpt(KL2CAPInboundMTU, KSolBtL2CAP, recvMTU);
+ bufPtr = buffer.reserve(recvMTU);
+ // enable automatic power saving mode
+ iSocket->SetAutomaticSniffMode(ETrue);
+ // enable link down and link error notifications for proper disconnection
+ err = iSocket->ActivateBasebandEventNotifier(ENotifyPhysicalLinkDown |ENotifyPhysicalLinkError );
if(err != KErrNone)
- return;
+ {
+ emit q->error(QBluetoothSocket::UnknownSocketError);
+ return;
+ }
receive();
}
@@ -175,44 +193,65 @@ void QBluetoothSocketPrivate::receive()
{
Q_Q(QBluetoothSocket);
TInt err = KErrNone;
- if (!iSocket && !iBlankSocket)
- {
+
+ if(!iSocket || bufPtr == 0 || recvMTU == 0 || socketType < 0 || state != QBluetoothSocket::ConnectedState)
+ {
emit q->error(QBluetoothSocket::UnknownSocketError);
return;
- }
- char *bufPtr = buffer.reserve(recvMTU);
- rxDescriptor.Set(reinterpret_cast<unsigned char *>(bufPtr), 0,recvMTU);
- if (socketType == QBluetoothSocket::RfcommSocket) {
- if(iBlankSocket)
- err = iBlankSocket->RecvOneOrMore(rxDescriptor, 0, rxLength);
- else
- err = iSocket->RecvOneOrMore(rxDescriptor, 0, rxLength);
- if (err != KErrNone) {
- socketError = QBluetoothSocket::NetworkError;
- emit q->error(socketError);
}
- } else if (socketType == QBluetoothSocket::L2capSocket) {
- if(iBlankSocket)
- err = iBlankSocket->Recv(rxDescriptor, 0);
- else
- err = iSocket->Recv(rxDescriptor, 0);
- if (err != KErrNone) {
- socketError = QBluetoothSocket::NetworkError;
- emit q->error(socketError);
+
+ TRAP(err, rxDescriptor.Set(reinterpret_cast<unsigned char *>(bufPtr), 0,recvMTU));
+ if(err != KErrNone)
+ {
+ emit q->error(QBluetoothSocket::UnknownSocketError);
+ return;
}
+ if (socketType == QBluetoothSocket::RfcommSocket) {
+ // cancel any pending recv operation
+ iSocket->CancelRecv();
+ err = iSocket->RecvOneOrMore(rxDescriptor, 0, rxLength);
+ if (err != KErrNone) {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ }
+ } else if (socketType == QBluetoothSocket::L2capSocket) {
+ // cancel any pending read operation
+ iSocket->CancelRead();
+ err = iSocket->Read(rxDescriptor);
+ if (err != KErrNone) {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ }
+ }
}
-}
void QBluetoothSocketPrivate::HandleAcceptCompleteL(TInt aErr)
{
qDebug() << __PRETTY_FUNCTION__ << ">> aErr=" << aErr;
Q_Q(QBluetoothSocket);
+ if(aErr != KErrNone)
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ return;
+ }
emit q->connected();
}
-void QBluetoothSocketPrivate::HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification &aEventNotification)
+void QBluetoothSocketPrivate::HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification& aEventNotification)
{
qDebug() << __PRETTY_FUNCTION__;
+ Q_Q(QBluetoothSocket);
+ if(aErr != KErrNone)
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ }
+ if(ENotifyPhysicalLinkDown & aEventNotification.EventType() || ENotifyPhysicalLinkError & aEventNotification.EventType())
+ {
+ q->setSocketState(QBluetoothSocket::ClosingState);
+ emit q->disconnected();
+ }
}
void QBluetoothSocketPrivate::HandleConnectCompleteL(TInt aErr)
@@ -243,69 +282,77 @@ void QBluetoothSocketPrivate::HandleConnectCompleteL(TInt aErr)
void QBluetoothSocketPrivate::HandleIoctlCompleteL(TInt aErr)
{
qDebug() << __PRETTY_FUNCTION__;
+ Q_Q(QBluetoothSocket);
+ if(aErr != KErrNone)
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ }
}
void QBluetoothSocketPrivate::HandleReceiveCompleteL(TInt aErr)
{
- receiving = false;
Q_Q(QBluetoothSocket);
if (aErr == KErrNone) {
- buffer.chop(recvMTU-rxDescriptor.Length());
+ if(buffer.size() == 0)
+ bufPtr = buffer.reserve(recvMTU);
+ if(bufPtr <= 0)
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ return;
+ }
+ buffer.chop(recvMTU - rxDescriptor.Length());
emit q->readyRead();
} else {
- socketError = QBluetoothSocket::UnknownSocketError;
- emit q->error(socketError);
+ // ignore disconnection it will be handled in baseband notification
+ if(aErr != KErrDisconnected)
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ writeSize = 0;
+ emit q->error(socketError);
+ }
}
}
void QBluetoothSocketPrivate::HandleSendCompleteL(TInt aErr)
{
Q_Q(QBluetoothSocket);
+ transmitting = false;
if (aErr == KErrNone) {
-// qint64 writeSize = txBuffer.size();
- qint64 writeSize = txDescriptor.Length();
- txBuffer.skip(writeSize);
- txTempBuffer.clear();
+ txArray.remove(0, writeSize);
emit q->bytesWritten(writeSize);
-
- if (state == QBluetoothSocket::ClosingState && txBuffer.size() == 0) {
- q->close();
- }
- else if (txBuffer.size()){
- txTempBuffer = txBuffer.readAll();
-
- txDescriptor.Set(reinterpret_cast<const unsigned char *>(txTempBuffer.constData()), txTempBuffer.length());
- TInt err = KErrNone;
- if(iBlankSocket)
- err = iBlankSocket->Send(txDescriptor, 0);
- else
- err = iSocket->Send(txDescriptor, 0);
-
- if (err != KErrNone) {
+ if (state == QBluetoothSocket::ClosingState)
+ {
+ writeSize = 0;
+ q->close();
+ }
+ else
+ {
+ if(!tryToSend())
+ {
socketError = QBluetoothSocket::UnknownSocketError;
- Q_Q(QBluetoothSocket);
+ writeSize = 0;
emit q->error(socketError);
- txTempBuffer.clear();
- return;
+ }
}
- }
} else {
- socketError = QBluetoothSocket::UnknownSocketError;
- emit q->error(socketError);
+ socketError = QBluetoothSocket::UnknownSocketError;
+ writeSize = 0;
+ emit q->error(socketError);
}
}
void QBluetoothSocketPrivate::HandleShutdownCompleteL(TInt aErr)
{
- qDebug() << __PRETTY_FUNCTION__ << ">> aErr=" << aErr;
Q_Q(QBluetoothSocket);
- if (aErr == KErrNone) {
- q->setSocketState(QBluetoothSocket::UnconnectedState);
- emit q->disconnected();
- } else {
- socketError = QBluetoothSocket::UnknownSocketError;
- emit q->error(socketError);
- }
+ // It doesn't matter if aErr is KErrNone or something else
+ // we consider the socket to be closed.
+ q->setSocketState(QBluetoothSocket::UnconnectedState);
+ transmitting = false;
+ writeSize = 0;
+ iSocket->AsyncDelete();
+ emit q->disconnected();
}
QSocketServerPrivate::QSocketServerPrivate()
@@ -332,124 +379,158 @@ QString QBluetoothSocketPrivate::localName() const
QBluetoothAddress QBluetoothSocketPrivate::localAddress() const
{
TBTSockAddr address;
-
+ if(!iSocket)
+ {
+ // need to return something anyway
+ return QBluetoothAddress();
+ }
iSocket->LocalName(address);
-
return qTBTDevAddrToQBluetoothAddress(address.BTAddr());
}
quint16 QBluetoothSocketPrivate::localPort() const
{
+ if(!iSocket)
+ {
+ // need to return something anyway
+ return 0;
+ }
return iSocket->LocalPort();
}
QString QBluetoothSocketPrivate::peerName() const
{
- RHostResolver resolver;
-
+ RHostResolver resolver;
+
+ if(getSocketServer()->socketServer.Handle()== 0 || !iSocket || state != QBluetoothSocket::ConnectedState )
+ {
+ // need to return something anyway
+ return QString();
+ }
TInt err = resolver.Open(getSocketServer()->socketServer, KBTAddrFamily, KBTLinkManager);
- if (err==KErrNone) {
+ if (err==KErrNone)
+ {
TNameEntry nameEntry;
TBTSockAddr sockAddr;
- if(iBlankSocket)
- iBlankSocket->RemoteName(sockAddr);
- else
- iSocket->RemoteName(sockAddr);
-
+ iSocket->RemoteName(sockAddr);
TInquirySockAddr address(sockAddr);
address.SetBTAddr(sockAddr.BTAddr());
address.SetAction(KHostResName|KHostResIgnoreCache); // ignore name stored in cache
err = resolver.GetByAddress(address, nameEntry);
- if(err == KErrNone) {
- TNameRecord name = nameEntry();
- m_peerName = QString((QChar*)name.iName.Ptr(),name.iName.Length());
- }
- }
+ if(err == KErrNone)
+ {
+ TNameRecord name = nameEntry();
+ QString qString((QChar*)name.iName.Ptr(),name.iName.Length());
+ m_peerName = qString;
+ }
+ }
resolver.Close();
-
- if (err != KErrNone) {
+
+ if(err != KErrNone)
+ {
+ // What is best? return an empty string or return the MAC address?
+ // In Symbian if we can't get the remote name we usually replace it with the MAC address
+ // but since Bluez implementation return an empty string we do the same here.
return QString();
- }
+ }
+
return m_peerName;
}
QBluetoothAddress QBluetoothSocketPrivate::peerAddress() const
{
TBTSockAddr address;
-
+ if(!iSocket)
+ {
+ // need to return something anyway
+ return QBluetoothAddress();
+ }
iSocket->RemoteName(address);
-
return qTBTDevAddrToQBluetoothAddress(address.BTAddr());
}
quint16 QBluetoothSocketPrivate::peerPort() const
{
TBTSockAddr address;
-
+ if(!iSocket)
+ {
+ // need to return something anyway
+ return 0;
+ }
iSocket->RemoteName(address);
-
return address.Port();
}
void QBluetoothSocketPrivate::close()
{
- if (state != QBluetoothSocket::ConnectedState && state != QBluetoothSocket::ListeningState)
- return;
Q_Q(QBluetoothSocket);
+ if(!iSocket || (state != QBluetoothSocket::ConnectedState && state != QBluetoothSocket::ListeningState))
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ return;
+ }
+ iSocket->CancelBasebandEventNotifier();
q->setSocketState(QBluetoothSocket::ClosingState);
-
iSocket->Shutdown(RSocket::ENormal);
}
void QBluetoothSocketPrivate::abort()
{
+ Q_Q(QBluetoothSocket);
+ if(!iSocket)
+ {
+ socketError = QBluetoothSocket::UnknownSocketError;
+ emit q->error(socketError);
+ return;
+ }
iSocket->CancelWrite();
-
+ transmitting = false;
+ writeSize = 0;
+ iSocket->CancelBasebandEventNotifier();
iSocket->Shutdown(RSocket::EImmediate);
-
// force active object to run and shutdown socket.
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
}
qint64 QBluetoothSocketPrivate::readData(char *data, qint64 maxSize)
{
- qint64 size = buffer.read(data, maxSize);
-
Q_Q(QBluetoothSocket);
+ if(data == 0 || maxSize <= 0)
+ {
+ return -1;
+ }
+ qint64 size = buffer.read(data, maxSize);
QMetaObject::invokeMethod(q, "_q_startReceive", Qt::QueuedConnection);
-
return size;
}
qint64 QBluetoothSocketPrivate::writeData(const char *data, qint64 maxSize)
{
- if(txBuffer.size() > 32768)
- return 0;
-
- if(txBuffer.size()){
- char *buf = txBuffer.reserve(maxSize);
- memcpy(buf, data, maxSize);
- return maxSize;
+ if(!iSocket || data == 0 || maxSize <= 0 || txMTU <= 0) {
+ return -1;
}
-
- char *buf = txBuffer.reserve(maxSize);
- memcpy(buf, data, maxSize);
-
- txDescriptor.Set(reinterpret_cast<const unsigned char *>(buf), maxSize);
- TInt err = KErrNone;
- if(iBlankSocket)
- err = iBlankSocket->Send(txDescriptor, 0);
+ if (!txArray.isEmpty())
+ {
+ txArray.append(QByteArray(data, maxSize));
+ }
else
- err = iSocket->Send(txDescriptor, 0);
-
- if (err != KErrNone) {
- socketError = QBluetoothSocket::NetworkError;
- Q_Q(QBluetoothSocket);
- emit q->error(socketError);
- return 0;
- }
-
- return maxSize;
+ {
+ txArray = QByteArray(data, maxSize);
+ }
+ // we try to send the data to the remote device
+ if(tryToSend())
+ {
+ // Warning : It doesn't mean the data have been sent
+ // to the remote device, it means that the data was
+ // at least stored in a local buffer.
+ return maxSize;
+ }
+ else
+ {
+ writeSize = 0;
+ return -1;
+ }
}
void QBluetoothSocketPrivate::_q_readNotify()
@@ -464,6 +545,10 @@ void QBluetoothSocketPrivate::_q_writeNotify()
bool QBluetoothSocketPrivate::setSocketDescriptor(int socketDescriptor, QBluetoothSocket::SocketType socketType,
QBluetoothSocket::SocketState socketState, QBluetoothSocket::OpenMode openMode)
{
+ Q_UNUSED(socketDescriptor);
+ Q_UNUSED(socketType);
+ Q_UNUSED(socketState);
+ Q_UNUSED(openMode);
return false;
}
@@ -477,6 +562,34 @@ qint64 QBluetoothSocketPrivate::bytesAvailable() const
return buffer.size();
}
+bool QBluetoothSocketPrivate::tryToSend()
+{
+ if(txArray.isEmpty())
+ return true;
+
+ if(transmitting)
+ return transmitting;
+
+ // we cannot write more than txMTU otherwise the extra data will just be lost
+ TInt dataLen = qMin(txArray.length(),txMTU);
+
+ TRAPD(err, txDescriptor.Set(reinterpret_cast<const unsigned char *>(txArray.constData()),dataLen));
+ if(err != KErrNone)
+ {
+ transmitting = false;
+ }
+ else
+ {
+ err = iSocket->Write(txDescriptor);
+ if (err != KErrNone)
+ {
+ transmitting = false;
+ }
+ writeSize = dataLen;
+ transmitting = true;
+ }
+ return transmitting;
+}
QTM_END_NAMESPACE
diff --git a/src/connectivity/bluetooth/qbluetoothtransfermanager.cpp b/src/connectivity/bluetooth/qbluetoothtransfermanager.cpp
index 8f32870320..af45655ca5 100644
--- a/src/connectivity/bluetooth/qbluetoothtransfermanager.cpp
+++ b/src/connectivity/bluetooth/qbluetoothtransfermanager.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
QBluetoothTransferManager uses OBEX to send get and put commands to remote devices.
*/
diff --git a/src/connectivity/bluetooth/qbluetoothtransferreply.cpp b/src/connectivity/bluetooth/qbluetoothtransferreply.cpp
index 9bdffa569c..cf4f8f5d70 100644
--- a/src/connectivity/bluetooth/qbluetoothtransferreply.cpp
+++ b/src/connectivity/bluetooth/qbluetoothtransferreply.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
In additional to a copy of the QBluetoothTransferRequest object used to create the request,
QBluetoothTransferReply contains the contents of the reply itself.
diff --git a/src/connectivity/bluetooth/qbluetoothtransferreply_bluez_p.h b/src/connectivity/bluetooth/qbluetoothtransferreply_bluez_p.h
index 2274efb70c..0a7c2fa7bb 100644
--- a/src/connectivity/bluetooth/qbluetoothtransferreply_bluez_p.h
+++ b/src/connectivity/bluetooth/qbluetoothtransferreply_bluez_p.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -63,7 +63,7 @@ class Q_CONNECTIVITY_EXPORT QBluetoothTransferReplyBluez : public QBluetoothTran
Q_OBJECT
public:
- QBluetoothTransferReplyBluez(QIODevice *input, QObject *parent = 0);
+ explicit QBluetoothTransferReplyBluez(QIODevice *input, QObject *parent = 0);
~QBluetoothTransferReplyBluez();
QVariant attribute(QBluetoothTransferRequest::Attribute code) const;
diff --git a/src/connectivity/bluetooth/qbluetoothtransferrequest.cpp b/src/connectivity/bluetooth/qbluetoothtransferrequest.cpp
index 5e1ac9e82f..d8aff3731a 100644
--- a/src/connectivity/bluetooth/qbluetoothtransferrequest.cpp
+++ b/src/connectivity/bluetooth/qbluetoothtransferrequest.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
QBluetoothTransferRequest is part of the Bluetooth Transfer API and is the class holding the
information necessary to initiate a transfer over Bluetooth.
@@ -81,7 +82,7 @@ QBluetoothTransferRequest::QBluetoothTransferRequest(const QBluetoothAddress &ad
:d_ptr(new QBluetoothTransferRequestPrivate)
{
Q_D(QBluetoothTransferRequest);
-
+
d->m_address = address;
}
@@ -111,7 +112,7 @@ QBluetoothTransferRequest::~QBluetoothTransferRequest()
QVariant QBluetoothTransferRequest::attribute(Attribute code, const QVariant &defaultValue) const
{
Q_D(const QBluetoothTransferRequest);
-
+
if (d->m_parameters.contains((int)code)) {
return d->m_parameters.value((int)code);
} else {
@@ -129,7 +130,7 @@ QVariant QBluetoothTransferRequest::attribute(Attribute code, const QVariant &de
void QBluetoothTransferRequest::setAttribute(Attribute code, const QVariant &value)
{
Q_D(QBluetoothTransferRequest);
-
+
d->m_parameters.insert((int)code, value);
}
@@ -139,7 +140,7 @@ void QBluetoothTransferRequest::setAttribute(Attribute code, const QVariant &val
QBluetoothAddress QBluetoothTransferRequest::address() const
{
Q_D(const QBluetoothTransferRequest);
-
+
return d->m_address;
}
@@ -160,7 +161,7 @@ bool QBluetoothTransferRequest::operator!=(const QBluetoothTransferRequest &othe
QBluetoothTransferRequest &QBluetoothTransferRequest::operator=(const QBluetoothTransferRequest &other)
{
Q_D(QBluetoothTransferRequest);
-
+
d->m_address = other.d_func()->m_address;
d->m_parameters = other.d_func()->m_parameters;
diff --git a/src/connectivity/bluetooth/qbluetoothuuid.cpp b/src/connectivity/bluetooth/qbluetoothuuid.cpp
index a4dbc6549a..1ab1f9f7f6 100644
--- a/src/connectivity/bluetooth/qbluetoothuuid.cpp
+++ b/src/connectivity/bluetooth/qbluetoothuuid.cpp
@@ -60,6 +60,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(QUuid, baseUuid, ("{00000000-0000-1000-8000-00805F9B34
/*!
\class QBluetoothUuid
\brief The QBluetoothUuid class provides a Bluetooth UUID.
+ \since 1.2
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
diff --git a/src/connectivity/bluetooth/ql2capserver.cpp b/src/connectivity/bluetooth/ql2capserver.cpp
index 0b47f2a03e..1490c9e015 100644
--- a/src/connectivity/bluetooth/ql2capserver.cpp
+++ b/src/connectivity/bluetooth/ql2capserver.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
QL2capServer is used to implement Bluetooth services over L2CAP.
diff --git a/src/connectivity/bluetooth/ql2capserver.h b/src/connectivity/bluetooth/ql2capserver.h
index 652a019455..99c20a582b 100644
--- a/src/connectivity/bluetooth/ql2capserver.h
+++ b/src/connectivity/bluetooth/ql2capserver.h
@@ -48,6 +48,7 @@
#include <qbluetoothaddress.h>
#include <qbluetooth.h>
+#include <qbluetoothsocket.h>
QT_BEGIN_HEADER
@@ -90,6 +91,12 @@ protected:
private:
Q_DECLARE_PRIVATE(QL2capServer)
+#ifdef QTM_SYMBIAN_BLUETOOTH
+ Q_PRIVATE_SLOT(d_func(), void _q_connected())
+ Q_PRIVATE_SLOT(d_func(), void _q_socketError(QBluetoothSocket::SocketError err))
+ Q_PRIVATE_SLOT(d_func(), void _q_disconnected())
+#endif //QTM_SYMBIAN_BLUETOOTH
+
#ifndef QT_NO_DBUS
Q_PRIVATE_SLOT(d_func(), void _q_newConnection())
#endif
diff --git a/src/connectivity/bluetooth/ql2capserver_p.h b/src/connectivity/bluetooth/ql2capserver_p.h
index c073af649e..b5e76d95f2 100644
--- a/src/connectivity/bluetooth/ql2capserver_p.h
+++ b/src/connectivity/bluetooth/ql2capserver_p.h
@@ -43,6 +43,7 @@
#define QL2CAPSERVER_P_H
#include <qmobilityglobal.h>
+#include <qbluetoothsocket.h>
#ifdef QTM_SYMBIAN_BLUETOOTH
#include <es_sock.h>
@@ -67,10 +68,6 @@ class QBluetoothSocketPrivate;
class QL2capServer;
class QL2capServerPrivate
-#ifdef QTM_SYMBIAN_BLUETOOTH
-: public MBluetoothSocketNotifier
-#endif //QTM_SYMBIAN_BLUETOOTH
-
{
Q_DECLARE_PUBLIC(QL2capServer)
@@ -78,20 +75,17 @@ public:
QL2capServerPrivate();
~QL2capServerPrivate();
+#ifdef QTM_SYMBIAN_BLUETOOTH
+ // private slots
+ void _q_connected();
+ void _q_socketError(QBluetoothSocket::SocketError err);
+ void _q_disconnected();
+#endif //QTM_SYMBIAN_BLUETOOTH
+
#ifndef QT_NO_DBUS
void _q_newConnection();
#endif
-#ifdef QTM_SYMBIAN_BLUETOOTH
- /* MBluetoothSocketNotifier virtual functions */
- void HandleAcceptCompleteL(TInt aErr);
- void HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification &aEventNotification);
- void HandleConnectCompleteL(TInt aErr);
- void HandleIoctlCompleteL(TInt aErr);
- void HandleReceiveCompleteL(TInt aErr);
- void HandleSendCompleteL(TInt aErr);
- void HandleShutdownCompleteL(TInt aErr);
-#endif //QTM_SYMBIAN_BLUETOOTH
public:
QBluetoothSocket *socket;
@@ -101,7 +95,6 @@ public:
QBluetooth::SecurityFlags securityFlags;
#ifdef QTM_SYMBIAN_BLUETOOTH
- QBluetoothSocket *pendingSocket;
mutable QList<QBluetoothSocket *> activeSockets;
QBluetoothSocketPrivate *ds;
#endif //QTM_SYMBIAN_BLUETOOTH
diff --git a/src/connectivity/bluetooth/ql2capserver_symbian.cpp b/src/connectivity/bluetooth/ql2capserver_symbian.cpp
index 2b5a765310..38e9f2b959 100644
--- a/src/connectivity/bluetooth/ql2capserver_symbian.cpp
+++ b/src/connectivity/bluetooth/ql2capserver_symbian.cpp
@@ -53,11 +53,8 @@
QTM_BEGIN_NAMESPACE
QL2capServerPrivate::QL2capServerPrivate()
-: pending(false),maxPendingConnections(1)
+: socket(0),pending(false),maxPendingConnections(1),securityFlags(QBluetooth::NoSecurity)
{
- socket = new QBluetoothSocket(QBluetoothSocket::L2capSocket);
- ds = socket->d_ptr;
- ds->iSocket->SetNotifier(*this);
}
QL2capServerPrivate::~QL2capServerPrivate()
@@ -68,9 +65,14 @@ QL2capServerPrivate::~QL2capServerPrivate()
void QL2capServer::close()
{
Q_D(QL2capServer);
-
+ if(!d->socket)
+ {
+ // there is no way to propagate the error to user
+ // so just ignore the problem.
+ return;
+ }
+ d->socket->setSocketState(QBluetoothSocket::ClosingState);
d->socket->close();
-
// force active object (socket) to run and shutdown socket.
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
}
@@ -78,8 +80,40 @@ void QL2capServer::close()
bool QL2capServer::listen(const QBluetoothAddress &address, quint16 port)
{
Q_D(QL2capServer);
-
+ // listen has already been called before
+ if(d->socket)
+ return true;
+
+ d->socket = new QBluetoothSocket(QBluetoothSocket::L2capSocket,this);
+
+ if(!d->socket)
+ {
+ return false;
+ }
+
+ d->ds = d->socket->d_ptr;
+
+ if(!d->ds)
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+
TL2CAPSockAddr addr;
+
+ if(!address.isNull())
+ {
+ // TBTDevAddr constructor may panic
+ TRAPD(err,addr.SetBTAddr(TBTDevAddr(address.toUInt64())));
+ if(err != KErrNone)
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+ }
+
if (port == 0)
addr.SetPort(KL2CAPPassiveAutoBind);
else
@@ -88,12 +122,16 @@ bool QL2capServer::listen(const QBluetoothAddress &address, quint16 port)
TBTServiceSecurity security;
switch (d->securityFlags) {
case QBluetooth::Authentication:
- security.SetAuthentication(ETrue);
+ security.SetAuthentication(EMitmDesired);
break;
case QBluetooth::Authorization:
security.SetAuthorisation(ETrue);
break;
case QBluetooth::Encryption:
+ // "Secure" is BlueZ specific we just make sure the code remain compatible
+ case QBluetooth::Secure:
+ // authentication required
+ security.SetAuthentication(EMitmDesired);
security.SetEncryption(ETrue);
break;
case QBluetooth::NoSecurity:
@@ -101,35 +139,59 @@ bool QL2capServer::listen(const QBluetoothAddress &address, quint16 port)
break;
}
addr.SetSecurity(security);
- d->ds->iSocket->Bind(addr);
- d->socket->setSocketState(QBluetoothSocket::BoundState);
-
- d->ds->iSocket->Listen(d->maxPendingConnections);
-
- d->pendingSocket = new QBluetoothSocket(QBluetoothSocket::L2capSocket, this);
-
- QBluetoothSocketPrivate *pd = d->pendingSocket->d_ptr;
- pd->ensureBlankNativeSocket();
- if (d->ds->iSocket->Accept(*pd->iBlankSocket) == KErrNone)
+ if(d->ds->iSocket->Bind(addr) == KErrNone)
+ {
+ d->socket->setSocketState(QBluetoothSocket::BoundState);
+ }
+ else
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+
+ if(d->ds->iSocket->Listen(d->maxPendingConnections) != KErrNone)
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+ // unknown socket type is used for blank socket
+ QBluetoothSocket *pendingSocket = new QBluetoothSocket(QBluetoothSocket::UnknownSocketType, this);
+ if(!pendingSocket)
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+ QBluetoothSocketPrivate *pd = pendingSocket->d_ptr;
+ pd->ensureBlankNativeSocket(QBluetoothSocket::L2capSocket);
+ connect(d->socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
+ connect(d->socket, SIGNAL(connected()), this, SLOT(connected()));
+ connect(d->socket, SIGNAL(error(QBluetoothSocket::SocketError)), this, SLOT(socketError(QBluetoothSocket::SocketError)));
+ if (d->ds->iSocket->Accept(*pd->iSocket) == KErrNone)
+ {
d->socket->setSocketState(QBluetoothSocket::ListeningState);
+ d->activeSockets.append(pendingSocket);
+ return true;
+ }
else
- d->socket->close();
-
- return d->socket->state() == QBluetoothSocket::ListeningState;
+ {
+ delete d->socket, pendingSocket;
+ d->socket = 0;
+ return false;
+ }
}
void QL2capServer::setMaxPendingConnections(int numConnections)
{
Q_D(QL2capServer);
-
- if (d->socket->state() == QBluetoothSocket::UnconnectedState)
- d->maxPendingConnections = numConnections;
+ d->maxPendingConnections = numConnections;
}
bool QL2capServer::hasPendingConnections() const
{
Q_D(const QL2capServer);
-
return !d->activeSockets.isEmpty();
}
@@ -141,98 +203,87 @@ QBluetoothSocket *QL2capServer::nextPendingConnection()
return 0;
QBluetoothSocket *next = d->activeSockets.takeFirst();
- QBluetoothSocketPrivate *n = next->d_ptr;
-
- n->startServerSideReceive();
-
return next;
}
QBluetoothAddress QL2capServer::serverAddress() const
{
Q_D(const QL2capServer);
-
- return d->socket->localAddress();
+ if(d->socket)
+ return d->socket->localAddress();
+ else
+ return QBluetoothAddress();
}
quint16 QL2capServer::serverPort() const
{
Q_D(const QL2capServer);
-
- return d->socket->localPort();
+ if(d->socket)
+ return d->socket->localPort();
+ else
+ return 0;
}
-void QL2capServerPrivate::HandleAcceptCompleteL(TInt aErr)
+void QL2capServerPrivate::_q_connected()
{
Q_Q(QL2capServer);
-
- if (aErr == KErrNone) {
- pendingSocket->setSocketState(QBluetoothSocket::ConnectedState);
+ if(!activeSockets.isEmpty())
+ {
+ // update state of the pending socket and start receiving
+ (activeSockets.last())->setSocketState(QBluetoothSocket::ConnectedState);
+ (activeSockets.last())->d_ptr->startReceive();
+ }
+ else
+ return;
+ emit q->newConnection();
+ QBluetoothSocket *pendingSocket = new QBluetoothSocket(QBluetoothSocket::UnknownSocketType);
+ if(!pendingSocket)
+ {
+ delete socket;
+ socket = 0;
+ return;
+ }
+ QBluetoothSocketPrivate *pd = pendingSocket->d_ptr;
+ pd->ensureBlankNativeSocket(QBluetoothSocket::L2capSocket);
+ if (ds->iSocket->Accept(*pd->iSocket) == KErrNone)
+ {
+ socket->setSocketState(QBluetoothSocket::ListeningState);
activeSockets.append(pendingSocket);
-
- QBluetoothSocketPrivate *pd = pendingSocket->d_ptr;
-
- pd->iSocket->Accept(*pd->iBlankSocket);
-
- emit q->newConnection();
- } else if (aErr == KErrCancel) {
- // server is closing
- delete pendingSocket;
- pendingSocket = 0;
- socket->setSocketState(QBluetoothSocket::BoundState);
- } else {
- qDebug() << __PRETTY_FUNCTION__ << aErr;
return;
- }
-}
-
-void QL2capServerPrivate::HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification &aEventNotification)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
-}
-
-void QL2capServerPrivate::HandleConnectCompleteL(TInt aErr)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
-}
-
-void QL2capServerPrivate::HandleIoctlCompleteL(TInt aErr)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
-}
-
-void QL2capServerPrivate::HandleReceiveCompleteL(TInt aErr)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
+ }
+ else
+ {
+ // we might reach this statement if we have reach
+ // maxPendingConnections
+ qDebug() << "QL2capServer::connected accept failed";
+ delete socket, pendingSocket;
+ socket = 0;
+ return;
+ }
}
-void QL2capServerPrivate::HandleSendCompleteL(TInt aErr)
+void QL2capServerPrivate::_q_disconnected()
{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
+ delete socket;
+ socket = 0;
}
-void QL2capServerPrivate::HandleShutdownCompleteL(TInt aErr)
+void QL2capServerPrivate::_q_socketError(QBluetoothSocket::SocketError err)
{
- if (aErr == KErrNone)
- socket->setSocketState(QBluetoothSocket::UnconnectedState);
- else
- qDebug() << __PRETTY_FUNCTION__ << aErr;
+ delete socket;
+ socket = 0;
}
void QL2capServer::setSecurityFlags(QBluetooth::SecurityFlags security)
{
Q_D(QL2capServer);
-
d->securityFlags = security;
}
QBluetooth::SecurityFlags QL2capServer::securityFlags() const
{
Q_D(const QL2capServer);
-
return d->securityFlags;
}
-
-
QTM_END_NAMESPACE
diff --git a/src/connectivity/bluetooth/qrfcommserver.cpp b/src/connectivity/bluetooth/qrfcommserver.cpp
index 76fa17c8da..d16e73d662 100644
--- a/src/connectivity/bluetooth/qrfcommserver.cpp
+++ b/src/connectivity/bluetooth/qrfcommserver.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
+ \since 1.2
QRfcommServer is used to implement Bluetooth services over RFCOMM.
diff --git a/src/connectivity/bluetooth/qrfcommserver.h b/src/connectivity/bluetooth/qrfcommserver.h
index 49dc71bf83..3f348dddb1 100644
--- a/src/connectivity/bluetooth/qrfcommserver.h
+++ b/src/connectivity/bluetooth/qrfcommserver.h
@@ -48,6 +48,7 @@
#include <qbluetoothaddress.h>
#include <qbluetooth.h>
+#include <qbluetoothsocket.h>
QT_BEGIN_HEADER
@@ -90,6 +91,12 @@ protected:
private:
Q_DECLARE_PRIVATE(QRfcommServer)
+#ifdef QTM_SYMBIAN_BLUETOOTH
+ Q_PRIVATE_SLOT(d_func(), void _q_connected())
+ Q_PRIVATE_SLOT(d_func(), void _q_socketError(QBluetoothSocket::SocketError err))
+ Q_PRIVATE_SLOT(d_func(), void _q_disconnected())
+#endif //QTM_SYMBIAN_BLUETOOTH
+
#ifndef QT_NO_DBUS
Q_PRIVATE_SLOT(d_func(), void _q_newConnection())
#endif
diff --git a/src/connectivity/bluetooth/qrfcommserver_p.h b/src/connectivity/bluetooth/qrfcommserver_p.h
index 7a7cbfb6df..da6e28b9ad 100644
--- a/src/connectivity/bluetooth/qrfcommserver_p.h
+++ b/src/connectivity/bluetooth/qrfcommserver_p.h
@@ -44,6 +44,7 @@
#include <QtGlobal>
#include <QList>
+#include <qbluetoothsocket.h>
#ifdef QTM_SYMBIAN_BLUETOOTH
#include <es_sock.h>
@@ -68,9 +69,6 @@ class QBluetoothSocketPrivate;
class QRfcommServer;
class QRfcommServerPrivate
-#ifdef QTM_SYMBIAN_BLUETOOTH
-: public MBluetoothSocketNotifier
-#endif
{
Q_DECLARE_PUBLIC(QRfcommServer)
@@ -79,15 +77,11 @@ public:
~QRfcommServerPrivate();
#ifdef QTM_SYMBIAN_BLUETOOTH
- /* MBluetoothSocketNotifier virtual functions */
- void HandleAcceptCompleteL(TInt aErr);
- void HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification &aEventNotification);
- void HandleConnectCompleteL(TInt aErr);
- void HandleIoctlCompleteL(TInt aErr);
- void HandleReceiveCompleteL(TInt aErr);
- void HandleSendCompleteL(TInt aErr);
- void HandleShutdownCompleteL(TInt aErr);
-#endif
+ // private slots
+ void _q_connected();
+ void _q_socketError(QBluetoothSocket::SocketError err);
+ void _q_disconnected();
+#endif //QTM_SYMBIAN_BLUETOOTH
#ifndef QT_NO_DBUS
void _q_newConnection();
@@ -97,7 +91,6 @@ public:
QBluetoothSocket *socket;
#ifdef QTM_SYMBIAN_BLUETOOTH
- QBluetoothSocket *pendingSocket;
mutable QList<QBluetoothSocket *> activeSockets;
QBluetoothSocketPrivate *ds;
#endif
diff --git a/src/connectivity/bluetooth/qrfcommserver_symbian.cpp b/src/connectivity/bluetooth/qrfcommserver_symbian.cpp
index d020958fd5..77cdd3da6a 100644
--- a/src/connectivity/bluetooth/qrfcommserver_symbian.cpp
+++ b/src/connectivity/bluetooth/qrfcommserver_symbian.cpp
@@ -54,11 +54,8 @@
QTM_BEGIN_NAMESPACE
QRfcommServerPrivate::QRfcommServerPrivate()
-: pendingSocket(0), maxPendingConnections(1), securityFlags(QBluetooth::NoSecurity)
+: socket(0),maxPendingConnections(1),securityFlags(QBluetooth::NoSecurity)
{
- socket = new QBluetoothSocket(QBluetoothSocket::RfcommSocket);
- ds = socket->d_ptr;
- ds->iSocket->SetNotifier(*this);
}
QRfcommServerPrivate::~QRfcommServerPrivate()
@@ -69,9 +66,14 @@ QRfcommServerPrivate::~QRfcommServerPrivate()
void QRfcommServer::close()
{
Q_D(QRfcommServer);
-
+ if(!d->socket)
+ {
+ // there is no way to propagate the error to user
+ // so just ignore the problem.
+ return;
+ }
+ d->socket->setSocketState(QBluetoothSocket::ClosingState);
d->socket->close();
-
// force active object (socket) to run and shutdown socket.
qApp->processEvents(QEventLoop::ExcludeUserInputEvents);
}
@@ -79,186 +81,208 @@ void QRfcommServer::close()
bool QRfcommServer::listen(const QBluetoothAddress &address, quint16 port)
{
Q_D(QRfcommServer);
- qDebug() << __PRETTY_FUNCTION__ << ">> " << this << address.toString() << port;
+ // listen has already been called before
+ if(d->socket)
+ return true;
+
+ d->socket = new QBluetoothSocket(QBluetoothSocket::RfcommSocket,this);
+
+ if(!d->socket)
+ {
+ return false;
+ }
+
+ d->ds = d->socket->d_ptr;
+
+ if(!d->ds)
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+
+ d->ds->ensureNativeSocket(QBluetoothSocket::RfcommSocket);
TRfcommSockAddr addr;
- if (!address.isNull())
- addr.SetBTAddr(TBTDevAddr(address.toUInt64()));
- else
- addr.SetBTAddr(TBTDevAddr(Q_UINT64_C(0)));
+ if(!address.isNull())
+ {
+ // TBTDevAddr constructor may panic
+ TRAPD(err,addr.SetBTAddr(TBTDevAddr(address.toUInt64())));
+ if(err != KErrNone)
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+ }
if (port == 0)
addr.SetPort(KRfcommPassiveAutoBind);
else
addr.SetPort(port);
- TBTServiceSecurity security;
+ TBTServiceSecurity security;
switch (d->securityFlags) {
case QBluetooth::Authentication:
- security.SetAuthentication(ETrue);
+ security.SetAuthentication(EMitmDesired);
break;
case QBluetooth::Authorization:
security.SetAuthorisation(ETrue);
break;
case QBluetooth::Encryption:
+ // "Secure" is BlueZ specific we just make sure the code remain compatible
+ case QBluetooth::Secure:
+ // authentication required
+ security.SetAuthentication(EMitmDesired);
security.SetEncryption(ETrue);
break;
case QBluetooth::NoSecurity:
default:
break;
}
- addr.SetSecurity(security);
-
- int err;
- if ((err=d->ds->iSocket->Bind(addr)) == KErrNone) {
+ if(d->ds->iSocket->Bind(addr) == KErrNone)
+ {
d->socket->setSocketState(QBluetoothSocket::BoundState);
- } else {
- qDebug() << __PRETTY_FUNCTION__ << "Socket bind failed, err=" << err;
- d->socket->close();
+ }
+ else
+ {
+ delete d->socket;
+ d->socket = 0;
return false;
- }
+ }
- if ((err=d->ds->iSocket->Listen(d->maxPendingConnections)) != KErrNone) {
- qDebug() << __PRETTY_FUNCTION__ << "Socket listen failed, err=" << err;
- d->socket->close();
+ if(d->ds->iSocket->Listen(d->maxPendingConnections) != KErrNone)
+ {
+ delete d->socket;
+ d->socket = 0;
return false;
- }
+ }
- d->pendingSocket = new QBluetoothSocket(QBluetoothSocket::RfcommSocket, this);
-
- QBluetoothSocketPrivate *pd = d->pendingSocket->d_ptr;
-
- pd->ensureBlankNativeSocket();
-
- if (d->ds->iSocket->Accept(*pd->iBlankSocket) == KErrNone)
+ QBluetoothSocket *pendingSocket = new QBluetoothSocket(QBluetoothSocket::UnknownSocketType, this);
+ if(!pendingSocket)
+ {
+ delete d->socket;
+ d->socket = 0;
+ return false;
+ }
+ QBluetoothSocketPrivate *pd = pendingSocket->d_ptr;
+ pd->ensureBlankNativeSocket(QBluetoothSocket::RfcommSocket);
+ connect(d->socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
+ connect(d->socket, SIGNAL(connected()), this, SLOT(connected()));
+ connect(d->socket, SIGNAL(error(QBluetoothSocket::SocketError)), this, SLOT(socketError(QBluetoothSocket::SocketError)));
+ if (d->ds->iSocket->Accept(*pd->iSocket) == KErrNone)
+ {
d->socket->setSocketState(QBluetoothSocket::ListeningState);
+ d->activeSockets.append(pendingSocket);
+ return true;
+ }
else
- d->socket->close();
-
- return d->socket->state() == QBluetoothSocket::ListeningState;
+ {
+ delete d->socket, pendingSocket;
+ d->socket = 0;
+ return false;
+ }
}
void QRfcommServer::setMaxPendingConnections(int numConnections)
{
Q_D(QRfcommServer);
-
- if (d->socket->state() == QBluetoothSocket::UnconnectedState)
- d->maxPendingConnections = numConnections;
+ d->maxPendingConnections = numConnections;
}
QBluetoothAddress QRfcommServer::serverAddress() const
{
Q_D(const QRfcommServer);
-
- if (d->socket->state() == QBluetoothSocket::UnconnectedState)
+ if(d->socket)
+ return d->socket->localAddress();
+ else
return QBluetoothAddress();
-
- return d->ds->localAddress();
}
quint16 QRfcommServer::serverPort() const
{
Q_D(const QRfcommServer);
-
- if (d->socket->state() == QBluetoothSocket::UnconnectedState)
+ if(d->socket)
+ return d->socket->localPort();
+ else
return 0;
-
- return d->ds->iSocket->LocalPort();
}
bool QRfcommServer::hasPendingConnections() const
{
Q_D(const QRfcommServer);
-
return !d->activeSockets.isEmpty();
}
QBluetoothSocket *QRfcommServer::nextPendingConnection()
{
Q_D(QRfcommServer);
-
if (d->activeSockets.isEmpty())
return 0;
QBluetoothSocket *next = d->activeSockets.takeFirst();
- QBluetoothSocketPrivate *n = next->d_ptr;
-
- n->startServerSideReceive();
-
return next;
}
-void QRfcommServerPrivate::HandleAcceptCompleteL(TInt aErr)
+void QRfcommServerPrivate::_q_connected()
{
Q_Q(QRfcommServer);
-
- if (aErr == KErrNone) {
- pendingSocket->setSocketState(QBluetoothSocket::ConnectedState);
+ if(!activeSockets.isEmpty())
+ {
+ // update state of the pending socket and start receiving
+ (activeSockets.last())->setSocketState(QBluetoothSocket::ConnectedState);
+ (activeSockets.last())->d_ptr->startReceive();
+ }
+ else
+ return;
+ emit q->newConnection();
+ QBluetoothSocket *pendingSocket = new QBluetoothSocket(QBluetoothSocket::UnknownSocketType);
+ if(!pendingSocket)
+ {
+ delete socket;
+ socket = 0;
+ return;
+ }
+ QBluetoothSocketPrivate *pd = pendingSocket->d_ptr;
+ pd->ensureBlankNativeSocket(QBluetoothSocket::RfcommSocket);
+ if (ds->iSocket->Accept(*pd->iSocket) == KErrNone)
+ {
+ socket->setSocketState(QBluetoothSocket::ListeningState);
activeSockets.append(pendingSocket);
-
- QBluetoothSocketPrivate *pd = pendingSocket->d_ptr; // ToDo: probably need a new socket here
-
- pd->iSocket->Accept(*pd->iBlankSocket);
- emit q->newConnection();
- } else if (aErr == KErrCancel) {
- // server is closing
- delete pendingSocket;
- pendingSocket = 0;
- socket->setSocketState(QBluetoothSocket::BoundState);
- } else {
- // accept failed for unknown reason
- socket->setSocketState(QBluetoothSocket::BoundState);
- qDebug() << __PRETTY_FUNCTION__ << aErr;
return;
- }
-}
-
-void QRfcommServerPrivate::HandleActivateBasebandEventNotifierCompleteL(TInt aErr, TBTBasebandEventNotification &aEventNotification)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
-}
-
-void QRfcommServerPrivate::HandleConnectCompleteL(TInt aErr)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
-}
-
-void QRfcommServerPrivate::HandleIoctlCompleteL(TInt aErr)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
-}
-
-void QRfcommServerPrivate::HandleReceiveCompleteL(TInt aErr)
-{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
+ }
+ else
+ {
+ // we might reach this statement if we have reach
+ // maxPendingConnections
+ delete socket, pendingSocket;
+ socket = 0;
+ return;
+ }
}
-void QRfcommServerPrivate::HandleSendCompleteL(TInt aErr)
+void QRfcommServerPrivate::_q_disconnected()
{
- qDebug() << __PRETTY_FUNCTION__ << aErr;
+ delete socket;
+ socket = 0;
}
-void QRfcommServerPrivate::HandleShutdownCompleteL(TInt aErr)
+void QRfcommServerPrivate::_q_socketError(QBluetoothSocket::SocketError err)
{
- if (aErr == KErrNone)
- socket->setSocketState(QBluetoothSocket::UnconnectedState);
- else
- qDebug() << __PRETTY_FUNCTION__ << aErr;
+ delete socket;
+ socket = 0;
}
void QRfcommServer::setSecurityFlags(QBluetooth::SecurityFlags security)
{
Q_D(QRfcommServer);
-
d->securityFlags = security;
}
QBluetooth::SecurityFlags QRfcommServer::securityFlags() const
{
Q_D(const QRfcommServer);
-
return d->securityFlags;
}
-
QTM_END_NAMESPACE
diff --git a/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.cpp b/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.cpp
index ea2d540b48..314fc3fea3 100644
--- a/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.cpp
+++ b/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.cpp
@@ -58,6 +58,7 @@ QTM_BEGIN_NAMESPACE
/*! \internal
\class BluetoothLinkManagerDeviceDiscoverer
\brief The BluetoothLinkManagerDeviceDiscoverer class searches other bluetooth devices.
+ \since 1.2
\ingroup connectivity-bluetooth
\inmodule QtConnectivity
@@ -79,6 +80,7 @@ BluetoothLinkManagerDeviceDiscoverer::BluetoothLinkManagerDeviceDiscoverer(RSock
: QObject(parent)
, CActive(CActive::EPriorityStandard)
, m_socketServer(socketServer)
+ , m_pendingCancel(false), m_pendingStart(false), m_discoveryType (0)
{
TInt result;
@@ -107,13 +109,17 @@ BluetoothLinkManagerDeviceDiscoverer::~BluetoothLinkManagerDeviceDiscoverer()
/*!
Starts up device discovery. When devices are discovered signal deviceDiscovered is emitted.
After signal deviceDiscoveryComplete() is emitted new discovery request can be made.
- Returns false if discovery is ongoing and new discovery is started.
*/
-bool BluetoothLinkManagerDeviceDiscoverer::startDiscovery(const uint discoveryType)
+void BluetoothLinkManagerDeviceDiscoverer::startDiscovery(const uint discoveryType)
{
- bool returnValue = false;
+ m_discoveryType = discoveryType;
+
+ if(m_pendingCancel == true) {
+ m_pendingStart = true;
+ m_pendingCancel = false;
+ return;
+ }
if (!IsActive()) {
- returnValue = true;
m_addr.SetIAC( discoveryType );
#ifdef EIR_SUPPORTED
m_addr.SetAction(KHostResInquiry | KHostResName | KHostResIgnoreCache | KHostResEir);
@@ -123,24 +129,67 @@ bool BluetoothLinkManagerDeviceDiscoverer::startDiscovery(const uint discoveryTy
m_hostResolver.GetByAddress(m_addr, m_entry, iStatus);
SetActive();
}
- return returnValue;
}
+
+void BluetoothLinkManagerDeviceDiscoverer::stopDiscovery()
+{
+ m_pendingStart = false;
+ if (IsActive() && !m_pendingCancel) {
+ m_pendingCancel = true;
+ m_hostResolver.Cancel();
+ }
+}
+
/*!
Informs that our request has been prosessed and the data is available to be used.
*/
void BluetoothLinkManagerDeviceDiscoverer::RunL()
{
- if (iStatus.Int() == KErrHostResNoMoreResults) {
- emit deviceDiscoveryComplete(iStatus.Int());
- } else if (iStatus.Int() != KErrNone) {
+ qDebug() << __PRETTY_FUNCTION__ << iStatus.Int();
+ switch (iStatus.Int()) {
+ case KErrNone: // found device
+ if (m_pendingCancel && !m_pendingStart) {
+ m_pendingCancel = false;
+ emit canceled();
+ } else {
+ m_pendingCancel = false;
+ m_pendingStart = false;
+ // get next (possible) discovered device
+ m_hostResolver.Next(m_entry, iStatus);
+ SetActive();
+ emit deviceDiscovered(currentDeviceDataToQBluetoothDeviceInfo());
+ }
+ break;
+ case KErrHostResNoMoreResults: // done with search
+ if (m_pendingCancel && !m_pendingStart){ // search was canceled prior to finishing
+ m_pendingCancel = false;
+ m_pendingStart = false;
+ emit canceled();
+ }
+ else if (m_pendingStart){ // search was restarted just prior to finishing
+ m_pendingStart = false;
+ m_pendingCancel = false;
+ startDiscovery(m_discoveryType);
+ } else { // search completed normally
+ m_pendingStart = false;
+ m_pendingCancel = false;
+ emit deviceDiscoveryComplete();
+ }
+ break;
+ case KErrCancel: // user canceled search
+ if (m_pendingStart){ // user activated search after cancel
+ m_pendingStart = false;
+ m_pendingCancel = false;
+ startDiscovery(m_discoveryType);
+ } else { // standard user cancel case
+ m_pendingCancel = false;
+ emit canceled();
+ }
+ break;
+ default:
+ m_pendingStart = false;
+ m_pendingCancel = false;
setError(iStatus.Int());
- } else {
- // get next (possible) discovered device
- m_hostResolver.Next(m_entry, iStatus);
- // set this AO active ie running
- SetActive();
- // finally inform that we have found a new device
- emit deviceDiscovered(currentDeviceDataToQBluetoothDeviceInfo());
}
}
/*!
@@ -157,6 +206,15 @@ TInt BluetoothLinkManagerDeviceDiscoverer::RunError(TInt aError)
return KErrNone;
}
+bool BluetoothLinkManagerDeviceDiscoverer::isReallyActive() const
+{
+ if(m_pendingStart)
+ return true;
+ if(m_pendingCancel)
+ return false;
+ return IsActive();
+}
+
/*!
Transforms Symbian device name, address and service classes to QBluetootDeviceInfo.
*/
@@ -166,17 +224,31 @@ QBluetoothDeviceInfo BluetoothLinkManagerDeviceDiscoverer::currentDeviceDataToQB
#ifdef EIR_SUPPORTED
TBluetoothNameRecordWrapper eir(m_entry());
TInt bufferlength = 0;
+ TInt err = KErrNone;
QString deviceName;
bufferlength = eir.GetDeviceNameLength();
if (bufferlength > 0) {
TBool nameComplete;
- HBufC *deviceNameBuffer = HBufC::NewLC(bufferlength);
- TPtr ptr = deviceNameBuffer->Des();
- TInt error = eir.GetDeviceName(ptr,nameComplete);
- if (error == KErrNone && nameComplete)
- deviceName = QString::fromUtf16(ptr.Ptr(), ptr.Length()).toUpper();
- CleanupStack::PopAndDestroy(deviceNameBuffer);
+ HBufC *deviceNameBuffer = 0;
+ TRAP(err,deviceNameBuffer = HBufC::NewLC(bufferlength));
+ if(err)
+ deviceName = QString();
+ else
+ {
+ TPtr ptr = deviceNameBuffer->Des();
+ err = eir.GetDeviceName(ptr,nameComplete);
+ if (err == KErrNone /*&& nameComplete*/)
+ {
+ if(!nameComplete)
+ qWarning() << "device name incomplete";
+ // isn't it better to get an incomplete name than getting nothing?
+ deviceName = QString::fromUtf16(ptr.Ptr(), ptr.Length()).toUpper();
+ }
+ else
+ deviceName = QString();
+ CleanupStack::PopAndDestroy(deviceNameBuffer);
+ }
}
QList<QBluetoothUuid> serviceUidList;
@@ -220,11 +292,19 @@ QBluetoothDeviceInfo BluetoothLinkManagerDeviceDiscoverer::currentDeviceDataToQB
bufferlength = eir.GetVendorSpecificDataLength();
if (bufferlength > 0) {
- HBufC8 *msd = HBufC8::NewLC(bufferlength);
- TPtr8 temp = msd->Des();
- if (eir.GetVendorSpecificData(temp))
- manufacturerData = s60Desc8ToQByteArray(temp);
- CleanupStack::PopAndDestroy(msd);
+ HBufC8 *msd = 0;
+ TRAP(err,HBufC8::NewLC(bufferlength));
+ if(err)
+ manufacturerData = QByteArray();
+ else
+ {
+ TPtr8 temp = msd->Des();
+ if (eir.GetVendorSpecificData(temp))
+ manufacturerData = s60Desc8ToQByteArray(temp);
+ else
+ manufacturerData = QByteArray();
+ CleanupStack::PopAndDestroy(msd);
+ }
}
// Get transmission power level
@@ -270,30 +350,41 @@ QBluetoothDeviceInfo BluetoothLinkManagerDeviceDiscoverer::currentDeviceDataToQB
void BluetoothLinkManagerDeviceDiscoverer::setError(int errorCode)
{
- QString errorDescription;
+ qDebug() << __PRETTY_FUNCTION__ << "errorCode=" << errorCode;
+ QString errorString;
switch (errorCode) {
case KLinkManagerErrBase:
- errorDescription.append("Link manager base error value or Insufficient baseband resources error value");
+ errorString.append("Link manager base error value or Insufficient baseband resources error value");
+ emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString);
break;
case KErrProxyWriteNotAvailable:
- errorDescription.append("Proxy write not available error value");
+ errorString.append("Proxy write not available error value");
+ emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString);
break;
case KErrReflexiveBluetoothLink:
- errorDescription.append("Reflexive BT link error value");
+ errorString.append("Reflexive BT link error value");
+ emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString);
break;
case KErrPendingPhysicalLink:
- errorDescription.append("Physical link connection already pending when trying to connect the physical link");
+ errorString.append("Physical link connection already pending when trying to connect the physical link");
+ emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString);
break;
case KErrNotReady:
- errorDescription.append("KErrNotReady");
+ errorString.append("KErrNotReady");
+ emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString);
+ case KErrCancel:
+ errorString.append("KErrCancel");
+ qDebug() << "emitting canceled";
+ emit canceled();
+ break;
+ case KErrNone:
+ // do nothing
+ break;
default:
- errorDescription.append("Symbian errorCode =") + errorCode;
+ errorString = QString("Symbian errorCode = %1").arg(errorCode);
+ emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError, errorString);
break;
}
- if (errorCode == KErrCancel)
- emit canceled();
- else if (errorCode != KErrNone)
- emit linkManagerError(QBluetoothDeviceDiscoveryAgent::UnknownError);
}
#include "moc_bluetoothlinkmanagerdevicediscoverer.cpp"
diff --git a/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.h b/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.h
index 5d8d4fd7d2..505f1ebe75 100644
--- a/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.h
+++ b/src/connectivity/bluetooth/symbian/bluetoothlinkmanagerdevicediscoverer.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -74,12 +74,15 @@ class QBluetoothDeviceInfo;
class BluetoothLinkManagerDeviceDiscoverer : public QObject, public CActive
{
Q_OBJECT
+
public:
- BluetoothLinkManagerDeviceDiscoverer(RSocketServ& aSocketServ, QObject *parent = 0);
+ explicit BluetoothLinkManagerDeviceDiscoverer(RSocketServ& aSocketServ, QObject *parent = 0);
~BluetoothLinkManagerDeviceDiscoverer();
- bool startDiscovery(const uint discoveryType);
+ void startDiscovery(const uint discoveryType);
+ void stopDiscovery();
+ bool isReallyActive() const;
protected: // From CActive
void RunL();
@@ -87,6 +90,7 @@ protected: // From CActive
TInt RunError(TInt aError);
private:
+
void setError(int error);
private: // private helper functions
@@ -94,9 +98,9 @@ private: // private helper functions
QBluetoothDeviceInfo currentDeviceDataToQBluetoothDeviceInfo() const;
Q_SIGNALS: // SIGNALS
- void deviceDiscoveryComplete(int aError);
+ void deviceDiscoveryComplete();
void deviceDiscovered(const QBluetoothDeviceInfo &device);
- void linkManagerError(QBluetoothDeviceDiscoveryAgent::Error error);
+ void linkManagerError(QBluetoothDeviceDiscoveryAgent::Error error, QString errorString);
void canceled();
private:
@@ -109,6 +113,9 @@ private:
TNameEntry m_entry;
TBool m_LIAC;
+ bool m_pendingCancel;
+ bool m_pendingStart;
+ uint m_discoveryType;
};
QTM_END_NAMESPACE
diff --git a/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.cpp b/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.cpp
index f785ecd06b..47419b7fc4 100644
--- a/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.cpp
+++ b/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -125,7 +125,7 @@ void BluetoothSymbianPairingAdapter::DisconnectComplete( TBTDevAddr& aAddr, TInt
void BluetoothSymbianPairingAdapter::PairingComplete( TBTDevAddr& aAddr, TInt aErr )
{
- m_pairingErrorString = QString();
+ m_pairingErrorString.clear();
m_pairingOngoing = false;
switch (aErr) {
diff --git a/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.h b/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.h
index 798accc4fa..6af005652c 100644
--- a/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.h
+++ b/src/connectivity/bluetooth/symbian/bluetoothsymbianpairingadapter.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -73,7 +73,7 @@ class BluetoothSymbianPairingAdapter : public QObject, public MBTEngConnObserver
Q_OBJECT
public:
- BluetoothSymbianPairingAdapter(const QBluetoothAddress &address, QObject *parent = 0);
+ explicit BluetoothSymbianPairingAdapter(const QBluetoothAddress &address, QObject *parent = 0);
~BluetoothSymbianPairingAdapter();
void startPairing(QBluetoothLocalDevice::Pairing pairing);
diff --git a/src/connectivity/bluetooth/symbian/bluetoothsymbianregistryadapter.h b/src/connectivity/bluetooth/symbian/bluetoothsymbianregistryadapter.h
index 17aee6d49a..bdea1d579e 100644
--- a/src/connectivity/bluetooth/symbian/bluetoothsymbianregistryadapter.h
+++ b/src/connectivity/bluetooth/symbian/bluetoothsymbianregistryadapter.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -74,7 +74,7 @@ class BluetoothSymbianRegistryAdapter : public QObject, public MBTEngDevManObser
Q_OBJECT
public:
- BluetoothSymbianRegistryAdapter(const QBluetoothAddress &address, QObject *parent = 0);
+ explicit BluetoothSymbianRegistryAdapter(const QBluetoothAddress &address, QObject *parent = 0);
~BluetoothSymbianRegistryAdapter();
void removePairing();
diff --git a/src/connectivity/nfc/maemo6/socketrequestor.cpp b/src/connectivity/nfc/maemo6/socketrequestor.cpp
index 5961f5bd47..37fcd936d3 100644
--- a/src/connectivity/nfc/maemo6/socketrequestor.cpp
+++ b/src/connectivity/nfc/maemo6/socketrequestor.cpp
@@ -505,14 +505,14 @@ void SocketRequestorPrivate::sendRequestAccess(const QString &adaptor, const QSt
return;
dbus_message_iter_init_append(message, &args);
- const char *cdata = path.toUtf8().constData();
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_OBJECT_PATH, &cdata)) {
+ const QByteArray p = path.toUtf8();
+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_OBJECT_PATH, p.constData())) {
dbus_message_unref(message);
return;
}
- cdata = kind.toUtf8().constData();
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &cdata)) {
+ const QByteArray k = kind.toUtf8();
+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, k.constData())) {
dbus_message_unref(message);
return;
}
@@ -543,14 +543,14 @@ void SocketRequestorPrivate::sendCancelAccessRequest(const QString &adaptor, con
return;
dbus_message_iter_init_append(message, &args);
- const char *cdata = path.toUtf8().constData();
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_OBJECT_PATH, &cdata)) {
+ const QByteArray p = path.toUtf8();
+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_OBJECT_PATH, p.constData())) {
dbus_message_unref(message);
return;
}
- cdata = kind.toUtf8().constData();
- if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &cdata)) {
+ const QByteArray k = kind.toUtf8();
+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, k.constData())) {
dbus_message_unref(message);
return;
}
diff --git a/src/connectivity/nfc/nfc.pri b/src/connectivity/nfc/nfc.pri
index faab00e302..49da2a65dd 100644
--- a/src/connectivity/nfc/nfc.pri
+++ b/src/connectivity/nfc/nfc.pri
@@ -13,7 +13,8 @@ PUBLIC_HEADERS += \
nfc/qllcpsocket.h \
nfc/qnearfieldtagtype3.h \
nfc/qnearfieldtagtype4.h \
- nfc/qllcpserver.h
+ nfc/qllcpserver.h \
+ nfc/qdeclarativendefrecord.h
PRIVATE_HEADERS += \
nfc/qndefrecord_p.h \
@@ -36,15 +37,8 @@ SOURCES += \
nfc/qllcpsocket.cpp \
nfc/qnearfieldtagtype4.cpp \
nfc/qtlv.cpp \
- nfc/qllcpserver.cpp
-
-contains(QT_CONFIG,declarative) {
- PUBLIC_HEADERS += \
- nfc/qdeclarativendefrecord.h
-
- SOURCES += \
- nfc/qdeclarativendefrecord.cpp
-}
+ nfc/qllcpserver.cpp \
+ nfc/qdeclarativendefrecord.cpp
maemo6|meego {
NFC_BACKEND_AVAILABLE = yes
diff --git a/src/connectivity/nfc/qdeclarativendefrecord.h b/src/connectivity/nfc/qdeclarativendefrecord.h
index e554198adf..709b0e2e9b 100644
--- a/src/connectivity/nfc/qdeclarativendefrecord.h
+++ b/src/connectivity/nfc/qdeclarativendefrecord.h
@@ -62,7 +62,7 @@ class Q_CONNECTIVITY_EXPORT QDeclarativeNdefRecord : public QObject
public:
explicit QDeclarativeNdefRecord(QObject *parent = 0);
- QDeclarativeNdefRecord(const QNdefRecord &record, QObject *parent = 0);
+ explicit QDeclarativeNdefRecord(const QNdefRecord &record, QObject *parent = 0);
QString recordType() const;
void setRecordType(const QString &t);
diff --git a/src/connectivity/nfc/qllcpserver.cpp b/src/connectivity/nfc/qllcpserver.cpp
index 4ba9fd40c4..97d5f1c3ec 100644
--- a/src/connectivity/nfc/qllcpserver.cpp
+++ b/src/connectivity/nfc/qllcpserver.cpp
@@ -59,6 +59,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
This class makes it possible to accept incoming LLCP socket connections.
diff --git a/src/connectivity/nfc/qllcpsocket.cpp b/src/connectivity/nfc/qllcpsocket.cpp
index 60baeaa376..8285666bbe 100644
--- a/src/connectivity/nfc/qllcpsocket.cpp
+++ b/src/connectivity/nfc/qllcpsocket.cpp
@@ -56,6 +56,7 @@ QTM_BEGIN_NAMESPACE
/*!
\class QLlcpSocket
\brief The QLlcpSocket class provides an NFC LLCP socket.
+ \since 1.2
\ingroup connectivity-nfc
\inmodule QtConnectivity
diff --git a/src/connectivity/nfc/qndeffilter.cpp b/src/connectivity/nfc/qndeffilter.cpp
index ccc4e38558..cf22e4e2b2 100644
--- a/src/connectivity/nfc/qndeffilter.cpp
+++ b/src/connectivity/nfc/qndeffilter.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
The QNdefFilter encapsulates the structure of an NDEF message and is used by
QNearFieldManager::registerNdefMessageHandler() to match NDEF message that have a particular
diff --git a/src/connectivity/nfc/qndefmessage.cpp b/src/connectivity/nfc/qndefmessage.cpp
index 05e5409559..6e8c5b9f4a 100644
--- a/src/connectivity/nfc/qndefmessage.cpp
+++ b/src/connectivity/nfc/qndefmessage.cpp
@@ -50,6 +50,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
A QNdefMessage is a collection of 0 or more QNdefRecords. QNdefMessage inherits from
QList<QNdefRecord> and therefore the standard QList functions can be used to manipulate the
diff --git a/src/connectivity/nfc/qndefnfctextrecord.cpp b/src/connectivity/nfc/qndefnfctextrecord.cpp
index cb1bedd632..91b9ff04b4 100644
--- a/src/connectivity/nfc/qndefnfctextrecord.cpp
+++ b/src/connectivity/nfc/qndefnfctextrecord.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
RTD-Text encapsulates a user displayable text record.
*/
diff --git a/src/connectivity/nfc/qndefnfcurirecord.cpp b/src/connectivity/nfc/qndefnfcurirecord.cpp
index a4657abcf0..d5413a6c29 100644
--- a/src/connectivity/nfc/qndefnfcurirecord.cpp
+++ b/src/connectivity/nfc/qndefnfcurirecord.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
RTD-URI encapsulates a URI.
*/
diff --git a/src/connectivity/nfc/qndefrecord.cpp b/src/connectivity/nfc/qndefrecord.cpp
index cb4b441e56..777666e0db 100644
--- a/src/connectivity/nfc/qndefrecord.cpp
+++ b/src/connectivity/nfc/qndefrecord.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
QNdefRecord and derived classes are used to parse the contents of
\l {QNdefMessage}{NDEF messages} and create new NDEF messages.
diff --git a/src/connectivity/nfc/qnearfieldmanager.cpp b/src/connectivity/nfc/qnearfieldmanager.cpp
index 2f7c88b4e8..46b7fbfedc 100644
--- a/src/connectivity/nfc/qnearfieldmanager.cpp
+++ b/src/connectivity/nfc/qnearfieldmanager.cpp
@@ -63,6 +63,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
NFC Forum devices support two modes of communications. The first mode, peer-to-peer
communications, is used to communicate between two NFC Forum devices. The second mode,
diff --git a/src/connectivity/nfc/qnearfieldmanager_maemo6.cpp b/src/connectivity/nfc/qnearfieldmanager_maemo6.cpp
index 0fc6f35a04..795b466c01 100644
--- a/src/connectivity/nfc/qnearfieldmanager_maemo6.cpp
+++ b/src/connectivity/nfc/qnearfieldmanager_maemo6.cpp
@@ -440,7 +440,7 @@ void QNearFieldManagerPrivateImpl::_q_targetLost(const QDBusObjectPath &targetPa
// haven't seen target so just drop this event
if (!nearFieldTarget) {
// We either haven't seen target (started after target was detected by system) or the
- // application deleted the target. Remove from map and dont emit anything.
+ // application deleted the target. Remove from map and don't emit anything.
m_targets.remove(targetPath.path());
return;
}
diff --git a/src/connectivity/nfc/qnearfieldtagmifare_symbian.cpp b/src/connectivity/nfc/qnearfieldtagmifare_symbian.cpp
index eb7238555a..bc90ff9b20 100644
--- a/src/connectivity/nfc/qnearfieldtagmifare_symbian.cpp
+++ b/src/connectivity/nfc/qnearfieldtagmifare_symbian.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -52,7 +52,6 @@ QNearFieldTagMifareSymbian::QNearFieldTagMifareSymbian(CNearFieldNdefTarget *tag
QNearFieldTagMifareSymbian::~QNearFieldTagMifareSymbian()
{
- delete mTag;
}
QByteArray QNearFieldTagMifareSymbian::uid() const
@@ -65,14 +64,14 @@ bool QNearFieldTagMifareSymbian::hasNdefMessage()
return _hasNdefMessage();
}
-void QNearFieldTagMifareSymbian::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTagMifareSymbian::readNdefMessages()
{
- _ndefMessages();
+ return _ndefMessages();
}
-void QNearFieldTagMifareSymbian::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagMifareSymbian::writeNdefMessages(const QList<QNdefMessage> &messages)
{
- _setNdefMessages(messages);
+ return _setNdefMessages(messages);
}
QNearFieldTarget::RequestId QNearFieldTagMifareSymbian::sendCommand(const QByteArray &command)
diff --git a/src/connectivity/nfc/qnearfieldtagmifare_symbian_p.h b/src/connectivity/nfc/qnearfieldtagmifare_symbian_p.h
index 73eb6d2736..5e595bf84f 100644
--- a/src/connectivity/nfc/qnearfieldtagmifare_symbian_p.h
+++ b/src/connectivity/nfc/qnearfieldtagmifare_symbian_p.h
@@ -77,8 +77,8 @@ public:
}
// NdefAccess
bool hasNdefMessage();
- void readNdefMessages();
- void writeNdefMessages(const QList<QNdefMessage> &messages);
+ RequestId readNdefMessages();
+ RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
// TagTypeSpecificAccess
RequestId sendCommand(const QByteArray &command);
diff --git a/src/connectivity/nfc/qnearfieldtagtype1.cpp b/src/connectivity/nfc/qnearfieldtagtype1.cpp
index e2c64e5d55..8ff5d2290c 100644
--- a/src/connectivity/nfc/qnearfieldtagtype1.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype1.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -55,6 +55,7 @@ QTM_BEGIN_NAMESPACE
\class QNearFieldTagType1
\brief The QNearFieldTagType1 class provides an interface for communicating with an NFC Tag
Type 1 tag.
+ \since 1.2
\ingroup connectivity-nfc
\inmodule QtConnectivity
@@ -99,6 +100,7 @@ public:
void progressToNextNdefReadMessageState();
ReadNdefMessageState m_readNdefMessageState;
+ QNearFieldTarget::RequestId m_readNdefRequestId;
QTlvReader *m_tlvReader;
QNearFieldTarget::RequestId m_nextExpectedRequestId;
@@ -114,6 +116,7 @@ public:
void progressToNextNdefWriteMessageState();
WriteNdefMessageState m_writeNdefMessageState;
+ QNearFieldTarget::RequestId m_writeNdefRequestId;
QList<QNdefMessage> m_ndefWriteMessages;
QTlvWriter *m_tlvWriter;
@@ -137,7 +140,8 @@ void QNearFieldTagType1Private::progressToNextNdefReadMessageState()
if (data.isEmpty()) {
m_readNdefMessageState = NotReadingNdefMessage;
m_nextExpectedRequestId = QNearFieldTarget::RequestId();
- emit q->error(QNearFieldTarget::NdefReadError, QNearFieldTarget::RequestId());
+ emit q->error(QNearFieldTarget::NdefReadError, m_readNdefRequestId);
+ m_readNdefRequestId = QNearFieldTarget::RequestId();
break;
}
@@ -147,7 +151,8 @@ void QNearFieldTagType1Private::progressToNextNdefReadMessageState()
if (!(hr0 & 0x10)) {
m_readNdefMessageState = NotReadingNdefMessage;
m_nextExpectedRequestId = QNearFieldTarget::RequestId();
- emit q->error(QNearFieldTarget::NdefReadError, QNearFieldTarget::RequestId());
+ emit q->error(QNearFieldTarget::NdefReadError, m_readNdefRequestId);
+ m_readNdefRequestId = QNearFieldTarget::RequestId();
break;
}
@@ -161,7 +166,8 @@ void QNearFieldTagType1Private::progressToNextNdefReadMessageState()
if (ndefMagicNumber != 0xe1) {
m_readNdefMessageState = NotReadingNdefMessage;
- emit q->error(QNearFieldTarget::NdefReadError, QNearFieldTarget::RequestId());
+ emit q->error(QNearFieldTarget::NdefReadError, m_readNdefRequestId);
+ m_readNdefRequestId = QNearFieldTarget::RequestId();
break;
}
@@ -188,6 +194,8 @@ void QNearFieldTagType1Private::progressToNextNdefReadMessageState()
delete m_tlvReader;
m_tlvReader = 0;
m_readNdefMessageState = NotReadingNdefMessage;
+ emit q->requestCompleted(m_readNdefRequestId);
+ m_readNdefRequestId = QNearFieldTarget::RequestId();
}
break;
}
@@ -208,7 +216,8 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
if (data.isEmpty()) {
m_writeNdefMessageState = NotWritingNdefMessage;
m_nextExpectedRequestId = QNearFieldTarget::RequestId();
- emit q->error(QNearFieldTarget::NdefWriteError, QNearFieldTarget::RequestId());
+ emit q->error(QNearFieldTarget::NdefWriteError, m_writeNdefRequestId);
+ m_writeNdefRequestId = QNearFieldTarget::RequestId();
break;
}
@@ -218,7 +227,8 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
if (!(hr0 & 0x10)) {
m_writeNdefMessageState = NotWritingNdefMessage;
m_nextExpectedRequestId = QNearFieldTarget::RequestId();
- emit q->error(QNearFieldTarget::NdefWriteError, QNearFieldTarget::RequestId());
+ emit q->error(QNearFieldTarget::NdefWriteError, m_writeNdefRequestId);
+ m_writeNdefRequestId = QNearFieldTarget::RequestId();
break;
}
@@ -232,7 +242,8 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
if (ndefMagicNumber != 0xe1) {
m_writeNdefMessageState = NotWritingNdefMessage;
- emit q->error(QNearFieldTarget::NdefWriteError, QNearFieldTarget::RequestId());
+ emit q->error(QNearFieldTarget::NdefWriteError, m_writeNdefRequestId);
+ m_writeNdefRequestId = QNearFieldTarget::RequestId();
break;
}
@@ -285,13 +296,16 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
delete m_tlvWriter;
m_tlvWriter = 0;
emit q->ndefMessagesWritten();
+ emit q->requestCompleted(m_writeNdefRequestId);
+ m_writeNdefRequestId = QNearFieldTarget::RequestId();
} else {
m_nextExpectedRequestId = m_tlvWriter->requestId();
if (!m_nextExpectedRequestId.isValid()) {
m_writeNdefMessageState = NotWritingNdefMessage;
delete m_tlvWriter;
m_tlvWriter = 0;
- emit q->error(QNearFieldTarget::NdefWriteError, QNearFieldTarget::RequestId());
+ emit q->error(QNearFieldTarget::NdefWriteError, m_writeNdefRequestId);
+ m_writeNdefRequestId = QNearFieldTarget::RequestId();
}
}
break;
@@ -412,30 +426,43 @@ bool QNearFieldTagType1::hasNdefMessage()
/*!
\reimp
*/
-void QNearFieldTagType1::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTagType1::readNdefMessages()
{
Q_D(QNearFieldTagType1);
- if (d->m_readNdefMessageState == QNearFieldTagType1Private::NotReadingNdefMessage)
+ d->m_readNdefRequestId = RequestId(new RequestIdPrivate);
+
+ if (d->m_readNdefMessageState == QNearFieldTagType1Private::NotReadingNdefMessage) {
d->progressToNextNdefReadMessageState();
- else
- emit error(NdefReadError, RequestId());
+ } else {
+ QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection,
+ Q_ARG(QNearFieldTarget::Error, NdefReadError),
+ Q_ARG(QNearFieldTarget::RequestId, d->m_readNdefRequestId));
+ }
+
+ return d->m_readNdefRequestId;
}
/*!
\reimp
*/
-void QNearFieldTagType1::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagType1::writeNdefMessages(const QList<QNdefMessage> &messages)
{
Q_D(QNearFieldTagType1);
+ d->m_writeNdefRequestId = RequestId(new RequestIdPrivate);
+
if (d->m_readNdefMessageState == QNearFieldTagType1Private::NotReadingNdefMessage &&
d->m_writeNdefMessageState == QNearFieldTagType1Private::NotWritingNdefMessage) {
d->m_ndefWriteMessages = messages;
d->progressToNextNdefWriteMessageState();
} else {
- emit error(NdefWriteError, RequestId());
+ QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection,
+ Q_ARG(QNearFieldTarget::Error, NdefWriteError),
+ Q_ARG(QNearFieldTarget::RequestId, d->m_readNdefRequestId));
}
+
+ return d->m_writeNdefRequestId;
}
/*!
diff --git a/src/connectivity/nfc/qnearfieldtagtype1.h b/src/connectivity/nfc/qnearfieldtagtype1.h
index 40b8849f15..78610270d6 100644
--- a/src/connectivity/nfc/qnearfieldtagtype1.h
+++ b/src/connectivity/nfc/qnearfieldtagtype1.h
@@ -68,8 +68,8 @@ public:
Type type() const { return NfcTagType1; }
bool hasNdefMessage();
- void readNdefMessages();
- void writeNdefMessages(const QList<QNdefMessage> &messages);
+ RequestId readNdefMessages();
+ RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
quint8 version();
virtual int memorySize();
diff --git a/src/connectivity/nfc/qnearfieldtagtype1_symbian.cpp b/src/connectivity/nfc/qnearfieldtagtype1_symbian.cpp
index a7e25a4edc..520dc5f2ba 100644
--- a/src/connectivity/nfc/qnearfieldtagtype1_symbian.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype1_symbian.cpp
@@ -342,18 +342,18 @@ bool QNearFieldTagType1Symbian::hasNdefMessage()
return _hasNdefMessage();
}
-void QNearFieldTagType1Symbian::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTagType1Symbian::readNdefMessages()
{
BEGIN
- _ndefMessages();
END
+ return _ndefMessages();
}
-void QNearFieldTagType1Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagType1Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
{
BEGIN
- _setNdefMessages(messages);
END
+ return _setNdefMessages(messages);
}
/*
diff --git a/src/connectivity/nfc/qnearfieldtagtype1_symbian_p.h b/src/connectivity/nfc/qnearfieldtagtype1_symbian_p.h
index 2228eaaadd..3832cb05c6 100644
--- a/src/connectivity/nfc/qnearfieldtagtype1_symbian_p.h
+++ b/src/connectivity/nfc/qnearfieldtagtype1_symbian_p.h
@@ -78,8 +78,8 @@ public:
WriteMode mode = EraseAndWrite);
bool hasNdefMessage();
- void readNdefMessages();
- void writeNdefMessages(const QList<QNdefMessage> &messages);
+ RequestId readNdefMessages();
+ RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
bool isProcessingCommand() const { return _isProcessingRequest(); }
RequestId sendCommand(const QByteArray &command);
diff --git a/src/connectivity/nfc/qnearfieldtagtype2.cpp b/src/connectivity/nfc/qnearfieldtagtype2.cpp
index d76dcf384a..89ca022424 100644
--- a/src/connectivity/nfc/qnearfieldtagtype2.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype2.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -40,6 +40,7 @@
****************************************************************************/
#include "qnearfieldtagtype2.h"
+#include "qnearfieldtarget_p.h"
#include <QtCore/QVariant>
#include <QtCore/QCoreApplication>
@@ -53,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\class QNearFieldTagType2
\brief The QNearFieldTagType2 class provides an interface for communicating with an NFC Tag
Type 2 tag.
+ \since 1.2
\ingroup connectivity-nfc
\inmodule QtConnectivity
@@ -122,21 +124,19 @@ bool QNearFieldTagType2::hasNdefMessage()
/*!
\reimp
*/
-void QNearFieldTagType2::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTagType2::readNdefMessages()
{
- qDebug() << Q_FUNC_INFO << "is unimplemeted";
- emit error(QNearFieldTarget::UnsupportedError, RequestId());
+ return RequestId();
}
/*!
\reimp
*/
-void QNearFieldTagType2::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagType2::writeNdefMessages(const QList<QNdefMessage> &messages)
{
Q_UNUSED(messages);
- qDebug() << Q_FUNC_INFO << "is unimplemeted";
- emit error(QNearFieldTarget::UnsupportedError, RequestId());
+ return RequestId();
}
/*!
diff --git a/src/connectivity/nfc/qnearfieldtagtype2.h b/src/connectivity/nfc/qnearfieldtagtype2.h
index 54c6eb4277..3c7c7ed111 100644
--- a/src/connectivity/nfc/qnearfieldtagtype2.h
+++ b/src/connectivity/nfc/qnearfieldtagtype2.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -63,8 +63,8 @@ public:
Type type() const { return NfcTagType2; }
bool hasNdefMessage();
- void readNdefMessages();
- void writeNdefMessages(const QList<QNdefMessage> &messages);
+ RequestId readNdefMessages();
+ RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
quint8 version();
int memorySize();
diff --git a/src/connectivity/nfc/qnearfieldtagtype2_symbian.cpp b/src/connectivity/nfc/qnearfieldtagtype2_symbian.cpp
index e12dd10cc8..c6342c9ffa 100644
--- a/src/connectivity/nfc/qnearfieldtagtype2_symbian.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype2_symbian.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -38,6 +38,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+
#include <nfctag.h>
#include <QVariant>
#include "qnearfieldtagtype2_symbian_p.h"
@@ -206,18 +207,18 @@ bool QNearFieldTagType2Symbian::hasNdefMessage()
return _hasNdefMessage();
}
-void QNearFieldTagType2Symbian::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTagType2Symbian::readNdefMessages()
{
BEGIN
END
return _ndefMessages();
}
-void QNearFieldTagType2Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagType2Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
{
BEGIN
END
- _setNdefMessages(messages);
+ return _setNdefMessages(messages);
}
QByteArray QNearFieldTagType2Symbian::uid() const
diff --git a/src/connectivity/nfc/qnearfieldtagtype2_symbian_p.h b/src/connectivity/nfc/qnearfieldtagtype2_symbian_p.h
index df3768fbc6..fef3a5877b 100644
--- a/src/connectivity/nfc/qnearfieldtagtype2_symbian_p.h
+++ b/src/connectivity/nfc/qnearfieldtagtype2_symbian_p.h
@@ -70,8 +70,8 @@ public:
bool isProcessingCommand() const { return _isProcessingRequest(); }
bool hasNdefMessage();
- void readNdefMessages();
- void writeNdefMessages(const QList<QNdefMessage> &messages);
+ RequestId readNdefMessages();
+ RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
void setAccessMethods(const QNearFieldTarget::AccessMethods& accessMethods)
{
diff --git a/src/connectivity/nfc/qnearfieldtagtype3.cpp b/src/connectivity/nfc/qnearfieldtagtype3.cpp
index 0583a645af..0dc54ccd01 100644
--- a/src/connectivity/nfc/qnearfieldtagtype3.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype3.cpp
@@ -47,6 +47,7 @@ QTM_BEGIN_NAMESPACE
\class QNearFieldTagType3
\brief The QNearFieldTagType3 class provides an interface for communicating with an NFC Tag
Type 3 tag.
+ \since 1.2
\ingroup connectivity-nfc
\inmodule QtConnectivity
diff --git a/src/connectivity/nfc/qnearfieldtagtype3_symbian.cpp b/src/connectivity/nfc/qnearfieldtagtype3_symbian.cpp
index c40a6e8590..76971ffbf6 100644
--- a/src/connectivity/nfc/qnearfieldtagtype3_symbian.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype3_symbian.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -38,6 +38,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+
#include <nfctag.h>
#include "qnearfieldtagtype3_symbian_p.h"
#include <nfctype3connection.h>
@@ -193,14 +194,14 @@ bool QNearFieldTagType3Symbian::hasNdefMessage()
return _hasNdefMessage();
}
-void QNearFieldTagType3Symbian::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTagType3Symbian::readNdefMessages()
{
- _ndefMessages();
+ return _ndefMessages();
}
-void QNearFieldTagType3Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagType3Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
{
- _setNdefMessages(messages);
+ return _setNdefMessages(messages);
}
QNearFieldTarget::RequestId QNearFieldTagType3Symbian::sendCommand(const QByteArray &command)
diff --git a/src/connectivity/nfc/qnearfieldtagtype3_symbian_p.h b/src/connectivity/nfc/qnearfieldtagtype3_symbian_p.h
index e42f7ed875..c77096b6f1 100644
--- a/src/connectivity/nfc/qnearfieldtagtype3_symbian_p.h
+++ b/src/connectivity/nfc/qnearfieldtagtype3_symbian_p.h
@@ -71,8 +71,8 @@ public:
}
bool hasNdefMessage();
- void readNdefMessages();
- void writeNdefMessages(const QList<QNdefMessage> &messages);
+ RequestId readNdefMessages();
+ RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
#if 0
quint16 systemCode();
diff --git a/src/connectivity/nfc/qnearfieldtagtype4.cpp b/src/connectivity/nfc/qnearfieldtagtype4.cpp
index 8e6df27f68..6d18f01f34 100644
--- a/src/connectivity/nfc/qnearfieldtagtype4.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype4.cpp
@@ -47,6 +47,7 @@ QTM_BEGIN_NAMESPACE
\class QNearFieldTagType4
\brief The QNearFieldTagType4 class provides an interface for communicating with an NFC Tag
Type 4 tag.
+ \since 1.2
\ingroup connectivity-nfc
\inmodule QtConnectivity
diff --git a/src/connectivity/nfc/qnearfieldtagtype4_symbian.cpp b/src/connectivity/nfc/qnearfieldtagtype4_symbian.cpp
index 44b40067c4..0d18236822 100644
--- a/src/connectivity/nfc/qnearfieldtagtype4_symbian.cpp
+++ b/src/connectivity/nfc/qnearfieldtagtype4_symbian.cpp
@@ -261,14 +261,14 @@ bool QNearFieldTagType4Symbian::hasNdefMessage()
return ( (nLen > 0) && (nLen < maxNdefLen -2) );
}
-void QNearFieldTagType4Symbian::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTagType4Symbian::readNdefMessages()
{
- _ndefMessages();
+ return _ndefMessages();
}
-void QNearFieldTagType4Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagType4Symbian::writeNdefMessages(const QList<QNdefMessage> &messages)
{
- _setNdefMessages(messages);
+ return _setNdefMessages(messages);
}
QNearFieldTarget::RequestId QNearFieldTagType4Symbian::sendCommand(const QByteArray &command)
diff --git a/src/connectivity/nfc/qnearfieldtagtype4_symbian_p.h b/src/connectivity/nfc/qnearfieldtagtype4_symbian_p.h
index 0ec06de261..34d9233c86 100644
--- a/src/connectivity/nfc/qnearfieldtagtype4_symbian_p.h
+++ b/src/connectivity/nfc/qnearfieldtagtype4_symbian_p.h
@@ -69,8 +69,8 @@ public:
quint8 version();
bool hasNdefMessage();
- void readNdefMessages();
- void writeNdefMessages(const QList<QNdefMessage> &messages);
+ RequestId readNdefMessages();
+ RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
RequestId sendCommand(const QByteArray &command);
RequestId sendCommands(const QList<QByteArray> &commands);
diff --git a/src/connectivity/nfc/qnearfieldtarget.cpp b/src/connectivity/nfc/qnearfieldtarget.cpp
index 0e44fa58a7..cabf257a50 100644
--- a/src/connectivity/nfc/qnearfieldtarget.cpp
+++ b/src/connectivity/nfc/qnearfieldtarget.cpp
@@ -58,6 +58,7 @@ QTM_BEGIN_NAMESPACE
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
QNearFieldTarget provides a generic interface for communicating with an NFC target device.
Both NFC Forum devices and NFC Forum Tag targets are supported by this class. All target
@@ -236,6 +237,14 @@ bool QNearFieldTarget::RequestId::operator==(const RequestId &other) const
}
/*!
+ \internal
+*/
+bool QNearFieldTarget::RequestId::operator!=(const RequestId &other) const
+{
+ return d != other.d;
+}
+
+/*!
Assigns a copy of \a other to this request id and returns a reference to this request id.
*/
QNearFieldTarget::RequestId &QNearFieldTarget::RequestId::operator=(const RequestId &other)
@@ -251,6 +260,7 @@ QNearFieldTarget::QNearFieldTarget(QObject *parent)
: QObject(parent), d_ptr(new QNearFieldTargetPrivate)
{
qRegisterMetaType<RequestId>("QNearFieldTarget::RequestId");
+ qRegisterMetaType<Error>("QNearFieldTarget::Error");
}
/*!
@@ -305,29 +315,37 @@ bool QNearFieldTarget::hasNdefMessage()
}
/*!
- Starts reading NDEF messages stored on the near field target. An ndefMessageRead() signal will
- be emitted for each NDEF message. If an error occurs the error() signal will be emitted.
+ Starts reading NDEF messages stored on the near field target. Returns a request id which can
+ be used to track the completion status of the request. An invalid request id will be returned
+ if the target does not support reading NDEF messages.
+
+ An ndefMessageRead() signal will be emitted for each NDEF message. The requestCompleted()
+ signal will be emitted was all NDEF messages have been read. The error() signal is emitted if
+ an error occurs.
\note Symbian^3 and Maemo 6 only support read one NDEF message.
*/
-void QNearFieldTarget::readNdefMessages()
+QNearFieldTarget::RequestId QNearFieldTarget::readNdefMessages()
{
- emit error(UnsupportedError, RequestId());
+ return RequestId();
}
/*!
- Writes the NDEF messages in \a messages to the target. The ndefMessagesWritten() signal will be
- emitted when the write operation completes successfully; otherwise the error() signal is
- emitted.
+ Writes the NDEF messages in \a messages to the target. Returns a request id which can be used
+ to track the completion status of the request. An invalid request id will be returned if the
+ target does not support reading NDEF messages.
+
+ The ndefMessagesWritten() signal will be emitted when the write operation completes
+ successfully; otherwise the error() signal is emitted.
\note Symbian^3 and Maemo 6 only support writing one NDEF message. Only the first NDEF message
in the list will be written, others are silently dropped.
*/
-void QNearFieldTarget::writeNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTarget::writeNdefMessages(const QList<QNdefMessage> &messages)
{
Q_UNUSED(messages);
- emit error(UnsupportedError, RequestId());
+ return RequestId();
}
/*!
diff --git a/src/connectivity/nfc/qnearfieldtarget.h b/src/connectivity/nfc/qnearfieldtarget.h
index 9a79ef05a8..070fd1bf04 100644
--- a/src/connectivity/nfc/qnearfieldtarget.h
+++ b/src/connectivity/nfc/qnearfieldtarget.h
@@ -87,6 +87,7 @@ public:
enum Error {
NoError,
+ UnknownError,
UnsupportedError,
TargetOutOfRangeError,
NoResponseError,
@@ -111,6 +112,7 @@ public:
bool operator<(const RequestId &other) const;
bool operator==(const RequestId &other) const;
+ bool operator!=(const RequestId &other) const;
RequestId &operator=(const RequestId &other);
QSharedDataPointer<RequestIdPrivate> d;
@@ -129,8 +131,8 @@ public:
// NdefAccess
virtual bool hasNdefMessage();
- virtual void readNdefMessages();
- virtual void writeNdefMessages(const QList<QNdefMessage> &messages);
+ virtual RequestId readNdefMessages();
+ virtual RequestId writeNdefMessages(const QList<QNdefMessage> &messages);
// TagTypeSpecificAccess
virtual RequestId sendCommand(const QByteArray &command);
diff --git a/src/connectivity/nfc/qnearfieldtarget_maemo6.cpp b/src/connectivity/nfc/qnearfieldtarget_maemo6.cpp
index 391da696fa..0a5850cbe8 100644
--- a/src/connectivity/nfc/qnearfieldtarget_maemo6.cpp
+++ b/src/connectivity/nfc/qnearfieldtarget_maemo6.cpp
@@ -53,35 +53,39 @@ void PendingCallWatcher::addSendCommand(const QDBusPendingReply<QByteArray> &rep
m_pendingCommands.insert(watcher, id);
}
-void PendingCallWatcher::addReadNdefMessages(const QDBusPendingReply<QList<QByteArray> > &reply)
+void PendingCallWatcher::addReadNdefMessages(const QDBusPendingReply<QList<QByteArray> > &reply,
+ const QNearFieldTarget::RequestId &id)
{
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
this, SLOT(readNdefMessagesFinished(QDBusPendingCallWatcher*)));
- m_pendingNdefReads.append(watcher);
+ m_pendingNdefReads.insert(watcher, id);
}
-void PendingCallWatcher::addWriteNdefMessages(const QDBusPendingReply<> &reply)
+void PendingCallWatcher::addWriteNdefMessages(const QDBusPendingReply<> &reply,
+ const QNearFieldTarget::RequestId &id)
{
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this);
connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),
this, SLOT(writeNdefMessages(QDBusPendingCallWatcher*)));
- m_pendingNdefWrites.append(watcher);
+ m_pendingNdefWrites.insert(watcher, id);
}
void PendingCallWatcher::sendCommandFinished(QDBusPendingCallWatcher *watcher)
{
QNearFieldTarget::RequestId id = m_pendingCommands.take(watcher);
- if (!id.isValid())
+ if (!id.isValid()) {
+ watcher->deleteLater();
return;
+ }
QDBusPendingReply<QByteArray> reply = *watcher;
if (reply.isError()) {
QMetaObject::invokeMethod(parent(), "error",
- Q_ARG(QNearFieldTarget::Error, QNearFieldTarget::NoError),
+ Q_ARG(QNearFieldTarget::Error, QNearFieldTarget::UnknownError),
Q_ARG(QNearFieldTarget::RequestId, id));
} else {
const QByteArray data = reply.argumentAt<0>();
@@ -95,11 +99,18 @@ void PendingCallWatcher::sendCommandFinished(QDBusPendingCallWatcher *watcher)
void PendingCallWatcher::readNdefMessagesFinished(QDBusPendingCallWatcher *watcher)
{
+ QNearFieldTarget::RequestId id = m_pendingNdefReads.take(watcher);
+
+ if (!id.isValid()) {
+ watcher->deleteLater();
+ return;
+ }
+
QDBusPendingReply<QList<QByteArray> > reply = *watcher;
if (reply.isError()) {
QMetaObject::invokeMethod(parent(), "error",
Q_ARG(QNearFieldTarget::Error, QNearFieldTarget::NdefReadError),
- Q_ARG(QNearFieldTarget::RequestId, QNearFieldTarget::RequestId()));
+ Q_ARG(QNearFieldTarget::RequestId, id));
} else {
const QList<QByteArray> data = reply.argumentAt<0>();
foreach (const QByteArray &m, data) {
@@ -112,24 +123,34 @@ void PendingCallWatcher::readNdefMessagesFinished(QDBusPendingCallWatcher *watch
QMetaObject::invokeMethod(parent(), "ndefMessageRead", Q_ARG(QNdefMessage, message));
}
+
+ QMetaObject::invokeMethod(parent(), "requestCompleted",
+ Q_ARG(QNearFieldTarget::RequestId, id));
}
- m_pendingNdefReads.removeOne(watcher);
watcher->deleteLater();
}
void PendingCallWatcher::writeNdefMessages(QDBusPendingCallWatcher *watcher)
{
+ QNearFieldTarget::RequestId id = m_pendingNdefWrites.take(watcher);
+
+ if (!id.isValid()) {
+ watcher->deleteLater();
+ return;
+ }
+
QDBusPendingReply<> reply = *watcher;
if (reply.isError()) {
QMetaObject::invokeMethod(parent(), "error",
Q_ARG(QNearFieldTarget::Error, QNearFieldTarget::NdefWriteError),
- Q_ARG(QNearFieldTarget::RequestId, QNearFieldTarget::RequestId()));
+ Q_ARG(QNearFieldTarget::RequestId, id));
} else {
QMetaObject::invokeMethod(parent(), "ndefMessagesWritten");
+ QMetaObject::invokeMethod(parent(), "requestCompleted",
+ Q_ARG(QNearFieldTarget::RequestId, id));
}
- m_pendingNdefWrites.removeOne(watcher);
watcher->deleteLater();
}
diff --git a/src/connectivity/nfc/qnearfieldtarget_maemo6_p.h b/src/connectivity/nfc/qnearfieldtarget_maemo6_p.h
index 7919076ade..6cb07cac29 100644
--- a/src/connectivity/nfc/qnearfieldtarget_maemo6_p.h
+++ b/src/connectivity/nfc/qnearfieldtarget_maemo6_p.h
@@ -73,8 +73,10 @@ public:
void addSendCommand(const QDBusPendingReply<QByteArray> &reply,
const QNearFieldTarget::RequestId &id);
- void addReadNdefMessages(const QDBusPendingReply<QList<QByteArray> > &reply);
- void addWriteNdefMessages(const QDBusPendingReply<> &reply);
+ void addReadNdefMessages(const QDBusPendingReply<QList<QByteArray> > &reply,
+ const QNearFieldTarget::RequestId &id);
+ void addWriteNdefMessages(const QDBusPendingReply<> &reply,
+ const QNearFieldTarget::RequestId &id);
private slots:
void sendCommandFinished(QDBusPendingCallWatcher *watcher);
@@ -83,8 +85,8 @@ private slots:
private:
QMap<QDBusPendingCallWatcher *, QNearFieldTarget::RequestId> m_pendingCommands;
- QList<QDBusPendingCallWatcher *> m_pendingNdefReads;
- QList<QDBusPendingCallWatcher *> m_pendingNdefWrites;
+ QMap<QDBusPendingCallWatcher *, QNearFieldTarget::RequestId> m_pendingNdefReads;
+ QMap<QDBusPendingCallWatcher *, QNearFieldTarget::RequestId> m_pendingNdefWrites;
};
template <typename T>
@@ -134,21 +136,28 @@ public:
return true;
}
- void readNdefMessages()
+ QNearFieldTarget::RequestId readNdefMessages()
{
+ QNearFieldTarget::RequestId id(new QNearFieldTarget::RequestIdPrivate);
+
QDBusPendingReply<QList<QByteArray> > reply = m_tag->ReadNDEFData();
- m_callWatcher->addReadNdefMessages(reply);
+ m_callWatcher->addReadNdefMessages(reply, id);
+
+ return id;
}
- void writeNdefMessages(const QList<QNdefMessage> &messages)
+ QNearFieldTarget::RequestId writeNdefMessages(const QList<QNdefMessage> &messages)
{
+ QNearFieldTarget::RequestId id(new QNearFieldTarget::RequestIdPrivate);
QList<QByteArray> rawMessages;
foreach (const QNdefMessage &message, messages)
rawMessages.append(message.toByteArray());
QDBusPendingReply<> reply = m_tag->WriteNDEFData(rawMessages);
- m_callWatcher->addWriteNdefMessages(reply);
+ m_callWatcher->addWriteNdefMessages(reply, id);
+
+ return id;
}
QNearFieldTarget::RequestId sendCommand(const QByteArray &command)
diff --git a/src/connectivity/nfc/symbian/debug.h b/src/connectivity/nfc/symbian/debug.h
index 236b675c6f..6dbd9204a2 100644
--- a/src/connectivity/nfc/symbian/debug.h
+++ b/src/connectivity/nfc/symbian/debug.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -43,11 +43,18 @@
#define DEBUG_H_
#include <QDebug>
-#define SYMBIAN_NFC_DEBUG
+//#define SYMBIAN_NFC_DEBUG
-#define BEGIN qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<" Begin";
-#define END qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<" End";
-#define BEGIN_END qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<" BEGIN_End";
-#define LOG(a) qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<a;
+#ifdef SYMBIAN_NFC_DEBUG
+# define BEGIN qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<" Begin";
+# define END qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<" End";
+# define BEGIN_END qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<" BEGIN_End";
+# define LOG(a) qDebug()<<__PRETTY_FUNCTION__<<" Line: "<<__LINE__ <<a;
+#else
+# define BEGIN
+# define END
+# define BEGIN_END
+# define LOG(a)
+#endif
#endif /* DEBUG_H_ */
diff --git a/src/connectivity/nfc/symbian/llcpsockettype1_symbian.cpp b/src/connectivity/nfc/symbian/llcpsockettype1_symbian.cpp
index a2913cf258..3f73cbd990 100644
--- a/src/connectivity/nfc/symbian/llcpsockettype1_symbian.cpp
+++ b/src/connectivity/nfc/symbian/llcpsockettype1_symbian.cpp
@@ -238,7 +238,6 @@ void CLlcpSocketType1::FrameReceived(MLlcpConnLessTransporter* aConnection)
{
BEGIN
iRemotePort = aConnection->SsapL();
- qDebug() << "FrameReceived " << iRemotePort;
// StartTransportAndReceive(aConnection);
// Only accepting one incoming remote connection
TInt error = KErrNone;
@@ -349,7 +348,6 @@ TInt CLlcpSocketType1::CreateConnection(TUint8 portNum)
if (error == KErrNone)
{
iRemotePort = portNum;
- qDebug() << "CreateConnection " << iRemotePort;
error = StartTransportAndReceive(llcpConnection);
}
END
diff --git a/src/connectivity/nfc/symbian/llcpsockettype2_symbian.h b/src/connectivity/nfc/symbian/llcpsockettype2_symbian.h
index 30ced1b3e2..7ba20995fb 100644
--- a/src/connectivity/nfc/symbian/llcpsockettype2_symbian.h
+++ b/src/connectivity/nfc/symbian/llcpsockettype2_symbian.h
@@ -93,7 +93,7 @@ public:
void AttachCallbackHandler(QtMobility::QLlcpSocketPrivate* aCallback);
private:
// Constructor
- CLlcpSocketType2(MLlcpConnOrientedTransporter* aTransporter = NULL,QtMobility::QLlcpSocketPrivate* aCallback = NULL);
+ explicit CLlcpSocketType2(MLlcpConnOrientedTransporter* aTransporter = NULL,QtMobility::QLlcpSocketPrivate* aCallback = NULL);
// Second phase constructor
void ConstructL();
void ConnectToServiceL( const TDesC8& aServiceName);
diff --git a/src/connectivity/nfc/symbian/nearfieldmanager_symbian.cpp b/src/connectivity/nfc/symbian/nearfieldmanager_symbian.cpp
index 62c785e2bc..cb9a9ea5ac 100644
--- a/src/connectivity/nfc/symbian/nearfieldmanager_symbian.cpp
+++ b/src/connectivity/nfc/symbian/nearfieldmanager_symbian.cpp
@@ -53,6 +53,7 @@
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
\internal
A Symbian implementation class to support symbian NFC backend.
diff --git a/src/connectivity/nfc/symbian/nearfieldndeftarget_symbian.cpp b/src/connectivity/nfc/symbian/nearfieldndeftarget_symbian.cpp
index 20a0dffc5a..89fc82bc7b 100644
--- a/src/connectivity/nfc/symbian/nearfieldndeftarget_symbian.cpp
+++ b/src/connectivity/nfc/symbian/nearfieldndeftarget_symbian.cpp
@@ -238,6 +238,7 @@ void CNearFieldNdefTarget::HandleError( TInt aError )
//TODO: consider it carefully
//iMessages = 0;
}
+ iCurrentOperation = ENull;
END
}
diff --git a/src/connectivity/nfc/symbian/nearfieldtag_symbian.cpp b/src/connectivity/nfc/symbian/nearfieldtag_symbian.cpp
index 7e08630d64..8355008248 100644
--- a/src/connectivity/nfc/symbian/nearfieldtag_symbian.cpp
+++ b/src/connectivity/nfc/symbian/nearfieldtag_symbian.cpp
@@ -52,6 +52,7 @@
\ingroup connectivity-nfc
\inmodule QtConnectivity
\internal
+ \since 1.2
*/
CNearFieldTag::CNearFieldTag(MNfcTag * aNfcTag, RNfcServer& aNfcServer) : CActive(EPriorityStandard),
diff --git a/src/connectivity/nfc/symbian/nearfieldtagimpl_symbian.h b/src/connectivity/nfc/symbian/nearfieldtagimpl_symbian.h
index 883e5c6f69..31946f7204 100644
--- a/src/connectivity/nfc/symbian/nearfieldtagimpl_symbian.h
+++ b/src/connectivity/nfc/symbian/nearfieldtagimpl_symbian.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -86,6 +86,7 @@ public: // From MNearFieldTargetOperation
void EmitNdefMessageRead(const QNdefMessage &message);
void EmitNdefMessagesWritten();
+ void EmitRequestCompleted(const QNearFieldTarget::RequestId &id);
void EmitError(int error, const QNearFieldTarget::RequestId &id);
public:
@@ -149,12 +150,31 @@ void QNearFieldTagImpl<TAGTYPE>::EmitNdefMessagesWritten()
}
template<typename TAGTYPE>
-void QNearFieldTagImpl<TAGTYPE>::EmitError(int error, const QNearFieldTarget::RequestId &id)
+void QNearFieldTagImpl<TAGTYPE>::EmitRequestCompleted(const QNearFieldTarget::RequestId &id)
{
BEGIN
TAGTYPE * tag = static_cast<TAGTYPE *>(this);
int err;
- QT_TRYCATCH_ERROR(err, emit tag->error(SymbianError2QtError(error), id));
+ QT_TRYCATCH_ERROR(err, emit tag->requestCompleted(id));
+ Q_UNUSED(err);
+ END
+}
+
+template<typename TAGTYPE>
+void QNearFieldTagImpl<TAGTYPE>::EmitError(int error, const QNearFieldTarget::RequestId &id)
+{
+ BEGIN
+ TAGTYPE * tag = static_cast<TAGTYPE *>(this);
+
+ int err = KErrNone;
+ try {
+ QMetaObject::invokeMethod(tag, "error", Qt::QueuedConnection,
+ Q_ARG(QNearFieldTarget::Error, SymbianError2QtError(error)),
+ Q_ARG(QNearFieldTarget::RequestId, id));
+ } catch (const std::exception &ex) {
+ err = qt_symbian_exception2Error(ex);
+ }
+
Q_UNUSED(err);
END
}
diff --git a/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.cpp b/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.cpp
index 48ecc4bcf3..ccd434ae1c 100644
--- a/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.cpp
+++ b/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -274,7 +274,7 @@ bool QNearFieldTagImplCommon::_hasNdefMessage()
}
-void QNearFieldTagImplCommon::_ndefMessages()
+QNearFieldTarget::RequestId QNearFieldTagImplCommon::_ndefMessages()
{
BEGIN
NearFieldTagNdefRequest * readNdefRequest = new NearFieldTagNdefRequest(*this);
@@ -301,13 +301,15 @@ void QNearFieldTagImplCommon::_ndefMessages()
}
else
{
- EmitError(KErrNoMemory, QNearFieldTarget::RequestId());
+ EmitError(KErrNoMemory, requestId);
}
END
+
+ return requestId;
}
-void QNearFieldTagImplCommon::_setNdefMessages(const QList<QNdefMessage> &messages)
+QNearFieldTarget::RequestId QNearFieldTagImplCommon::_setNdefMessages(const QList<QNdefMessage> &messages)
{
BEGIN
NearFieldTagNdefRequest * writeNdefRequest = new NearFieldTagNdefRequest(*this);
@@ -335,9 +337,11 @@ void QNearFieldTagImplCommon::_setNdefMessages(const QList<QNdefMessage> &messag
}
else
{
- EmitError(KErrNoMemory, QNearFieldTarget::RequestId());
+ EmitError(KErrNoMemory, requestId);
}
END
+
+ return requestId;
}
diff --git a/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.h b/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.h
index 4aefa988b3..1d5aec7fc6 100644
--- a/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.h
+++ b/src/connectivity/nfc/symbian/nearfieldtagimplcommon_symbian.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -72,6 +72,7 @@ public:
virtual void EmitNdefMessageRead(const QNdefMessage &message) = 0;
virtual void EmitNdefMessagesWritten() = 0;
+ virtual void EmitRequestCompleted(const QNearFieldTarget::RequestId &id) = 0;
virtual void EmitError(int error, const QNearFieldTarget::RequestId &id) = 0;
virtual void HandleResponse(const QNearFieldTarget::RequestId &id, const QByteArray &command, const QByteArray &response, bool emitRequestCompleted) = 0;
virtual void HandleResponse(const QNearFieldTarget::RequestId &id, const QVariantList& response, int error) = 0;
@@ -83,8 +84,8 @@ public:
protected:
bool _hasNdefMessage();
- void _ndefMessages();
- void _setNdefMessages(const QList<QNdefMessage> &messages);
+ QNearFieldTarget::RequestId _ndefMessages();
+ QNearFieldTarget::RequestId _setNdefMessages(const QList<QNdefMessage> &messages);
void _setAccessMethods(const QNearFieldTarget::AccessMethods& accessMethods)
{
diff --git a/src/connectivity/nfc/symbian/nearfieldtagndefrequest_symbian.cpp b/src/connectivity/nfc/symbian/nearfieldtagndefrequest_symbian.cpp
index 974c593fab..7b73c0a76b 100644
--- a/src/connectivity/nfc/symbian/nearfieldtagndefrequest_symbian.cpp
+++ b/src/connectivity/nfc/symbian/nearfieldtagndefrequest_symbian.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -123,7 +123,7 @@ void NearFieldTagNdefRequest::ProcessEmitSignal(TInt aError)
LOG("error code is "<<aError<<" request type is "<<iType);
if (aError != KErrNone)
{
- iOperator.EmitError(aError, QNearFieldTarget::RequestId());
+ iOperator.EmitError(aError, iId);
}
else
{
@@ -137,10 +137,12 @@ void NearFieldTagNdefRequest::ProcessEmitSignal(TInt aError)
LOG("emit signal ndef message read");
iOperator.EmitNdefMessageRead(iReadMessages.at(i));
}
+ iOperator.EmitRequestCompleted(iId);
}
else if (EWriteRequest == iType)
{
iOperator.EmitNdefMessagesWritten();
+ iOperator.EmitRequestCompleted(iId);
}
}
END
diff --git a/src/connectivity/nfc/symbian/nearfieldtargetfactory_symbian.cpp b/src/connectivity/nfc/symbian/nearfieldtargetfactory_symbian.cpp
index 19a1a34c84..f62d568d13 100644
--- a/src/connectivity/nfc/symbian/nearfieldtargetfactory_symbian.cpp
+++ b/src/connectivity/nfc/symbian/nearfieldtargetfactory_symbian.cpp
@@ -60,6 +60,7 @@
\ingroup connectivity-nfc
\inmodule QtConnectivity
+ \since 1.2
*/
/*
diff --git a/src/contacts/details/qcontactdetails.cpp b/src/contacts/details/qcontactdetails.cpp
index 057a36fabd..22053f3704 100644
--- a/src/contacts/details/qcontactdetails.cpp
+++ b/src/contacts/details/qcontactdetails.cpp
@@ -77,9 +77,10 @@ QTM_BEGIN_NAMESPACE
\class QContactSyncTarget
\brief The QContactSyncTarget class provides a sync target
for a contact.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-details
This leaf-class has been part of the default schema since version
@@ -123,6 +124,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactSyncTarget::FieldSyncTarget, "SyncTarget");
\brief The QContactEmailAddress class contains an email address of
a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -158,6 +160,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactEmailAddress::FieldEmailAddress, "EmailAddress"
\brief The QContactFamily class contains names of
family members of a contact.
\ingroup contacts-details
+ \since 1.1
This leaf-class has been part of the default schema since version
1.1 of the Qt Mobility project.
@@ -211,6 +214,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactFamily::FieldChildren, "Children");
\brief The QContactFavorite class indicates if a contact is a favorite contact as well as the
position it should appear in an ordered list of favorites.
\ingroup contacts-details
+ \since 1.1
This leaf-class has been part of the default schema since version
1.1 of the Qt Mobility project.
@@ -244,7 +248,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactFavorite::FieldIndex, "Index");
*/
/*!
- \fn QContactFavorite::setFavorite(bool isFavorite)
+ \fn QContactFavorite::setFavorite(bool isFavorite)
If \a isFavorite is true, marks the contact as a favorite. Otherwise, marks the contact as not a favorite.
*/
@@ -254,7 +258,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactFavorite::FieldIndex, "Index");
*/
/*!
- \fn QContactFavorite::setIndex(int index)
+ \fn QContactFavorite::setIndex(int index)
Sets the index of the favorite contact to \a index.
*/
@@ -279,6 +283,7 @@ QContactFilter QContactFavorite::match()
\class QContactAnniversary
\brief The QContactAnniversary class contains an anniversary of a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -434,6 +439,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactAnniversary::SubTypeMemorial, "Memorial");
\class QContactAvatar
\ingroup contacts-details
\brief The QContactAvatar class contains avatar URLs of a contact.
+ \since 1.0
Users can specify avatar URLs for a contact using this detail.
Generally, a URL will specify the location of a full-sized
@@ -506,6 +512,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactAvatar::FieldVideoUrl, "VideoUrl");
\class QContactAddress
\brief The QContactAddress class contains an address of a contact.
\ingroup contacts-details
+ \since 1.0
The fields in the QContactAddress class are based on the segments
of the ADR property of a Versit vCard file.
@@ -749,6 +756,7 @@ QContactFilter QContactAddress::match(const QString &subString)
\brief The QContactUrl class contains a url associated with
a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -836,6 +844,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactUrl::SubTypeBlog, "Blog");
\brief The QContactPhoneNumber class provides a phone number
of a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1004,6 +1013,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactPhoneNumber::SubTypeDtmfMenu, "DtmfMenu");
\class QContactBirthday
\brief The QContactBirthday class contains a birthday of a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1077,6 +1087,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactBirthday::FieldCalendarId, "CalendarId");
\class QContactGender
\brief The QContactGender class contains the gender of a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1351,6 +1362,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactGeoLocation::FieldTimestamp, "Timestamp");
\brief The QContactGuid class contains a globally unique
Id of a contact, for use in synchronization with other datastores.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1425,6 +1437,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactHobby::FieldHobby, "Hobby");
\class QContactName
\brief The QContactName class contains a name of a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1506,7 +1519,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactName::FieldCustomLabel, "CustomLabel");
/*!
\fn QContactName::middleName() const
-
+
Returns the middle (additional, or other) name segment of the name
stored in this detail.
*/
@@ -1554,6 +1567,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactName::FieldCustomLabel, "CustomLabel");
\class QContactNickname
\brief The QContactNickname class contains a nickname of a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1590,6 +1604,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactNickname::FieldNickname, "Nickname");
\brief The QContactNote class contains a note associated
with a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1627,6 +1642,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactNote::FieldNote, "Note");
\brief The QContactTag class contains a tag associated with a
contact.
\ingroup contacts-details
+ \since 1.0
Typically the tags associated with a contact will be distinct,
although this is usually only enforced when the contact is saved
@@ -1689,6 +1705,7 @@ QContactFilter QContactTag::match(const QString &subString)
\ingroup contacts-details
\brief The QContactThumbnail class contains a thumbnail used
in display lists to represent the contact.
+ \since 1.0
Users can specify a thumbnail image for a contact via this detail.
Support for this detail is backend specific; some managers will save
@@ -1746,6 +1763,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactThumbnail::FieldThumbnail, "Thumbnail");
\brief The QContactTimestamp class contains the creation and
last-modified timestamp associated with the contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1799,6 +1817,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactTimestamp::FieldCreationTimestamp, "CreationTim
\class QContactType
\brief The QContactType class describes the type of the contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1863,6 +1882,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactType::TypeGroup, "Group");
\brief The QContactDisplayLabel class is the (possibly synthesized)
display label of a contact.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -1897,6 +1917,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactDisplayLabel::FieldLabel, "Label");
\class QContactOnlineAccount
\brief The QContactOnlineAccount class provides an online account,
which the contact uses to communicate with friends and family.
+ \since 1.0
A QContactOnlineAccount consists of the account details required to
communicate with the contact, including the account URI, the capabilities
@@ -2072,7 +2093,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactOnlineAccount::ProtocolYahoo, "yahoo");
/*!
\fn QContactOnlineAccount::setAccountUri(const QString& accountUri)
-
+
Sets the universal resource identifier of the contact's online
account to \a accountUri.
*/
@@ -2098,7 +2119,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactOnlineAccount::ProtocolYahoo, "yahoo");
/*!
\fn QContactOnlineAccount::setSubTypes(const QStringList& subTypes)
-
+
Sets the subtypes which this detail implements to be those
contained in the list of given \a subTypes.
*/
@@ -2136,6 +2157,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactOnlineAccount::ProtocolYahoo, "yahoo");
\brief The QContactOrganization class provides details about an
organization that the contact is either a part of, or stands for.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -2226,7 +2248,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactOrganization::FieldAssistantName, "AssistantNam
/*!
\fn QContactOrganization::setDepartment(const QStringList& department)
-
+
Sets the contact's department of the organization stored in this
detail to \a department. The department is a list of progressively
finer-grained information.
@@ -2240,7 +2262,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactOrganization::FieldAssistantName, "AssistantNam
/*!
\fn QContactOrganization::setLocation(const QString& location)
-
+
Sets the location (e.g. city or suburb) of the organization stored
in this detail to \a location.
*/
@@ -2274,7 +2296,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactOrganization::FieldAssistantName, "AssistantNam
/*!
\fn QContactOrganization::setAssistantName(const QString& assistantName)
-
+
Sets the name of the default assistant of contacts belonging to
this organization to \a assistantName.
*/
@@ -2293,6 +2315,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactOrganization::FieldAssistantName, "AssistantNam
\brief The QContactRingtone class provides a ringtone associated
with a contact
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
@@ -2377,6 +2400,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactRingtone::FieldVibrationRingtoneUrl, "Vibration
\class QContactPresence
\brief The QContactPresence class provides presence information
for an online account of a contact.
+ \since 1.0
Presence information for a particular QContactOnlineAccount detail is provided
in a QContactPresence detail which is linked (via linkedDetailUris()) to the
@@ -2552,6 +2576,7 @@ Q_DEFINE_LATIN1_CONSTANT(QContactPresence::FieldCustomMessage, "CustomMessage");
\brief The QContactGlobalPresence class provides aggregated presence information
for a contact, synthesized or supplied by the backend.
\ingroup contacts-details
+ \since 1.0
This leaf-class has been part of the default schema since version
1.0 of the Qt Mobility project.
diff --git a/src/contacts/engines/qcontactinvalidbackend.cpp b/src/contacts/engines/qcontactinvalidbackend.cpp
index 6124d658ee..115a164343 100644
--- a/src/contacts/engines/qcontactinvalidbackend.cpp
+++ b/src/contacts/engines/qcontactinvalidbackend.cpp
@@ -45,12 +45,13 @@
/*!
\class QContactInvalidEngine
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\brief The QContactInvalidEngine class provides an implementation of
QContactManagerEngine whose functions always return an error.
-
+
The invalid engine may be used as a reference or test engine, but does nothing.
*/
diff --git a/src/contacts/engines/qcontactmemorybackend.cpp b/src/contacts/engines/qcontactmemorybackend.cpp
index 05f21fcf9f..b97288ec33 100644
--- a/src/contacts/engines/qcontactmemorybackend.cpp
+++ b/src/contacts/engines/qcontactmemorybackend.cpp
@@ -59,22 +59,23 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactMemoryEngine
-
+
\inmodule QtContacts
-
+
\brief The QContactMemoryEngine class provides an in-memory implementation
of a contacts backend.
+ \since 1.0
\internal
-
+
It may be used as a reference implementation, or when persistent storage is not required.
-
+
During construction, it will load the in-memory data associated with the memory store
identified by the "id" parameter from the given parameters if it exists, or a new,
anonymous store if it does not.
-
+
Data stored in this engine is only available in the current process.
-
+
This engine supports sharing, so an internal reference count is increased
whenever a manager uses this backend, and is decreased when the manager
no longer requires this engine.
@@ -230,7 +231,7 @@ QList<QContact> QContactMemoryEngine::contacts(const QContactFilter& filter, con
}
/*! Saves the given contact \a theContact, storing any error to \a error and
- filling the \a changeSet with ids of changed contacts as required
+ filling the \a changeSet with ids of changed contacts as required
Returns true if the operation was successful otherwise false.
*/
bool QContactMemoryEngine::saveContact(QContact* theContact, QContactChangeSet& changeSet, QContactManager::Error* error)
@@ -381,7 +382,7 @@ bool QContactMemoryEngine::removeContacts(const QList<QContactLocalId>& contactI
*error = QContactManager::BadArgumentError;
return false;
}
-
+
QContactChangeSet changeSet;
QContactLocalId current;
QContactManager::Error operationError = QContactManager::NoError;
@@ -435,7 +436,7 @@ QList<QContactRelationship> QContactMemoryEngine::relationships(const QString& r
}
/*! Saves the given relationship \a relationship, storing any error to \a error and
- filling the \a changeSet with ids of changed contacts and relationships as required
+ filling the \a changeSet with ids of changed contacts and relationships as required
Returns true if the operation was successful otherwise false.
*/
bool QContactMemoryEngine::saveRelationship(QContactRelationship* relationship, QContactChangeSet& changeSet, QContactManager::Error* error)
@@ -527,7 +528,7 @@ bool QContactMemoryEngine::saveRelationships(QList<QContactRelationship>* relati
}
/*! Removes the given relationship \a relationship, storing any error to \a error and
- filling the \a changeSet with ids of changed contacts and relationships as required
+ filling the \a changeSet with ids of changed contacts and relationships as required
Returns true if the operation was successful otherwise false.
*/
bool QContactMemoryEngine::removeRelationship(const QContactRelationship& relationship, QContactChangeSet& changeSet, QContactManager::Error* error)
@@ -594,7 +595,7 @@ QMap<QString, QContactDetailDefinition> QContactMemoryEngine::detailDefinitions(
}
/*! Saves the given detail definition \a def, storing any error to \a error and
- filling the \a changeSet with ids of changed contacts as required
+ filling the \a changeSet with ids of changed contacts as required
Returns true if the operation was successful otherwise false.
*/
bool QContactMemoryEngine::saveDetailDefinition(const QContactDetailDefinition& def, const QString& contactType, QContactChangeSet& changeSet, QContactManager::Error* error)
diff --git a/src/contacts/engines/qcontactsimulatorbackend.cpp b/src/contacts/engines/qcontactsimulatorbackend.cpp
index fc257d9e30..0163f9acb9 100644
--- a/src/contacts/engines/qcontactsimulatorbackend.cpp
+++ b/src/contacts/engines/qcontactsimulatorbackend.cpp
@@ -66,6 +66,7 @@ using namespace Simulator;
/*!
* \class QContactSimulatorEngine
* \brief This class provides a simulator-managed in-memory backend.
+ \since 1.0
* \internal
*/
diff --git a/src/contacts/filters/qcontactchangelogfilter.cpp b/src/contacts/filters/qcontactchangelogfilter.cpp
index abead5ac15..3c2338e45b 100644
--- a/src/contacts/filters/qcontactchangelogfilter.cpp
+++ b/src/contacts/filters/qcontactchangelogfilter.cpp
@@ -50,11 +50,12 @@ QTM_BEGIN_NAMESPACE
\class QContactChangeLogFilter
\brief The QContactChangeLogFilter class provides a filter based around a
contact timestamp criterion.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-filters
-
+
It may be used to select contacts which have been updated or created
within a certain period of time.
*/
diff --git a/src/contacts/filters/qcontactdetailfilter.cpp b/src/contacts/filters/qcontactdetailfilter.cpp
index b06f5787a0..de36b07795 100644
--- a/src/contacts/filters/qcontactdetailfilter.cpp
+++ b/src/contacts/filters/qcontactdetailfilter.cpp
@@ -49,12 +49,13 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactDetailFilter
\brief The QContactDetailFilter class provides a filter based around a detail value criterion
-
-
+
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-filters
-
+
It may be used to select contacts which contain a detail of a particular definition with a particular value
*/
diff --git a/src/contacts/filters/qcontactdetailrangefilter.cpp b/src/contacts/filters/qcontactdetailrangefilter.cpp
index 0712043098..855fb5d01d 100644
--- a/src/contacts/filters/qcontactdetailrangefilter.cpp
+++ b/src/contacts/filters/qcontactdetailrangefilter.cpp
@@ -50,11 +50,12 @@ QTM_BEGIN_NAMESPACE
\class QContactDetailRangeFilter
\brief The QContactDetailRangeFilter class provides a filter based around
a detail value range criterion.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-filters
-
+
It may be used to select contacts which contain a detail of a particular definition with a particular value that lies in
a range (either open or closed).
*/
diff --git a/src/contacts/filters/qcontactintersectionfilter.cpp b/src/contacts/filters/qcontactintersectionfilter.cpp
index addc5f35e5..b9619b93b0 100644
--- a/src/contacts/filters/qcontactintersectionfilter.cpp
+++ b/src/contacts/filters/qcontactintersectionfilter.cpp
@@ -49,11 +49,12 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactIntersectionFilter
\brief The QContactIntersectionFilter class provides a filter which intersects the results of other filters.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-filters
-
+
It may be used to select contacts which match all of the filters in the intersection
*/
diff --git a/src/contacts/filters/qcontactinvalidfilter.cpp b/src/contacts/filters/qcontactinvalidfilter.cpp
index 816d77de32..fccb99c76b 100644
--- a/src/contacts/filters/qcontactinvalidfilter.cpp
+++ b/src/contacts/filters/qcontactinvalidfilter.cpp
@@ -45,11 +45,12 @@
/*!
\class QContactInvalidFilter
\brief The QContactInvalidFilter class matches no contacts.
-
+
\inmodule QtContacts
-
+
\ingroup contacts-filters
-
+ \since 1.0
+
This class provides a filter which will never match any contacts
*/
diff --git a/src/contacts/filters/qcontactlocalidfilter.cpp b/src/contacts/filters/qcontactlocalidfilter.cpp
index 1f25d61cee..ff9564060c 100644
--- a/src/contacts/filters/qcontactlocalidfilter.cpp
+++ b/src/contacts/filters/qcontactlocalidfilter.cpp
@@ -49,12 +49,13 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactLocalIdFilter
\brief The QContactLocalIdFilter class provides a filter based around a list of contact ids
-
-
+
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-filters
-
+
It may be used to select contacts whose ids are contained in the given list of ids.
*/
diff --git a/src/contacts/filters/qcontactrelationshipfilter.cpp b/src/contacts/filters/qcontactrelationshipfilter.cpp
index b2127f81f9..32eec1d4d6 100644
--- a/src/contacts/filters/qcontactrelationshipfilter.cpp
+++ b/src/contacts/filters/qcontactrelationshipfilter.cpp
@@ -49,12 +49,13 @@ QTM_BEGIN_NAMESPACE
\class QContactRelationshipFilter
\brief The QContactRelationshipFilter class provides a filter based
around relationship criteria.
-
-
+
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-filters
-
+
It may be used to select contacts which are involved in relationships
which are of a certain type, or which involve certain contacts.
diff --git a/src/contacts/filters/qcontactunionfilter.cpp b/src/contacts/filters/qcontactunionfilter.cpp
index cb47c795f3..a1cdb3d202 100644
--- a/src/contacts/filters/qcontactunionfilter.cpp
+++ b/src/contacts/filters/qcontactunionfilter.cpp
@@ -50,12 +50,13 @@ QTM_BEGIN_NAMESPACE
\class QContactUnionFilter
\brief The QContactUnionFilter class provides a filter which unions the
results of other filters.
-
-
- \inmodule QtContacts
-
+
+
+ \inmodule QtContacts
+ \since 1.0
+
\ingroup contacts-filters
-
+
It may be used to select contacts which match all of the filters in the union
*/
diff --git a/src/contacts/qcontact.cpp b/src/contacts/qcontact.cpp
index 58c0f46d61..c30646a5da 100644
--- a/src/contacts/qcontact.cpp
+++ b/src/contacts/qcontact.cpp
@@ -54,11 +54,12 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContact
-
+
\brief The QContact class represents an addressbook contact.
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-main
Individual contacts, groups, and other types of contacts are represented with
@@ -82,7 +83,7 @@ QTM_BEGIN_NAMESPACE
a group contact would have a \c "HasMember" relationship with the QContacts that
are its members. Spouses, managers and assistants can also be represented this
way.
-
+
A QContact instance represents the in-memory version of an addressbook contact,
and has no tie to a specific QContactManager. It is possible for the contents
of a QContact to change independently of the contents that are stored persistently
@@ -100,7 +101,7 @@ QTM_BEGIN_NAMESPACE
you will need to ask a specific QContactManager for the new display label for the
contact, since system settings (like the order of first or last names) can vary
between managers.
-
+
\sa QContactManager, QContactDetail
*/
diff --git a/src/contacts/qcontactabstractrequest.cpp b/src/contacts/qcontactabstractrequest.cpp
index ba92fc147d..78f3c1100a 100644
--- a/src/contacts/qcontactabstractrequest.cpp
+++ b/src/contacts/qcontactabstractrequest.cpp
@@ -60,6 +60,7 @@ QTM_BEGIN_NAMESPACE
asynchronous requests to be made of a manager if it supports them.
\inmodule QtContacts
+ \since 1.0
\ingroup contacts-main
diff --git a/src/contacts/qcontactaction.cpp b/src/contacts/qcontactaction.cpp
index 290bb83d99..687c48952c 100644
--- a/src/contacts/qcontactaction.cpp
+++ b/src/contacts/qcontactaction.cpp
@@ -62,6 +62,7 @@ QContactAction::~QContactAction()
\ingroup contacts-actions
\inmodule QtContacts
+ \since 1.2
An action is anything that can be performed on a contact, or a detail of a contact. An example
of an action might be "Send Email" or "Dial" or "Plot Navigation Route". One action may be
diff --git a/src/contacts/qcontactactiondescriptor.cpp b/src/contacts/qcontactactiondescriptor.cpp
index 1987d3f230..f6d7f4a556 100644
--- a/src/contacts/qcontactactiondescriptor.cpp
+++ b/src/contacts/qcontactactiondescriptor.cpp
@@ -55,6 +55,7 @@ QTM_BEGIN_NAMESPACE
uniquely identifies a specific implementation of an action
\ingroup contacts-actions
\inmodule QtContacts
+ \since 1.2
*/
/*!
diff --git a/src/contacts/qcontactactionfactory.cpp b/src/contacts/qcontactactionfactory.cpp
index 1344c3a570..2d433819ae 100644
--- a/src/contacts/qcontactactionfactory.cpp
+++ b/src/contacts/qcontactactionfactory.cpp
@@ -50,6 +50,7 @@ QTM_BEGIN_NAMESPACE
to retrieve instances of action implementations
\inmodule QtContacts
\ingroup contacts-actions
+ \since 1.2
*/
/*!
diff --git a/src/contacts/qcontactactionmanager_p.cpp b/src/contacts/qcontactactionmanager_p.cpp
index 4fc3c2205f..359c26f686 100644
--- a/src/contacts/qcontactactionmanager_p.cpp
+++ b/src/contacts/qcontactactionmanager_p.cpp
@@ -60,6 +60,7 @@ Q_GLOBAL_STATIC(QContactActionManager, contactActionManagerInstance)
\class QContactActionManager
This class uses a plugin to delegate discovery of actions (to avoid a dependency on SFW for QtContacts)
It is an implementation detail of QContactAction.
+ \since 1.2
*/
QContactActionManager* QContactActionManager::instance()
diff --git a/src/contacts/qcontactactiontarget.cpp b/src/contacts/qcontactactiontarget.cpp
index 546149b113..5d968edbfa 100644
--- a/src/contacts/qcontactactiontarget.cpp
+++ b/src/contacts/qcontactactiontarget.cpp
@@ -56,6 +56,7 @@ QTM_BEGIN_NAMESPACE
which together should be used by the action.
\ingroup contacts-actions
\inmodule QtContacts
+ \since 1.2
*/
/*!
diff --git a/src/contacts/qcontactchangeset.cpp b/src/contacts/qcontactchangeset.cpp
index f90197158d..70150028c1 100644
--- a/src/contacts/qcontactchangeset.cpp
+++ b/src/contacts/qcontactchangeset.cpp
@@ -48,19 +48,20 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactChangeSet
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\brief The QContactChangeSet class provides a simple API to
simplify the emission of state-change signals from
QContactManagerEngine implementations.
-
+
This class can be utilised by backend implementations to ensure
correct emission of the \l QContactManagerEngine::dataChanged(), \l
QContactManagerEngine::contactsAdded(), \l
QContactManagerEngine::contactsChanged() and \l
QContactManagerEngine::contactsRemoved().
-
+
\sa QContactManagerEngine
*/
diff --git a/src/contacts/qcontactdetail.cpp b/src/contacts/qcontactdetail.cpp
index 84a8be1080..2c9c18058d 100644
--- a/src/contacts/qcontactdetail.cpp
+++ b/src/contacts/qcontactdetail.cpp
@@ -78,13 +78,14 @@ Q_DESTRUCTOR_FUNCTION(qClearAllocatedStringHash)
/*!
\class QContactDetail
-
+
\brief The QContactDetail class represents a single, complete detail about a contact.
\inmodule QtContacts
\ingroup contacts-main
-
+ \since 1.0
+
All of the information for a contact is stored in one or more QContactDetail objects.
-
+
A detail is a group of logically related bits of data - for example, a street address is a single
detail that has multiple fields (number, region, country etc). Every QContactDetail has the name of an
associated QContactDetailDefinition that describes the fields, their data type, and any
@@ -120,7 +121,7 @@ Q_DESTRUCTOR_FUNCTION(qClearAllocatedStringHash)
standardized access to values. For example, \l QContactPhoneNumber provides
a convenient API for manipulating a QContactDetail as a phone number, according
to the schema.
-
+
In general, QContactDetail and the built in subclasses (like \l QContactPhoneNumber) provide
constants for the names of fields (like \l QContactPhoneNumber::FieldNumber), and for predefined
common values like \l QContactDetail::ContextHome. Typically the constants for field names start
@@ -132,36 +133,36 @@ Q_DESTRUCTOR_FUNCTION(qClearAllocatedStringHash)
operation, and declare your own field constants with \l Q_DECLARE_LATIN1_CONSTANT.
See the predefined detail subclasses (like \l QContactPhoneNumber,
\l QContactAddress) for more information.
-
+
QContactDetail objects act like type checked values. In general, you can assign them
to and fro and have reasonable behaviour, like the following example.
-
+
\code
-
+
QContactPhoneNumber number;
number.setNumber("555-1212");
// number.value(QContactPhoneNumber::FieldNumber) == "555-1212";
// number.definitionName() == QContactPhoneNumber::DefinitionName
-
+
QContactDetail detail = number;
// detail.value(QContactPhoneNumber::FieldNumber) == "555-1212";
// detail.definitionName() == QContactPhoneNumber::DefinitionName
-
+
QContactPhoneNumber otherNumber = detail;
// otherNumber.number() == "555-1212";
// otherNumber.definitionName() == QContactPhoneNumber::DefinitionName
-
+
QContactAddress address = detail;
// address is now a default constructed QContactAddress
// address.value(QContactPhoneNumber::FieldNumber) is empty
// address.definitionName() == QContactAddress::DefinitionName
-
+
QContactAddress otherAddress = number;
// otherAddress is now a default constructed QContactAddress
// otherAddress.value(QContactPhoneNumber::FieldNumber) is empty
// otherAddress.definitionName() == QContactAddress::DefinitionName
\endcode
-
+
\sa QContact, QContactDetailDefinition, QContactDetailFilter, QContactDetailRangeFilter, Q_DECLARE_CUSTOM_CONTACT_DETAIL
*/
diff --git a/src/contacts/qcontactdetaildefinition.cpp b/src/contacts/qcontactdetaildefinition.cpp
index 2d82866785..1dc7f5a784 100644
--- a/src/contacts/qcontactdetaildefinition.cpp
+++ b/src/contacts/qcontactdetaildefinition.cpp
@@ -52,7 +52,8 @@ QTM_BEGIN_NAMESPACE
\class QContactDetailDefinition
\inmodule QtContacts
-
+ \since 1.0
+
The QContactDetailDefinition class provides the specification for
a detail that can be included in any particular QContact.
The definition does not include any data, but defines
diff --git a/src/contacts/qcontactdetailfielddefinition.cpp b/src/contacts/qcontactdetailfielddefinition.cpp
index 81d20f91cc..edd4d4cad3 100644
--- a/src/contacts/qcontactdetailfielddefinition.cpp
+++ b/src/contacts/qcontactdetailfielddefinition.cpp
@@ -51,9 +51,10 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactDetailFieldDefinition
\brief The QContactDetailFieldDefinition class provides a field in a QContactDetail.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
Encapsulates information about a particular datum which may be part of a
QContactDetail, including the type and allowable values.
*/
diff --git a/src/contacts/qcontactfetchhint.cpp b/src/contacts/qcontactfetchhint.cpp
index f1dd2c94bd..56df42d4a2 100644
--- a/src/contacts/qcontactfetchhint.cpp
+++ b/src/contacts/qcontactfetchhint.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\class QContactFetchHint
\inmodule QtContacts
+ \since 1.0
\brief The QContactFetchHint class provides hints to the manager about which contact
information needs to be retrieved in an asynchronous fetch request or a synchronous
diff --git a/src/contacts/qcontactfilter.cpp b/src/contacts/qcontactfilter.cpp
index 78dd7ed2b7..d55e06712d 100644
--- a/src/contacts/qcontactfilter.cpp
+++ b/src/contacts/qcontactfilter.cpp
@@ -58,9 +58,10 @@
through a QContactManager.
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-main
-
+
This class is used as a parameter to various functions offered by QContactManager, to allow
selection of contacts which have certain details or properties.
*/
diff --git a/src/contacts/qcontactid.cpp b/src/contacts/qcontactid.cpp
index 12605e6fc1..efe12b5753 100644
--- a/src/contacts/qcontactid.cpp
+++ b/src/contacts/qcontactid.cpp
@@ -49,12 +49,13 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactId
-
+
\inmodule QtContacts
-
+
\brief The QContactId class provides information that uniquely identifies
a contact in a particular manager.
-
+ \since 1.0
+
It consists of a manager URI which identifies the manager which contains the contact,
and the local id of the contact in that manager.
diff --git a/src/contacts/qcontactmanager.cpp b/src/contacts/qcontactmanager.cpp
index dde55ed953..5cc7d92e42 100644
--- a/src/contacts/qcontactmanager.cpp
+++ b/src/contacts/qcontactmanager.cpp
@@ -56,9 +56,10 @@ QTM_BEGIN_NAMESPACE
\class QContactManager
\brief The QContactManager class provides an interface which allows clients with access to contact information stored in a particular backend.
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-main
-
+
This class provides an abstraction of a datastore or aggregation of datastores which contains contact information.
It provides methods to retrieve and manipulate contact information, contact relationship information, and
supported schema definitions. It also provides metadata and error information reporting.
@@ -209,7 +210,7 @@ bool QContactManager::parseUri(const QString& uri, QString* pManagerId, QMap<QSt
\a implementationVersion. This function is generally useful only if you intend to construct a
manager with the \l fromUri() function, or wish to set the manager URI field in a QContactId
manually (for synchronization or other purposes). Most clients will not need to use this function. */
-QString QContactManager::buildUri(const QString& managerName, const QMap<QString, QString>& params, int implementationVersion)
+QString QContactManager::buildUri(const QString& managerName, const QMap<QString, QString>& params, int implementationVersion)
{
QString ret(QLatin1String("qtcontacts:%1:%2"));
// we have to escape each param
@@ -285,19 +286,6 @@ QContactManager::QContactManager(const QString& managerName, const QMap<QString,
void QContactManager::createEngine(const QString& managerName, const QMap<QString, QString>& parameters)
{
d->createEngine(managerName, parameters);
- connect(d->m_engine, SIGNAL(dataChanged()), this, SIGNAL(dataChanged()));
- connect(d->m_engine, SIGNAL(contactsAdded(QList<QContactLocalId>)), this, SIGNAL(contactsAdded(QList<QContactLocalId>)));
- connect(d->m_engine, SIGNAL(contactsChanged(QList<QContactLocalId>)), this, SIGNAL(contactsChanged(QList<QContactLocalId>)));
- connect(d->m_engine, SIGNAL(contactsRemoved(QList<QContactLocalId>)), this, SIGNAL(contactsRemoved(QList<QContactLocalId>)));
- connect(d->m_engine, SIGNAL(relationshipsAdded(QList<QContactLocalId>)), this, SIGNAL(relationshipsAdded(QList<QContactLocalId>)));
- connect(d->m_engine, SIGNAL(relationshipsRemoved(QList<QContactLocalId>)), this, SIGNAL(relationshipsRemoved(QList<QContactLocalId>)));
- connect(d->m_engine, SIGNAL(selfContactIdChanged(QContactLocalId,QContactLocalId)), this, SIGNAL(selfContactIdChanged(QContactLocalId,QContactLocalId)));
-
- connect(d->m_engine, SIGNAL(contactsChanged(QList<QContactLocalId>)),
- this, SLOT(_q_contactsUpdated(QList<QContactLocalId>)));
- connect(d->m_engine, SIGNAL(contactsRemoved(QList<QContactLocalId>)),
- this, SLOT(_q_contactsDeleted(QList<QContactLocalId>)));
-
QContactManagerData::m_aliveEngines.insert(this);
}
@@ -311,15 +299,15 @@ void QContactManager::createEngine(const QString& managerName, const QMap<QStrin
If an empty \a managerName is specified, the default implementation for the platform will be instantiated.
If the specified implementation version is not available, the manager with the name \a managerName with the default implementation version is instantiated.
*/
-QContactManager::QContactManager(const QString& managerName, int implementationVersion, const QMap<QString, QString>& parameters, QObject* parent)
- : QObject(parent),
- d(new QContactManagerData)
-{
- QMap<QString, QString> params = parameters;
+QContactManager::QContactManager(const QString& managerName, int implementationVersion, const QMap<QString, QString>& parameters, QObject* parent)
+ : QObject(parent),
+ d(new QContactManagerData)
+{
+ QMap<QString, QString> params = parameters;
params[QString(QLatin1String(QTCONTACTS_IMPLEMENTATION_VERSION_NAME))] = QString::number(implementationVersion);
- createEngine(managerName, params);
-}
-
+ createEngine(managerName, params);
+}
+
/*! Frees the memory used by the QContactManager */
QContactManager::~QContactManager()
{
@@ -529,7 +517,7 @@ QContact QContactManager::contact(const QContactLocalId& contactId, const QConta
Returns the list of contacts with the ids given by \a localIds. There is a one-to-one
correspondence between the returned contacts and the supplied \a localIds.
-
+
If there is an invalid id in \a localIds, then an empty QContact will take its place in the
returned list. The deprecated \a errorMap parameter can be supplied to store per-input errors in.
In all cases, calling \l errorMap() will return the per-input errors for the latest batch function.
@@ -1060,7 +1048,7 @@ QString QContactManager::managerName() const
QMap<QString, QString> QContactManager::managerParameters() const
{
QMap<QString, QString> params = d->m_engine->managerParameters();
-
+
params.remove(QString::fromAscii(QTCONTACTS_VERSION_NAME));
params.remove(QString::fromAscii(QTCONTACTS_IMPLEMENTATION_VERSION_NAME));
return params;
@@ -1075,6 +1063,42 @@ QString QContactManager::managerUri() const
}
+/*!
+ \internal
+
+ When someone connects to this manager, connect the corresponding signal from the engine, if we
+ haven't before. If we have, just increment a count.
+
+ This allows lazy evaluation on the engine side (e.g. setting up dbus watchers) and prevents
+ unnecessary work.
+*/
+void QContactManager::connectNotify(const char *signal)
+{
+ /* For most signals we just connect from the engine to ourselves, since we just proxy, but we should connect only once */
+ QByteArray ba(signal);
+ if (!d->m_connectedSignals.contains(ba)) {
+ connect(d->m_engine, signal, this, signal);
+ }
+ d->m_connectedSignals[ba]++;
+}
+
+/*!
+ \internal
+
+ When someone disconnects, disconnect from the engine too if there are no more users of that signal.
+*/
+void QContactManager::disconnectNotify(const char *signal)
+{
+ QByteArray ba(signal);
+ if (d->m_connectedSignals[ba] <= 1) {
+ disconnect(d->m_engine, signal, this, signal);
+ d->m_connectedSignals.remove(ba);
+ } else {
+ d->m_connectedSignals[ba]--;
+ }
+}
+
+
#include "moc_qcontactmanager.cpp"
QTM_END_NAMESPACE
diff --git a/src/contacts/qcontactmanager.h b/src/contacts/qcontactmanager.h
index d92bb6f831..b74616db68 100644
--- a/src/contacts/qcontactmanager.h
+++ b/src/contacts/qcontactmanager.h
@@ -197,6 +197,10 @@ Q_SIGNALS:
void relationshipsRemoved(const QList<QContactLocalId>& affectedContactIds);
void selfContactIdChanged(const QContactLocalId& oldId, const QContactLocalId& newId); // need both? or just new?
+protected:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+
private:
friend class QContactManagerData;
void createEngine(const QString& managerName, const QMap<QString, QString>& parameters);
diff --git a/src/contacts/qcontactmanager_p.cpp b/src/contacts/qcontactmanager_p.cpp
index 49e5ce4447..e91a35038a 100644
--- a/src/contacts/qcontactmanager_p.cpp
+++ b/src/contacts/qcontactmanager_p.cpp
@@ -306,16 +306,43 @@ void QContactManagerData::loadFactories()
// Observer stuff
-void QContactManagerData::registerObserver(QContactObserver* observer)
+void QContactManagerData::registerObserver(QContactManager* manager, QContactObserver* observer)
{
- m_observerForContact.insert(observer->contactLocalId(), observer);
+ if (!manager)
+ return;
+
+ QContactManagerData* d = QContactManagerData::get(manager);
+
+ d->m_observerForContact.insert(observer->contactLocalId(), observer);
+
+ // If this is the first observer, connect to the engine too
+ if (d->m_observerForContact.size() == 1) {
+ // This takes advantage of the manager connectNotify code
+ QObject::connect(manager, SIGNAL(contactsChanged(QList<QContactLocalId>)),
+ manager, SLOT(_q_contactsUpdated(QList<QContactLocalId>)));
+ QObject::connect(manager, SIGNAL(contactsRemoved(QList<QContactLocalId>)),
+ manager, SLOT(_q_contactsDeleted(QList<QContactLocalId>)));
+ }
}
-void QContactManagerData::unregisterObserver(QContactObserver* observer)
+void QContactManagerData::unregisterObserver(QContactManager* manager, QContactObserver* observer)
{
- QContactLocalId key = m_observerForContact.key(observer);
+ Q_ASSERT(manager);
+
+ QContactManagerData* d = QContactManagerData::get(manager);
+
+ QContactLocalId key = d->m_observerForContact.key(observer);
if (key != 0) {
- m_observerForContact.remove(key, observer);
+ d->m_observerForContact.remove(key, observer);
+
+ // If there are now no more observers, disconnect from the engine
+ if (d->m_observerForContact.size() == 0) {
+ // This takes advantage of the manager disconnectNotify code
+ QObject::disconnect(manager, SIGNAL(contactsChanged(QList<QContactLocalId>)),
+ manager, SLOT(_q_contactsUpdated(QList<QContactLocalId>)));
+ QObject::disconnect(manager, SIGNAL(contactsRemoved(QList<QContactLocalId>)),
+ manager, SLOT(_q_contactsDeleted(QList<QContactLocalId>)));
+ }
}
}
diff --git a/src/contacts/qcontactmanager_p.h b/src/contacts/qcontactmanager_p.h
index 729e8d553f..a990f4f83e 100644
--- a/src/contacts/qcontactmanager_p.h
+++ b/src/contacts/qcontactmanager_p.h
@@ -104,13 +104,16 @@ public:
static void loadStaticFactories();
// Observer stuff
- void registerObserver(QContactObserver* observer);
- void unregisterObserver(QContactObserver* observer);
+ static void registerObserver(QContactManager *m, QContactObserver* observer);
+ static void unregisterObserver(QContactManager *m, QContactObserver* observer);
void _q_contactsUpdated(const QList<QContactLocalId>& ids);
void _q_contactsDeleted(const QList<QContactLocalId>& ids);
QMultiHash<QContactLocalId, QContactObserver*> m_observerForContact;
+ // Lazy connection stuff - reference counted set
+ QHash<QByteArray, int> m_connectedSignals;
+
private:
Q_DISABLE_COPY(QContactManagerData)
};
diff --git a/src/contacts/qcontactmanagerengine.cpp b/src/contacts/qcontactmanagerengine.cpp
index 5813f953ea..51e73cb7ad 100644
--- a/src/contacts/qcontactmanagerengine.cpp
+++ b/src/contacts/qcontactmanagerengine.cpp
@@ -74,8 +74,9 @@ static bool validateActionFilter(const QContactFilter& filter);
\brief The QContactManagerEngine class provides the interface for
implementations of the contact manager backend functionality.
\inmodule QtContacts
-
+
\ingroup contacts-backends
+ \since 1.0
Instances of this class are usually provided by a
\l QContactManagerEngineFactory, which is loaded from a plugin.
@@ -1687,7 +1688,7 @@ QContact QContactManagerEngine::compatibleContact(const QContact& original, QCon
detail.removeValue(key);
else
detail.setValue(key, innerValues);
- }
+ }
if (field.dataType() == QVariant::StringList) {
QStringList innerValues = variant.toStringList();
QMutableListIterator<QString> it(innerValues);
@@ -2654,7 +2655,7 @@ void QContactManagerEngine::updateRelationshipRemoveRequest(QContactRelationship
\brief The QContactManagerEngineV2 class provides the interface for
implementations of the contact manager backend functionality.
\inmodule QtContacts
-
+
\ingroup contacts-backends
Instances of this class are usually provided by a
@@ -2861,7 +2862,7 @@ bool QContactManagerEngineV2::saveContacts(QList<QContact> *contacts, const QStr
/*!
Returns the list of contacts with the ids given by \a localIds. There is a one-to-one
correspondence between the returned contacts and the supplied \a localIds.
-
+
If there is an invalid id in \a localIds, then an empty QContact will take its place in the
returned list and an entry will be inserted into \a errorMap.
diff --git a/src/contacts/qcontactmanagerenginefactory.cpp b/src/contacts/qcontactmanagerenginefactory.cpp
index 7fbd81b94f..5f65540827 100644
--- a/src/contacts/qcontactmanagerenginefactory.cpp
+++ b/src/contacts/qcontactmanagerenginefactory.cpp
@@ -48,19 +48,20 @@ QTM_BEGIN_NAMESPACE
\class QContactManagerEngineFactory
\brief The QContactManagerEngineFactory class provides the interface for
plugins that implement QContactManagerEngine functionality.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-backends
-
+
This class provides a simple interface for the creation of
manager engine instances. Each factory has a specific id
associated with it, which forms the \c managerName parameter
when creating \l QContactManager objects.
-
+
More information on writing a contacts engine plugin is available in
the \l{Qt Contacts Manager Engines} documentation.
-
+
\sa QContactManager, QContactManagerEngine
*/
diff --git a/src/contacts/qcontactobserver.cpp b/src/contacts/qcontactobserver.cpp
index cf92cd6015..c0fcc3c078 100644
--- a/src/contacts/qcontactobserver.cpp
+++ b/src/contacts/qcontactobserver.cpp
@@ -49,7 +49,6 @@ class QContactObserverPrivate
public:
QContactLocalId m_localId;
QWeakPointer<QContactManager> m_manager;
- QContactManagerData* m_managerPrivate;
};
QTM_END_NAMESPACE
@@ -76,8 +75,7 @@ QContactObserver::QContactObserver(QContactManager* manager,
{
d->m_localId = localId;
d->m_manager = manager;
- d->m_managerPrivate = QContactManagerData::get(manager);
- d->m_managerPrivate->registerObserver(this);
+ QContactManagerData::registerObserver(manager, this);
}
/*!
@@ -85,8 +83,8 @@ QContactObserver::QContactObserver(QContactManager* manager,
*/
QContactObserver::~QContactObserver()
{
- if (d->m_manager.data()) {
- d->m_managerPrivate->unregisterObserver(this);
+ if (!d->m_manager.isNull()) {
+ QContactManagerData::unregisterObserver(d->m_manager.data(), this);
}
delete d;
}
diff --git a/src/contacts/qcontactrelationship.cpp b/src/contacts/qcontactrelationship.cpp
index fe74ec22a5..8fb2772f81 100644
--- a/src/contacts/qcontactrelationship.cpp
+++ b/src/contacts/qcontactrelationship.cpp
@@ -57,21 +57,22 @@ QTM_BEGIN_NAMESPACE
\class QContactRelationship
\brief The QContactRelationship class describes a one-to-one relationship
between a locally-stored contact and another (possibly remote) contact.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-main
-
+
Each relationship is uniquely identified by the combination of the first
contact id, second contact id, and the relationship type.
-
+
A relationship should not contain a second contact which is the same as
the first contact.
Any local contacts which are referenced in the relationship (that is, any
source contact, or any second contact whose manager URI is left empty or
whose manager URI references the manager that stores the source contact,
and in which the relationship will be saved) should exist.
-
+
If any of these requirements are not met, validation of the relationship
may fail when attempting to save the relationship in a QContactManager.
diff --git a/src/contacts/qcontactsortorder.cpp b/src/contacts/qcontactsortorder.cpp
index 3e13a3568e..1847002dfc 100644
--- a/src/contacts/qcontactsortorder.cpp
+++ b/src/contacts/qcontactsortorder.cpp
@@ -51,9 +51,10 @@ QTM_BEGIN_NAMESPACE
/*!
\class QContactSortOrder
\brief The QContactSortOrder class defines how a list of contacts should be ordered according to some criteria
-
+
\inmodule QtContacts
-
+ \since 1.0
+
*/
/*!
diff --git a/src/contacts/requests/qcontactdetaildefinitionfetchrequest.cpp b/src/contacts/requests/qcontactdetaildefinitionfetchrequest.cpp
index 3bab01b802..920c6ee653 100644
--- a/src/contacts/requests/qcontactdetaildefinitionfetchrequest.cpp
+++ b/src/contacts/requests/qcontactdetaildefinitionfetchrequest.cpp
@@ -57,9 +57,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactdetaildefinitionremoverequest.cpp b/src/contacts/requests/qcontactdetaildefinitionremoverequest.cpp
index ad7e90b159..41a9c0e076 100644
--- a/src/contacts/requests/qcontactdetaildefinitionremoverequest.cpp
+++ b/src/contacts/requests/qcontactdetaildefinitionremoverequest.cpp
@@ -56,10 +56,11 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
-
+
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactdetaildefinitionsaverequest.cpp b/src/contacts/requests/qcontactdetaildefinitionsaverequest.cpp
index 1b21dc79c2..b4f2f72c42 100644
--- a/src/contacts/requests/qcontactdetaildefinitionsaverequest.cpp
+++ b/src/contacts/requests/qcontactdetaildefinitionsaverequest.cpp
@@ -57,10 +57,11 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
-
+
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactfetchrequest.cpp b/src/contacts/requests/qcontactfetchrequest.cpp
index 17d30629c3..a59c826803 100644
--- a/src/contacts/requests/qcontactfetchrequest.cpp
+++ b/src/contacts/requests/qcontactfetchrequest.cpp
@@ -57,9 +57,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactlocalidfetchrequest.cpp b/src/contacts/requests/qcontactlocalidfetchrequest.cpp
index 5c0e6f0345..a912a065fa 100644
--- a/src/contacts/requests/qcontactlocalidfetchrequest.cpp
+++ b/src/contacts/requests/qcontactlocalidfetchrequest.cpp
@@ -57,9 +57,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactrelationshipfetchrequest.cpp b/src/contacts/requests/qcontactrelationshipfetchrequest.cpp
index f2eb770c57..913db2145d 100644
--- a/src/contacts/requests/qcontactrelationshipfetchrequest.cpp
+++ b/src/contacts/requests/qcontactrelationshipfetchrequest.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\brief The QContactRelationshipFetchRequest class allows a client to
asynchronously request relationships from a contacts store manager.
+ \since 1.0
For a QContactRelationshipFetchRequest, the resultsAvailable() signal will be emitted when the resultant
relationships (which may be retrieved by calling relationships()), are updated, as well as if
@@ -59,9 +60,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactrelationshipremoverequest.cpp b/src/contacts/requests/qcontactrelationshipremoverequest.cpp
index 7343d80cca..fbec008362 100644
--- a/src/contacts/requests/qcontactrelationshipremoverequest.cpp
+++ b/src/contacts/requests/qcontactrelationshipremoverequest.cpp
@@ -58,9 +58,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactrelationshipsaverequest.cpp b/src/contacts/requests/qcontactrelationshipsaverequest.cpp
index beb9e863c4..caf4f03654 100644
--- a/src/contacts/requests/qcontactrelationshipsaverequest.cpp
+++ b/src/contacts/requests/qcontactrelationshipsaverequest.cpp
@@ -57,9 +57,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactremoverequest.cpp b/src/contacts/requests/qcontactremoverequest.cpp
index 8d0fd50f93..a7e70e13c2 100644
--- a/src/contacts/requests/qcontactremoverequest.cpp
+++ b/src/contacts/requests/qcontactremoverequest.cpp
@@ -56,9 +56,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/contacts/requests/qcontactsaverequest.cpp b/src/contacts/requests/qcontactsaverequest.cpp
index f95012447d..d90dd69790 100644
--- a/src/contacts/requests/qcontactsaverequest.cpp
+++ b/src/contacts/requests/qcontactsaverequest.cpp
@@ -57,9 +57,10 @@ QTM_BEGIN_NAMESPACE
Please see the class documentation of QContactAbstractRequest for more information about
the usage of request classes and ownership semantics.
-
+
\inmodule QtContacts
-
+ \since 1.0
+
\ingroup contacts-requests
*/
diff --git a/src/feedback/qfeedbackactuator.cpp b/src/feedback/qfeedbackactuator.cpp
index ed8eda59f9..edbfd9477f 100644
--- a/src/feedback/qfeedbackactuator.cpp
+++ b/src/feedback/qfeedbackactuator.cpp
@@ -50,6 +50,7 @@ QTM_BEGIN_NAMESPACE
\class QFeedbackActuator
\brief The QFeedbackActuator class describes actuators for tactile feedback.
\inmodule QtFeedback
+ \since 1.1
An actuator knows how to play a \l{QFeedbackEffect}{tactile
effect}. The class gives access to a specified actuator.
diff --git a/src/feedback/qfeedbackeffect.cpp b/src/feedback/qfeedbackeffect.cpp
index add90fb9da..f5e4213823 100644
--- a/src/feedback/qfeedbackeffect.cpp
+++ b/src/feedback/qfeedbackeffect.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\brief The QFeedbackEffect class is the abstract base class for feedback effects.
\ingroup feedback
\inmodule QtFeedback
+ \since 1.1
It represents an effect to provide feedback to a person (i.e., an effect that
affect human senses). The technology available today usually only
diff --git a/src/feedback/qfeedbackplugin.cpp b/src/feedback/qfeedbackplugin.cpp
index 74c11a885c..e87ea88830 100644
--- a/src/feedback/qfeedbackplugin.cpp
+++ b/src/feedback/qfeedbackplugin.cpp
@@ -57,6 +57,7 @@ QTM_BEGIN_NAMESPACE
\class QFeedbackInterface
\ingroup feedback
\inmodule QtFeedback
+ \since 1.1
\brief The QFeedbackInterface class is the base class for plugins providing feedback.
@@ -76,14 +77,14 @@ QTM_BEGIN_NAMESPACE
This enum describes the priority that the plugin should have in case more than one of the same type (Haptics or Theme) is found.
If more than one plugin has the same priority, the first one that has been loaded will be used. However, multiple
file effect plugins can be loaded at the same time.
-
+
\value PluginLowPriority The plugin will have a low priority. This is usually the case for
platform specific-APIs.
- \value PluginNormalPriority The plugin will have a normal priority.
+ \value PluginNormalPriority The plugin will have a normal priority.
This is usually the case for advanced technologies.
- \value PluginHighPriority The plugin will have higher priority. Use this priority if you
+ \value PluginHighPriority The plugin will have higher priority. Use this priority if you
want your own plugin to be used.
*/
@@ -162,7 +163,7 @@ public:
//start loading
tryBackendLoad(effect);
} else {
- //unload
+ //unload
if (QFeedbackFileInterface *subBackend = getBackend(effect))
subBackend->setLoaded(effect, load);
QFeedbackFileEffectPrivate::get(effect)->loadFinished(false); // make sure it's marked unloaded [XXX this isn't allowed to fail!]
@@ -220,7 +221,7 @@ public:
}
private:
- QList<QFeedbackFileInterface*> subBackends;
+ QList<QFeedbackFileInterface*> subBackends;
QFeedbackFileInterface *getBackend(const QFeedbackFileEffect *effect)
{
diff --git a/src/gallery/qabstractgallery.cpp b/src/gallery/qabstractgallery.cpp
index 1e5dd6c0c4..2113cfe1fa 100644
--- a/src/gallery/qabstractgallery.cpp
+++ b/src/gallery/qabstractgallery.cpp
@@ -49,6 +49,7 @@ QTM_BEGIN_NAMESPACE
\ingroup gallery
\ingroup gallery-galleries
+ \since 1.1
\inmodule QtGallery
diff --git a/src/gallery/qdocumentgallery.cpp b/src/gallery/qdocumentgallery.cpp
index 7ee956ea37..cb426a102e 100644
--- a/src/gallery/qdocumentgallery.cpp
+++ b/src/gallery/qdocumentgallery.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\ingroup gallery
\ingroup gallery-galleries
+ \since 1.1
\inmodule QtGallery
diff --git a/src/gallery/qgalleryabstractrequest.cpp b/src/gallery/qgalleryabstractrequest.cpp
index 56388720b7..9aa15a6cbc 100644
--- a/src/gallery/qgalleryabstractrequest.cpp
+++ b/src/gallery/qgalleryabstractrequest.cpp
@@ -122,6 +122,7 @@ void QGalleryAbstractRequestPrivate::_q_progressChanged(int current, int maximum
\ingroup gallery
\ingroup gallery-requests
+ \since 1.1
\inmodule QtGallery
diff --git a/src/gallery/qgalleryabstractresponse.cpp b/src/gallery/qgalleryabstractresponse.cpp
index 66af6180a2..af75aef871 100644
--- a/src/gallery/qgalleryabstractresponse.cpp
+++ b/src/gallery/qgalleryabstractresponse.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\ingroup gallery
\inmodule QtGallery
+ \since 1.1
\brief The QGalleryAbstractResponse class provides a base class for
responses to gallery requests.
diff --git a/src/gallery/qgalleryfilter.cpp b/src/gallery/qgalleryfilter.cpp
index 1bfd238dff..cc5d1fcb64 100644
--- a/src/gallery/qgalleryfilter.cpp
+++ b/src/gallery/qgalleryfilter.cpp
@@ -219,6 +219,7 @@ public:
\ingroup gallery
\ingroup gallery-filters
+ \since 1.1
\inmodule QtGallery
@@ -510,6 +511,7 @@ QGalleryIntersectionFilter operator &&(
\ingroup gallery
\ingroup gallery-filters
+ \since 1.1
\inmodule QtGallery
@@ -795,6 +797,7 @@ QGalleryUnionFilter operator ||(
\ingroup gallery-filters
\inmodule QtGallery
+ \since 1.1
\brief The QGalleryMetaDataFilter class provides a filter which accepts
items with meta-data properties matching a specific value.
diff --git a/src/gallery/qgalleryitemrequest.cpp b/src/gallery/qgalleryitemrequest.cpp
index 1dad0135c3..9dc48212b1 100644
--- a/src/gallery/qgalleryitemrequest.cpp
+++ b/src/gallery/qgalleryitemrequest.cpp
@@ -108,6 +108,7 @@ public:
\ingroup gallery-requests
\inmodule QtGallery
+ \since 1.1
\brief The QGalleryItemRequest class provides a request for the properties
of a single item from a gallery.
diff --git a/src/gallery/qgalleryquerymodel.cpp b/src/gallery/qgalleryquerymodel.cpp
index 93a4d2d244..5dd0788428 100644
--- a/src/gallery/qgalleryquerymodel.cpp
+++ b/src/gallery/qgalleryquerymodel.cpp
@@ -281,6 +281,7 @@ void QGalleryQueryModelPrivate::_q_metaDataChanged(int index, int count, const Q
\ingroup gallery
\inmodule QtGallery
+ \since 1.1
\brief The QGalleryQueryModel class provides a model for the results of a
gallery query.
diff --git a/src/gallery/qgalleryqueryrequest.cpp b/src/gallery/qgalleryqueryrequest.cpp
index 9e0535332f..c4701a3376 100644
--- a/src/gallery/qgalleryqueryrequest.cpp
+++ b/src/gallery/qgalleryqueryrequest.cpp
@@ -83,6 +83,7 @@ public:
\ingroup gallery-requests
\inmodule QtGallery
+ \since 1.1
\brief The QGalleryQueryRequest class provides a request for a set of
items from a gallery.
diff --git a/src/gallery/qgalleryresource.cpp b/src/gallery/qgalleryresource.cpp
index 642a027c4a..a0874553d9 100644
--- a/src/gallery/qgalleryresource.cpp
+++ b/src/gallery/qgalleryresource.cpp
@@ -47,6 +47,7 @@ QTM_BEGIN_NAMESPACE
\class QGalleryResource
\ingroup gallery
+ \since 1.1
\inmodule QtGallery
diff --git a/src/gallery/qgalleryresultset.cpp b/src/gallery/qgalleryresultset.cpp
index 2e9e9550d5..7fe5fd01ce 100644
--- a/src/gallery/qgalleryresultset.cpp
+++ b/src/gallery/qgalleryresultset.cpp
@@ -49,6 +49,7 @@ QTM_BEGIN_NAMESPACE
\class QGalleryResultSet
\ingroup gallery
+ \since 1.1
\inmodule QtGallery
diff --git a/src/gallery/qgallerytyperequest.cpp b/src/gallery/qgallerytyperequest.cpp
index 2138620f5d..3f869628cf 100644
--- a/src/gallery/qgallerytyperequest.cpp
+++ b/src/gallery/qgallerytyperequest.cpp
@@ -108,6 +108,7 @@ public:
\ingroup gallery-requests
\inmodule QtGallery
+ \since 1.1
\brief The QGalleryTypeRequest class provides an interface for requesting
the properties of a type from a gallery.
diff --git a/src/harmattaninstalls/libqtm-examples.install b/src/harmattaninstalls/libqtm-examples.install
index 893e6a32dc..dc9ddb19db 100644
--- a/src/harmattaninstalls/libqtm-examples.install
+++ b/src/harmattaninstalls/libqtm-examples.install
@@ -81,6 +81,7 @@ usr/lib/qtmobility/examples/show_light
usr/lib/qtmobility/examples/show_magneticflux
usr/lib/qtmobility/examples/show_orientation
usr/lib/qtmobility/examples/show_proximity
+usr/lib/qtmobility/examples/show_reflectance
usr/lib/qtmobility/examples/show_rotation
usr/lib/qtmobility/examples/show_tap
usr/lib/qtmobility/examples/simplelog.txt
diff --git a/src/location/landmarks/qlandmark.cpp b/src/location/landmarks/qlandmark.cpp
index a16a6198fa..ff503ea144 100644
--- a/src/location/landmarks/qlandmark.cpp
+++ b/src/location/landmarks/qlandmark.cpp
@@ -155,6 +155,7 @@ bool QLandmarkPrivate::operator== (const QLandmarkPrivate &other) const
\inmodule QtLocation
\ingroup landmarks-main
+ \since 1.1
\brief The QLandmark class represents a point of interest.
diff --git a/src/location/landmarks/qlandmarkabstractrequest.cpp b/src/location/landmarks/qlandmarkabstractrequest.cpp
index 7d3185a1b2..afc97f43b4 100644
--- a/src/location/landmarks/qlandmarkabstractrequest.cpp
+++ b/src/location/landmarks/qlandmarkabstractrequest.cpp
@@ -63,6 +63,7 @@ QLandmarkAbstractRequestPrivate::QLandmarkAbstractRequestPrivate(QLandmarkManage
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-request
diff --git a/src/location/landmarks/qlandmarkattributefilter.cpp b/src/location/landmarks/qlandmarkattributefilter.cpp
index fb4d8cd9e6..5023bb14a3 100644
--- a/src/location/landmarks/qlandmarkattributefilter.cpp
+++ b/src/location/landmarks/qlandmarkattributefilter.cpp
@@ -98,6 +98,7 @@ QLandmarkAttributeFilterPrivate::~QLandmarkAttributeFilterPrivate()
\inmodule QtLocation
\ingroup landmarks-filter
+ \since 1.1
You can provide various keys which describe the attribute(s) to search.
Precisely which keys may be used depends on the manager
diff --git a/src/location/landmarks/qlandmarkboxfilter.cpp b/src/location/landmarks/qlandmarkboxfilter.cpp
index 7e1613c51c..d135ab1151 100644
--- a/src/location/landmarks/qlandmarkboxfilter.cpp
+++ b/src/location/landmarks/qlandmarkboxfilter.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-filter
+ \since 1.1
In order to be a valid filter, the region covered by the box filter must not cover one of the poles.
*/
diff --git a/src/location/landmarks/qlandmarkcategory.cpp b/src/location/landmarks/qlandmarkcategory.cpp
index 182a7564d0..d8d6907509 100644
--- a/src/location/landmarks/qlandmarkcategory.cpp
+++ b/src/location/landmarks/qlandmarkcategory.cpp
@@ -104,6 +104,7 @@ bool QLandmarkCategoryPrivate::operator == (const QLandmarkCategoryPrivate &othe
\inmodule QtLocation
\ingroup landmarks-main
+ \since 1.1
Landmarks of similar type may be grouped together into categories,
e.g. restaurants, accommodation etc, a QLandmarkCategory object
diff --git a/src/location/landmarks/qlandmarkcategoryfetchbyidrequest.cpp b/src/location/landmarks/qlandmarkcategoryfetchbyidrequest.cpp
index a4a2a73531..3801b6dd54 100644
--- a/src/location/landmarks/qlandmarkcategoryfetchbyidrequest.cpp
+++ b/src/location/landmarks/qlandmarkcategoryfetchbyidrequest.cpp
@@ -68,6 +68,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.2
*/
/*!
diff --git a/src/location/landmarks/qlandmarkcategoryfetchrequest.cpp b/src/location/landmarks/qlandmarkcategoryfetchrequest.cpp
index d0d5ca728c..9406594bc3 100644
--- a/src/location/landmarks/qlandmarkcategoryfetchrequest.cpp
+++ b/src/location/landmarks/qlandmarkcategoryfetchrequest.cpp
@@ -59,6 +59,7 @@ QTM_BEGIN_NAMESPACE
the usage of request classes and ownership semantics.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-request
*/
diff --git a/src/location/landmarks/qlandmarkcategoryfilter.cpp b/src/location/landmarks/qlandmarkcategoryfilter.cpp
index fc6fefac4b..0bfeae5f37 100644
--- a/src/location/landmarks/qlandmarkcategoryfilter.cpp
+++ b/src/location/landmarks/qlandmarkcategoryfilter.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
belong to a certain category.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-filter
*/
diff --git a/src/location/landmarks/qlandmarkcategoryid.cpp b/src/location/landmarks/qlandmarkcategoryid.cpp
index c0e70a022e..ba08fba6d9 100644
--- a/src/location/landmarks/qlandmarkcategoryid.cpp
+++ b/src/location/landmarks/qlandmarkcategoryid.cpp
@@ -49,8 +49,9 @@ QTM_USE_NAMESPACE
\class QLandmarkCategoryId
\inmodule QtLocation
-
+
\ingroup landmarks-main
+ \since 1.1
\brief The QLandmarkCategoryId class provides a unique identifier for
a category.
diff --git a/src/location/landmarks/qlandmarkcategoryidfetchrequest.cpp b/src/location/landmarks/qlandmarkcategoryidfetchrequest.cpp
index 3c9131d410..ddff967a58 100644
--- a/src/location/landmarks/qlandmarkcategoryidfetchrequest.cpp
+++ b/src/location/landmarks/qlandmarkcategoryidfetchrequest.cpp
@@ -59,6 +59,7 @@ QTM_BEGIN_NAMESPACE
the usage of request classes and ownership semantics.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-request
*/
diff --git a/src/location/landmarks/qlandmarkcategoryremoverequest.cpp b/src/location/landmarks/qlandmarkcategoryremoverequest.cpp
index 0228d09eb6..a310b10988 100644
--- a/src/location/landmarks/qlandmarkcategoryremoverequest.cpp
+++ b/src/location/landmarks/qlandmarkcategoryremoverequest.cpp
@@ -63,6 +63,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.1
*/
/*!
diff --git a/src/location/landmarks/qlandmarkcategorysaverequest.cpp b/src/location/landmarks/qlandmarkcategorysaverequest.cpp
index 6d70b611d2..3e27fb64eb 100644
--- a/src/location/landmarks/qlandmarkcategorysaverequest.cpp
+++ b/src/location/landmarks/qlandmarkcategorysaverequest.cpp
@@ -61,6 +61,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.1
*/
/*!
diff --git a/src/location/landmarks/qlandmarkexportrequest.cpp b/src/location/landmarks/qlandmarkexportrequest.cpp
index 717a3b257f..025f0a22e5 100644
--- a/src/location/landmarks/qlandmarkexportrequest.cpp
+++ b/src/location/landmarks/qlandmarkexportrequest.cpp
@@ -65,6 +65,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.1
*/
/*!
diff --git a/src/location/landmarks/qlandmarkfetchbyidrequest.cpp b/src/location/landmarks/qlandmarkfetchbyidrequest.cpp
index fd00c58062..5a6c88dc41 100644
--- a/src/location/landmarks/qlandmarkfetchbyidrequest.cpp
+++ b/src/location/landmarks/qlandmarkfetchbyidrequest.cpp
@@ -62,6 +62,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.1
*/
/*!
diff --git a/src/location/landmarks/qlandmarkfetchrequest.cpp b/src/location/landmarks/qlandmarkfetchrequest.cpp
index 8977d9a372..3e8c7d5a24 100644
--- a/src/location/landmarks/qlandmarkfetchrequest.cpp
+++ b/src/location/landmarks/qlandmarkfetchrequest.cpp
@@ -63,6 +63,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.1
*/
/*!
diff --git a/src/location/landmarks/qlandmarkfilter.cpp b/src/location/landmarks/qlandmarkfilter.cpp
index 465db82a88..9e5566a0af 100644
--- a/src/location/landmarks/qlandmarkfilter.cpp
+++ b/src/location/landmarks/qlandmarkfilter.cpp
@@ -82,6 +82,7 @@ QLandmarkFilterPrivate::~QLandmarkFilterPrivate()
\inmodule QtLocation
\ingroup landmarks-filter
+ \since 1.1
This class is used as a parameter to search for landmarks, it allows selection of
landmarks which meet certain criteria. It is used with QLandmarkManager
diff --git a/src/location/landmarks/qlandmarkid.cpp b/src/location/landmarks/qlandmarkid.cpp
index b4052982c0..f857a3b442 100644
--- a/src/location/landmarks/qlandmarkid.cpp
+++ b/src/location/landmarks/qlandmarkid.cpp
@@ -49,8 +49,9 @@ QTM_USE_NAMESPACE
\class QLandmarkId
\inmodule QtLocation
-
+
\ingroup landmarks-main
+ \since 1.1
\brief The QLandmarkId class provides a unique identifier for
a landmark.
diff --git a/src/location/landmarks/qlandmarkidfetchrequest.cpp b/src/location/landmarks/qlandmarkidfetchrequest.cpp
index 122ee2dcf6..5353d40346 100644
--- a/src/location/landmarks/qlandmarkidfetchrequest.cpp
+++ b/src/location/landmarks/qlandmarkidfetchrequest.cpp
@@ -60,6 +60,7 @@ QTM_BEGIN_NAMESPACE
the usage of request classes and ownership semantics.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-request
*/
@@ -169,7 +170,7 @@ void QLandmarkIdFetchRequest::setLimit(int limit)
Returns the index offset for the request. By default the offset is set to 0.
The offset determines the first index which is retrieved, it is generally used
in conjunction with limit() to facilitate paging.
-
+
For example, if there are 10 landmarks in the landmark store, setting the offset
to 2 and limit to 5 will retrieve the 3rd and 7th landmark ids inclusively. (The order
of the landmark ids is sepecified by the sorting field).
diff --git a/src/location/landmarks/qlandmarkidfilter.cpp b/src/location/landmarks/qlandmarkidfilter.cpp
index 6a1c0ffc12..35f9d203aa 100644
--- a/src/location/landmarks/qlandmarkidfilter.cpp
+++ b/src/location/landmarks/qlandmarkidfilter.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-filter
+ \since 1.1
*/
Q_IMPLEMENT_LANDMARKFILTER_PRIVATE(QLandmarkIdFilter)
diff --git a/src/location/landmarks/qlandmarkimportrequest.cpp b/src/location/landmarks/qlandmarkimportrequest.cpp
index a477ff7037..39d7efe324 100644
--- a/src/location/landmarks/qlandmarkimportrequest.cpp
+++ b/src/location/landmarks/qlandmarkimportrequest.cpp
@@ -62,6 +62,7 @@ QTM_BEGIN_NAMESPACE
supported for import requests and will always return false.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-request
*/
diff --git a/src/location/landmarks/qlandmarkintersectionfilter.cpp b/src/location/landmarks/qlandmarkintersectionfilter.cpp
index b18c22fe75..faeffb7294 100644
--- a/src/location/landmarks/qlandmarkintersectionfilter.cpp
+++ b/src/location/landmarks/qlandmarkintersectionfilter.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-filter
+ \since 1.1
Conceptually it performs an AND operation and thus may be used to
select landmarks which match all of it's constituent filters.
diff --git a/src/location/landmarks/qlandmarkmanagerengine.cpp b/src/location/landmarks/qlandmarkmanagerengine.cpp
index 6b91c66b44..41bb7dbe51 100644
--- a/src/location/landmarks/qlandmarkmanagerengine.cpp
+++ b/src/location/landmarks/qlandmarkmanagerengine.cpp
@@ -147,6 +147,7 @@ QStringList commonLandmarkKeys = QStringList() << "name"
of the landmark manager backend functionality.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-backend
diff --git a/src/location/landmarks/qlandmarknamefilter.cpp b/src/location/landmarks/qlandmarknamefilter.cpp
index b072fa5e76..4c16a716d4 100644
--- a/src/location/landmarks/qlandmarknamefilter.cpp
+++ b/src/location/landmarks/qlandmarknamefilter.cpp
@@ -49,6 +49,7 @@ QTM_BEGIN_NAMESPACE
\brief The QLandmarkNameFilter class is used to search for landmarks by name.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-filter
diff --git a/src/location/landmarks/qlandmarknamesort.cpp b/src/location/landmarks/qlandmarknamesort.cpp
index 324f8c919f..29ef320930 100644
--- a/src/location/landmarks/qlandmarknamesort.cpp
+++ b/src/location/landmarks/qlandmarknamesort.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-sort
+ \since 1.1
Note that some manager's may not support case sensitive sorting.
*/
diff --git a/src/location/landmarks/qlandmarkproximityfilter.cpp b/src/location/landmarks/qlandmarkproximityfilter.cpp
index 7012f532c0..cfe32e296c 100644
--- a/src/location/landmarks/qlandmarkproximityfilter.cpp
+++ b/src/location/landmarks/qlandmarkproximityfilter.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-filter
+ \since 1.1
In order to be a valid filter, the region covered by the proximity filter must not cover one of the poles.
The landmarks are returned in ascending order of distance. A proximity filter may
diff --git a/src/location/landmarks/qlandmarkremoverequest.cpp b/src/location/landmarks/qlandmarkremoverequest.cpp
index f7164f8c0f..6ef90ecf53 100644
--- a/src/location/landmarks/qlandmarkremoverequest.cpp
+++ b/src/location/landmarks/qlandmarkremoverequest.cpp
@@ -61,6 +61,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.1
*/
/*!
diff --git a/src/location/landmarks/qlandmarksaverequest.cpp b/src/location/landmarks/qlandmarksaverequest.cpp
index 953a3d0dbe..8c5214954b 100644
--- a/src/location/landmarks/qlandmarksaverequest.cpp
+++ b/src/location/landmarks/qlandmarksaverequest.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup landmarks-request
+ \since 1.1
For a QLandmarkSaveRequest, the resultsAvailable() signal will be emitted
when either an individual items error out (individaul errors may be retrieved
diff --git a/src/location/landmarks/qlandmarksortorder.cpp b/src/location/landmarks/qlandmarksortorder.cpp
index 7abb42be6b..74901d571e 100644
--- a/src/location/landmarks/qlandmarksortorder.cpp
+++ b/src/location/landmarks/qlandmarksortorder.cpp
@@ -59,6 +59,7 @@ QTM_BEGIN_NAMESPACE
no sorting.
\inmodule QtLocation
+ \since 1.1
\ingroup landmarks-sort
diff --git a/src/location/landmarks/qlandmarkunionfilter.cpp b/src/location/landmarks/qlandmarkunionfilter.cpp
index 3be3e2dd65..8d792e4a76 100644
--- a/src/location/landmarks/qlandmarkunionfilter.cpp
+++ b/src/location/landmarks/qlandmarkunionfilter.cpp
@@ -50,8 +50,9 @@ QTM_BEGIN_NAMESPACE
of its constituent filters.
\inmodule QtLocation
-
+
\ingroup landmarks-filter
+ \since 1.1
Conceptually it performs an OR operation and may thus be used
to select landmarks which match any one of it's constituent filters.
diff --git a/src/location/maps/qgeomaneuver.cpp b/src/location/maps/qgeomaneuver.cpp
index 94b676487b..92a2ac2625 100644
--- a/src/location/maps/qgeomaneuver.cpp
+++ b/src/location/maps/qgeomaneuver.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
point at which two QGeoRouteSegments meet.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-routing
@@ -114,8 +115,8 @@ The instruction indicates that the direction of travel should bear to the left.
/*!
Constructs a invalid maneuver object.
- The maneuver will remain invalid until one of
- setPosition(), setInstructionText(), setDirection(),
+ The maneuver will remain invalid until one of
+ setPosition(), setInstructionText(), setDirection(),
setTimeToNextInstruction(), setDistanceToNextInstruction() or
setWaypoint() is called.
*/
@@ -162,7 +163,7 @@ bool QGeoManeuver::operator!= (const QGeoManeuver &other) const
/*!
Returns whether this maneuver is valid or not.
- Invalid maneuvers are used when there is no information
+ Invalid maneuvers are used when there is no information
that needs to be attached to the endpoint of a QGeoRouteSegment instance.
*/
bool QGeoManeuver::isValid() const
diff --git a/src/location/maps/qgeomapcircleobject.cpp b/src/location/maps/qgeomapcircleobject.cpp
index f5e98f8e9a..35ff7747cc 100644
--- a/src/location/maps/qgeomapcircleobject.cpp
+++ b/src/location/maps/qgeomapcircleobject.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
within a given distance of a coordinate.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -287,7 +288,7 @@ qreal QGeoMapCircleObject::radius() const
/*!
\fn void QGeoMapCircleObject::centerChanged(const QGeoCoordinate &center)
- This signal is emitted when the center of the circle object has
+ This signal is emitted when the center of the circle object has
changed.
The new value is \a center.
@@ -296,7 +297,7 @@ qreal QGeoMapCircleObject::radius() const
/*!
\fn void QGeoMapCircleObject::radiusChanged(qreal radius)
- This signal is emitted when the radius of the circle object has
+ This signal is emitted when the radius of the circle object has
changed.
The new value is \a radius.
@@ -305,7 +306,7 @@ qreal QGeoMapCircleObject::radius() const
/*!
\fn void QGeoMapCircleObject::penChanged(const QPen &pen)
- This signal is emitted when the pen used to draw the edge of
+ This signal is emitted when the pen used to draw the edge of
the circle object has changed.
The new value is \a pen.
@@ -314,7 +315,7 @@ qreal QGeoMapCircleObject::radius() const
/*!
\fn void QGeoMapCircleObject::brushChanged(const QBrush &brush)
- This signal is emitted when the brush used to fill the inside of
+ This signal is emitted when the brush used to fill the inside of
the circle object has changed.
The new value is \a brush.
diff --git a/src/location/maps/qgeomapcustomobject.cpp b/src/location/maps/qgeomapcustomobject.cpp
index 032958fec6..d873a428c1 100644
--- a/src/location/maps/qgeomapcustomobject.cpp
+++ b/src/location/maps/qgeomapcustomobject.cpp
@@ -55,6 +55,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup maps-mapping-objects
+ \since 1.2
Any arbitrary QGraphicsItem can be associated with a QGeoMapCustomObject, and to
this end it contains support for interpreting the coordinates of the
diff --git a/src/location/maps/qgeomapdata.cpp b/src/location/maps/qgeomapdata.cpp
index 2da4e6dc94..d6716d02fe 100644
--- a/src/location/maps/qgeomapdata.cpp
+++ b/src/location/maps/qgeomapdata.cpp
@@ -73,6 +73,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
+ \since 1.1
\ingroup maps-impl
@@ -121,7 +122,7 @@ QGeoMapData::~QGeoMapData()
}
/*!
- This function is run after the QGeoMapData instance has been
+ This function is run after the QGeoMapData instance has been
constructed.
Any subclasses which override this function should make sure that
@@ -710,7 +711,7 @@ void QGeoMapData::setBlockPropertyChangeSignals(bool block)
/*!
\fn void QGeoMapData::windowSizeChanged(const QSizeF &windowSize)
- This signal is emitted when the size of the window which contains
+ This signal is emitted when the size of the window which contains
the map has changed.
The new value is \a windowSize.
@@ -759,7 +760,7 @@ void QGeoMapData::setBlockPropertyChangeSignals(bool block)
/*!
\fn void QGeoMapData::connectivityModeChanged(QGraphicsGeoMap::ConnectivityMode connectivityMode)
- This signal is emitted when the connectivity mode used to fetch the
+ This signal is emitted when the connectivity mode used to fetch the
map data has changed.
The new value is \a connectivityMode.
@@ -768,7 +769,7 @@ void QGeoMapData::setBlockPropertyChangeSignals(bool block)
/*!
\fn void QGeoMapData::updateMapDisplay(const QRectF &target)
- This signal is emitted when the region \a target of the window which
+ This signal is emitted when the region \a target of the window which
contains the map needs to be updated.
diff --git a/src/location/maps/qgeomapgroupobject.cpp b/src/location/maps/qgeomapgroupobject.cpp
index 939af440b8..dcd953a22f 100644
--- a/src/location/maps/qgeomapgroupobject.cpp
+++ b/src/location/maps/qgeomapgroupobject.cpp
@@ -59,6 +59,7 @@ QTM_BEGIN_NAMESPACE
manager a group of other map objects.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
diff --git a/src/location/maps/qgeomapobject.cpp b/src/location/maps/qgeomapobject.cpp
index cd3c6836a9..3c42fc4522 100644
--- a/src/location/maps/qgeomapobject.cpp
+++ b/src/location/maps/qgeomapobject.cpp
@@ -57,6 +57,7 @@ QTM_BEGIN_NAMESPACE
\class QGeoMapObject
\brief The QGeoMapObject class is a graphical item to be displayed on a map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -458,7 +459,7 @@ void QGeoMapObject::setUnits(const CoordinateUnit &unit)
/*!
\fn void QGeoMapObject::zValueChanged(int zValue)
- This signal is emitted when the z value of the map object
+ This signal is emitted when the z value of the map object
has changed.
The new value is \a zValue.
@@ -467,7 +468,7 @@ void QGeoMapObject::setUnits(const CoordinateUnit &unit)
/*!
\fn void QGeoMapObject::visibleChanged(bool visible)
- This signal is emitted when the visible state of the map object
+ This signal is emitted when the visible state of the map object
has changed.
The new value is \a visible.
diff --git a/src/location/maps/qgeomapobjectinfo.cpp b/src/location/maps/qgeomapobjectinfo.cpp
index 1900820372..e399d47286 100644
--- a/src/location/maps/qgeomapobjectinfo.cpp
+++ b/src/location/maps/qgeomapobjectinfo.cpp
@@ -57,6 +57,7 @@ QTM_BEGIN_NAMESPACE
particular QGeoMapData subclass.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-impl
@@ -101,7 +102,7 @@ QGeoMapObjectInfo::~QGeoMapObjectInfo()
void QGeoMapObjectInfo::init() {}
/*!
- This function is called when the window size of the map changes to
+ This function is called when the window size of the map changes to
\a windowSize.
The default implementation does nothing.
@@ -112,7 +113,7 @@ void QGeoMapObjectInfo::windowSizeChanged(const QSizeF &windowSize)
}
/*!
- This function is called when the zoom level of the map changes to
+ This function is called when the zoom level of the map changes to
\a zoomLevel.
The default implementation does nothing.
@@ -123,7 +124,7 @@ void QGeoMapObjectInfo::zoomLevelChanged(qreal zoomLevel)
}
/*!
- This function is called when the center of the map changes to
+ This function is called when the center of the map changes to
\a coordinate.
The default implementation does nothing.
@@ -144,7 +145,7 @@ void QGeoMapObjectInfo::zValueChanged(int zValue)
}
/*!
- This function is run when the visible state of the object changes to
+ This function is run when the visible state of the object changes to
\a visible.
The default implementation does nothing.
@@ -155,7 +156,7 @@ void QGeoMapObjectInfo::visibleChanged(bool visible)
}
/*!
- This function is run when the selected state of the object changes to
+ This function is run when the selected state of the object changes to
\a selected.
The default implementation does nothing.
diff --git a/src/location/maps/qgeomapoverlay.cpp b/src/location/maps/qgeomapoverlay.cpp
index a888e3713b..5d5fa582d5 100644
--- a/src/location/maps/qgeomapoverlay.cpp
+++ b/src/location/maps/qgeomapoverlay.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoMapOverlay class is used to draw overlays on the map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping
diff --git a/src/location/maps/qgeomappingmanager.cpp b/src/location/maps/qgeomappingmanager.cpp
index 36692311ec..3bac9036dc 100644
--- a/src/location/maps/qgeomappingmanager.cpp
+++ b/src/location/maps/qgeomappingmanager.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
and interacting with maps.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping
diff --git a/src/location/maps/qgeomappingmanagerengine.cpp b/src/location/maps/qgeomappingmanagerengine.cpp
index b9cb547ced..72d3002b8d 100644
--- a/src/location/maps/qgeomappingmanagerengine.cpp
+++ b/src/location/maps/qgeomappingmanagerengine.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
and interacting with maps.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-impl
diff --git a/src/location/maps/qgeomappixmapobject.cpp b/src/location/maps/qgeomappixmapobject.cpp
index 51bde21ea6..0109cea4ed 100644
--- a/src/location/maps/qgeomappixmapobject.cpp
+++ b/src/location/maps/qgeomappixmapobject.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
a pixmap on a map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -184,7 +185,7 @@ void QGeoMapPixmapObject::setOffset(const QPoint &offset)
/*!
\fn void QGeoMapPixmapObject::coordinateChanged(const QGeoCoordinate &coordinate)
- This signal is emitted when the coordinate at which the pixmap
+ This signal is emitted when the coordinate at which the pixmap
should be drawn has changed.
The new value will be \a coordinate.
@@ -192,8 +193,8 @@ void QGeoMapPixmapObject::setOffset(const QPoint &offset)
/*!
\fn void QGeoMapPixmapObject::pixmapChanged(const QPixmap &pixmap)
-
- This signal is emitted when the pixmap associated with this
+
+ This signal is emitted when the pixmap associated with this
pixmap object has changed.
The new value will be \a pixmap.
@@ -201,8 +202,8 @@ void QGeoMapPixmapObject::setOffset(const QPoint &offset)
/*!
\fn void QGeoMapPixmapObject::offsetChanged(const QPoint &offset)
-
- This signal is emitted when the on-screen offset from the coordinate
+
+ This signal is emitted when the on-screen offset from the coordinate
at which this pixmap object should be drawn has changed.
The new value will be \a offset.
diff --git a/src/location/maps/qgeomappolygonobject.cpp b/src/location/maps/qgeomappolygonobject.cpp
index da34decb7d..d7c5d6b79b 100644
--- a/src/location/maps/qgeomappolygonobject.cpp
+++ b/src/location/maps/qgeomappolygonobject.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
a polygon on a map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -168,7 +169,7 @@ QBrush QGeoMapPolygonObject::brush() const
/*!
\fn void QGeoMapPolygonObject::pathChanged(const QList<QGeoCoordinate> &path)
- This signal is emitted when the ordered list of coordinates that define
+ This signal is emitted when the ordered list of coordinates that define
the polygon to be drawn by this polygon object has changed.
The new value is \a path.
@@ -177,7 +178,7 @@ QBrush QGeoMapPolygonObject::brush() const
/*!
\fn void QGeoMapPolygonObject::penChanged(const QPen &pen)
- This signal is emitted when the pen used to draw the edge of this
+ This signal is emitted when the pen used to draw the edge of this
polygon object has changed.
The new value is \a pen.
@@ -186,9 +187,9 @@ QBrush QGeoMapPolygonObject::brush() const
/*!
\fn void QGeoMapPolygonObject::brushChanged(const QBrush &brush)
- This signal is emitted when the brush used to fill in the interior of
+ This signal is emitted when the brush used to fill in the interior of
this polygon object has changed.
-
+
The new value is \a brush.
*/
diff --git a/src/location/maps/qgeomappolylineobject.cpp b/src/location/maps/qgeomappolylineobject.cpp
index 4ddb4ee713..96f77bc7d2 100644
--- a/src/location/maps/qgeomappolylineobject.cpp
+++ b/src/location/maps/qgeomappolylineobject.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
a segmented line on a map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -143,7 +144,7 @@ QPen QGeoMapPolylineObject::pen() const
/*!
\fn void QGeoMapPolylineObject::pathChanged(const QList<QGeoCoordinate> &path)
- This signal is emitted when the ordered list of coordinates that define
+ This signal is emitted when the ordered list of coordinates that define
the polyline to be drawn by this polyline object has changed.
The new value is \a path.
@@ -152,7 +153,7 @@ QPen QGeoMapPolylineObject::pen() const
/*!
\fn void QGeoMapPolylineObject::penChanged(const QPen &pen)
- This signal is emitted when the pen used to draw the edge of this
+ This signal is emitted when the pen used to draw the edge of this
polyline object has changed.
The new value is \a pen.
diff --git a/src/location/maps/qgeomaprectangleobject.cpp b/src/location/maps/qgeomaprectangleobject.cpp
index 6ba2a0e722..ade4e56473 100644
--- a/src/location/maps/qgeomaprectangleobject.cpp
+++ b/src/location/maps/qgeomaprectangleobject.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
a rectangular region on a map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -249,7 +250,7 @@ void QGeoMapRectangleObject::setBrush(const QBrush &brush)
/*!
\fn void QGeoMapRectangleObject::topLeftChanged(const QGeoCoordinate &topLeft)
- This signal is emitted when the top left coordinate of this rectangle
+ This signal is emitted when the top left coordinate of this rectangle
object has changed.
The new value is \a topLeft.
@@ -258,7 +259,7 @@ void QGeoMapRectangleObject::setBrush(const QBrush &brush)
/*!
\fn void QGeoMapRectangleObject::bottomRightChanged(const QGeoCoordinate &bottomRight)
- This signal is emitted when the bottom right coordinate of this rectangle
+ This signal is emitted when the bottom right coordinate of this rectangle
object has changed.
The new value is \a bottomRight.
@@ -267,7 +268,7 @@ void QGeoMapRectangleObject::setBrush(const QBrush &brush)
/*!
\fn void QGeoMapRectangleObject::penChanged(const QPen &pen)
- This signal is emitted when the pen used to draw the perimeter of this
+ This signal is emitted when the pen used to draw the perimeter of this
rectangle object has changed.
The new value is \a pen.
@@ -276,7 +277,7 @@ void QGeoMapRectangleObject::setBrush(const QBrush &brush)
/*!
\fn void QGeoMapRectangleObject::brushChanged(const QBrush &brush)
- This signal is emitted when the brush used to fill in the interior of
+ This signal is emitted when the brush used to fill in the interior of
this rectangle object has changed.
The new value is \a brush.
diff --git a/src/location/maps/qgeomaprouteobject.cpp b/src/location/maps/qgeomaprouteobject.cpp
index 1c81f14dfe..3822b87448 100644
--- a/src/location/maps/qgeomaprouteobject.cpp
+++ b/src/location/maps/qgeomaprouteobject.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
a route on a map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -182,7 +183,7 @@ void QGeoMapRouteObject::setDetailLevel(quint32 detailLevel)
/*!
\fn void QGeoMapRouteObject::routeChanged(const QGeoRoute &route)
- This signal is emitted when the route drawn by this route object
+ This signal is emitted when the route drawn by this route object
has changed.
The new value is \a route.
@@ -191,7 +192,7 @@ void QGeoMapRouteObject::setDetailLevel(quint32 detailLevel)
/*!
\fn void QGeoMapRouteObject::penChanged(const QPen &pen)
- This signal is emitted when the pen used to draw this route object has
+ This signal is emitted when the pen used to draw this route object has
changed.
The new value is \a pen.
@@ -200,7 +201,7 @@ void QGeoMapRouteObject::setDetailLevel(quint32 detailLevel)
/*!
\fn void QGeoMapRouteObject::detailLevelChanged(quint32 detailLevel)
- This signal is emitted when the level of detail used to draw this
+ This signal is emitted when the level of detail used to draw this
route object has changed.
The new value is \a detailLevel.
diff --git a/src/location/maps/qgeomaptextobject.cpp b/src/location/maps/qgeomaptextobject.cpp
index 0c451f451a..8cc8d1ab08 100644
--- a/src/location/maps/qgeomaptextobject.cpp
+++ b/src/location/maps/qgeomaptextobject.cpp
@@ -50,6 +50,7 @@ QTM_BEGIN_NAMESPACE
text on a map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping-objects
@@ -72,7 +73,7 @@ QGeoMapTextObject::QGeoMapTextObject()
Constructs a new text object which will display the text \a text with font
\a font at the coordinate \a coordinate on the map.
- The text will be displayed at an on-screen offset from the coordinate of \a
+ The text will be displayed at an on-screen offset from the coordinate of \a
offset pixels, and will be aligned according to \a alignment.
*/
QGeoMapTextObject::QGeoMapTextObject(const QGeoCoordinate &coordinate,
@@ -297,7 +298,7 @@ void QGeoMapTextObject::setAlignment(Qt::Alignment alignment)
/*!
\fn void QGeoMapTextObject::coordinateChanged(const QGeoCoordinate &coordinate)
- This signal is emitted when the coordinate at which this text
+ This signal is emitted when the coordinate at which this text
object will be drawn has changed.
The new value is \a coordinate.
@@ -306,7 +307,7 @@ void QGeoMapTextObject::setAlignment(Qt::Alignment alignment)
/*!
\fn void QGeoMapTextObject::textChanged(const QString &text)
- This signal is emitted when the text to be drawn by this text object
+ This signal is emitted when the text to be drawn by this text object
has changed.
The new value is \a text.
@@ -315,7 +316,7 @@ void QGeoMapTextObject::setAlignment(Qt::Alignment alignment)
/*!
\fn void QGeoMapTextObject::fontChanged(const QFont &font)
- This signal is emitted when the font use to draw this text object
+ This signal is emitted when the font use to draw this text object
has changed.
The new value is \a font.
@@ -324,7 +325,7 @@ void QGeoMapTextObject::setAlignment(Qt::Alignment alignment)
/*!
\fn void QGeoMapTextObject::penChanged(const QPen &pen)
- This signal is emitted when the pen used to draw the outline of the
+ This signal is emitted when the pen used to draw the outline of the
letters for this text object has changed.
The new value is \a pen.
@@ -342,7 +343,7 @@ void QGeoMapTextObject::setAlignment(Qt::Alignment alignment)
/*!
\fn void QGeoMapTextObject::offsetChanged(const QPoint &offset)
- This signal is emitted when the on screen offset from the coordinate at
+ This signal is emitted when the on screen offset from the coordinate at
which this text object will be drawn has changed.
The new value is \a offset.
diff --git a/src/location/maps/qgeoroute.cpp b/src/location/maps/qgeoroute.cpp
index ecb3dcbaa9..564bef3fe3 100644
--- a/src/location/maps/qgeoroute.cpp
+++ b/src/location/maps/qgeoroute.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoRoute class represents a route between two points.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-routing
diff --git a/src/location/maps/qgeoroutereply.cpp b/src/location/maps/qgeoroutereply.cpp
index 35b3dc49c6..22966b9022 100644
--- a/src/location/maps/qgeoroutereply.cpp
+++ b/src/location/maps/qgeoroutereply.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
of QGeoRoutingManager.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-routing
diff --git a/src/location/maps/qgeorouterequest.cpp b/src/location/maps/qgeorouterequest.cpp
index 47897f6968..d4a41ac013 100644
--- a/src/location/maps/qgeorouterequest.cpp
+++ b/src/location/maps/qgeorouterequest.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
which define a request for routing information.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-routing
@@ -124,8 +125,8 @@ QTM_BEGIN_NAMESPACE
not be part of the route.
\value NoFeature
- Used by QGeoRoutingManager::supportedFeatureTypes() to indicate that
- no features will be taken into account when planning the route.
+ Used by QGeoRoutingManager::supportedFeatureTypes() to indicate that
+ no features will be taken into account when planning the route.
\value TollFeature
Consdier tollways when planning the route.
\value HighwayFeature
diff --git a/src/location/maps/qgeoroutesegment.cpp b/src/location/maps/qgeoroutesegment.cpp
index 1ee2406fdd..d86e8dfe52 100644
--- a/src/location/maps/qgeoroutesegment.cpp
+++ b/src/location/maps/qgeoroutesegment.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoRouteSegment class represents a segment of a route.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-routing
@@ -230,7 +231,7 @@ void QGeoRouteSegment::setManeuver(const QGeoManeuver &maneuver)
/*!
Returns the manevuer for this route segment.
- Will return an invalid QGeoManeuver if no information has been attached
+ Will return an invalid QGeoManeuver if no information has been attached
to the endpoint of this route segment.
*/
QGeoManeuver QGeoRouteSegment::maneuver() const
diff --git a/src/location/maps/qgeoroutingmanager.cpp b/src/location/maps/qgeoroutingmanager.cpp
index 313aa95627..539369d76e 100644
--- a/src/location/maps/qgeoroutingmanager.cpp
+++ b/src/location/maps/qgeoroutingmanager.cpp
@@ -55,6 +55,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
+ \since 1.1
\ingroup maps-routing
diff --git a/src/location/maps/qgeoroutingmanagerengine.cpp b/src/location/maps/qgeoroutingmanagerengine.cpp
index abf3583614..cdcb0defdc 100644
--- a/src/location/maps/qgeoroutingmanagerengine.cpp
+++ b/src/location/maps/qgeoroutingmanagerengine.cpp
@@ -53,6 +53,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
+ \since 1.1
\ingroup maps-impl
diff --git a/src/location/maps/qgeosearchmanager.cpp b/src/location/maps/qgeosearchmanager.cpp
index 59d3d13f19..57ebf891dc 100644
--- a/src/location/maps/qgeosearchmanager.cpp
+++ b/src/location/maps/qgeosearchmanager.cpp
@@ -66,6 +66,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
+ \since 1.1
\ingroup maps-places
diff --git a/src/location/maps/qgeosearchmanagerengine.cpp b/src/location/maps/qgeosearchmanagerengine.cpp
index 355358e924..1c4510ed18 100644
--- a/src/location/maps/qgeosearchmanagerengine.cpp
+++ b/src/location/maps/qgeosearchmanagerengine.cpp
@@ -56,6 +56,7 @@ QTM_BEGIN_NAMESPACE
to provide support for searching operations related to geographic data.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-impl
diff --git a/src/location/maps/qgeosearchreply.cpp b/src/location/maps/qgeosearchreply.cpp
index ce190287a1..6e4c3cc82a 100644
--- a/src/location/maps/qgeosearchreply.cpp
+++ b/src/location/maps/qgeosearchreply.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
+ \since 1.1
\ingroup maps-places
@@ -260,7 +261,7 @@ int QGeoSearchReply::limit() const
}
/*!
- Returns the offset into the entire result set at which to start
+ Returns the offset into the entire result set at which to start
fetching results.
*/
int QGeoSearchReply::offset() const
@@ -279,7 +280,7 @@ void QGeoSearchReply::setLimit(int limit)
}
/*!
- Sets the offset in the entire result set at which to start
+ Sets the offset in the entire result set at which to start
fetching result to \a offset.
*/
void QGeoSearchReply::setOffset(int offset)
diff --git a/src/location/maps/qgeoserviceprovider.cpp b/src/location/maps/qgeoserviceprovider.cpp
index 964c343d45..093540c7dd 100644
--- a/src/location/maps/qgeoserviceprovider.cpp
+++ b/src/location/maps/qgeoserviceprovider.cpp
@@ -72,6 +72,7 @@ QTM_BEGIN_NAMESPACE
geographical information.
\inmodule QtLocation
+ \since 1.1
\ingroup maps
diff --git a/src/location/maps/qgeoserviceproviderfactory.cpp b/src/location/maps/qgeoserviceproviderfactory.cpp
index 643faf80d0..600c4469b5 100644
--- a/src/location/maps/qgeoserviceproviderfactory.cpp
+++ b/src/location/maps/qgeoserviceproviderfactory.cpp
@@ -51,6 +51,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
+ \since 1.1
\ingroup maps-impl
diff --git a/src/location/maps/qgraphicsgeomap.cpp b/src/location/maps/qgraphicsgeomap.cpp
index 39487216c4..f7fb49eed8 100644
--- a/src/location/maps/qgraphicsgeomap.cpp
+++ b/src/location/maps/qgraphicsgeomap.cpp
@@ -66,6 +66,7 @@ QTM_BEGIN_NAMESPACE
interactions between the user and the map.
\inmodule QtLocation
+ \since 1.1
\ingroup maps-mapping
@@ -783,7 +784,7 @@ QGeoCoordinate QGraphicsGeoMap::screenPositionToCoordinate(QPointF screenPositio
/*!
\fn void QGraphicsGeoMap::connectivityModeChanged(QGraphicsGeoMap::ConnectivityMode connectivityMode)
- This signal is emitted when the connectivity mode used to fetch the
+ This signal is emitted when the connectivity mode used to fetch the
map data changes.
The new value is \a connectivityMode.
diff --git a/src/location/maps/tiled/qgeotiledmapdata.cpp b/src/location/maps/tiled/qgeotiledmapdata.cpp
index 3298e4d912..bbae6c7119 100644
--- a/src/location/maps/tiled/qgeotiledmapdata.cpp
+++ b/src/location/maps/tiled/qgeotiledmapdata.cpp
@@ -100,6 +100,8 @@ QTM_BEGIN_NAMESPACE
\ingroup maps-impl-tiled
+ \since 1.2
+
This class assumes that at a zoom level of z the world is represented as a
2^z by 2^z grid of tiles, and that the Mercator projection is used to map
back and forth between coordinate and positions on the map.
@@ -116,7 +118,7 @@ QTM_BEGIN_NAMESPACE
worldReferenceViewportRect().
NOTE: QGeoTiledMapData blocks property change signals from QGeoMapData by calling
- QGeoMapData::setBlockPropertyChangeSignals() with true. Changing this in
+ QGeoMapData::setBlockPropertyChangeSignals() with true. Changing this in
QGeoTiledMapData subclasses will cause the signals being emitted at wrong time.
*/
diff --git a/src/location/maps/tiled/qgeotiledmappingmanagerengine.cpp b/src/location/maps/tiled/qgeotiledmappingmanagerengine.cpp
index 9278c48776..21705d1775 100644
--- a/src/location/maps/tiled/qgeotiledmappingmanagerengine.cpp
+++ b/src/location/maps/tiled/qgeotiledmappingmanagerengine.cpp
@@ -54,6 +54,8 @@ QTM_BEGIN_NAMESPACE
\ingroup maps-impl-tiled
+ \since 1.2
+
Subclasses of QGeoTiledMappingManagerEngine need to provide an implementation
of getTileImage().
diff --git a/src/location/maps/tiled/qgeotiledmapreply.cpp b/src/location/maps/tiled/qgeotiledmapreply.cpp
index 99f2213803..4a545f4ffb 100644
--- a/src/location/maps/tiled/qgeotiledmapreply.cpp
+++ b/src/location/maps/tiled/qgeotiledmapreply.cpp
@@ -57,6 +57,8 @@ QTM_BEGIN_NAMESPACE
\ingroup maps-impl-tiled
+ \since 1.2
+
Instances of QGeoTiledMapReply manage the state and results of these
operations.
diff --git a/src/location/maps/tiled/qgeotiledmaprequest.cpp b/src/location/maps/tiled/qgeotiledmaprequest.cpp
index 9622c2b680..09c906a694 100644
--- a/src/location/maps/tiled/qgeotiledmaprequest.cpp
+++ b/src/location/maps/tiled/qgeotiledmaprequest.cpp
@@ -55,6 +55,8 @@ QTM_BEGIN_NAMESPACE
\ingroup maps-impl-tiled
+ \since 1.2
+
The tile is specified by a map type, a zoom level, a row and a column.
At a zoom level of z the world is represented as a 2^z by 2^z grid
@@ -76,9 +78,9 @@ QGeoTiledMapRequest::QGeoTiledMapRequest()
This tiled map request represents a request for the tile at row \a row and
column \a column at zoom level \a zoomLevel and type
- \a mapType.
-
- The request will use connectivity mode \a connectivityMode when
+ \a mapType.
+
+ The request will use connectivity mode \a connectivityMode when
accessing the map data.
The rectangle that the tile occupies on the map at the maximum zoom level
diff --git a/src/location/qgeoaddress.cpp b/src/location/qgeoaddress.cpp
index 7c6e85bcee..e01402d62b 100644
--- a/src/location/qgeoaddress.cpp
+++ b/src/location/qgeoaddress.cpp
@@ -76,6 +76,7 @@ QGeoAddressPrivate::~QGeoAddressPrivate()
\brief The QGeoAddress class represents an address
\inmodule QtLocation
+ \since 1.1
\ingroup location
diff --git a/src/location/qgeoareamonitor.cpp b/src/location/qgeoareamonitor.cpp
index c92ca88e84..6917bdd61c 100644
--- a/src/location/qgeoareamonitor.cpp
+++ b/src/location/qgeoareamonitor.cpp
@@ -51,7 +51,8 @@
changes for a specified set of coordinates.
\inmodule QtLocation
-
+ \since 1.0
+
\ingroup location
A QGeoAreaMonitor emits signals when the current position is in
@@ -172,21 +173,23 @@ qreal QGeoAreaMonitor::radius() const
Returns 0 if the system has no support for position monitoring.
- Note: Symbian applications will need to have the Location capability
+ Note: Symbian applications will need to have the Location capability
otherwise this will return 0.
*/
QGeoAreaMonitor *QGeoAreaMonitor::createDefaultMonitor(QObject *parent)
{
-#if defined(Q_OS_SYMBIAN) && defined(QT_LOCATION_S60_MONITORING)
- QGeoAreaMonitor *ret = NULL;
- TRAPD(error, ret = QGeoAreaMonitorS60::NewL(parent));
- return ret;
-#else
+ // Native Symbian area monitor is temporarily disabled,
+ // see http://bugreports.qt.nokia.com/browse/QTMOBILITY-1059
+//#if defined(Q_OS_SYMBIAN) && defined(QT_LOCATION_S60_MONITORING)
+// QGeoAreaMonitor *ret = NULL;
+// TRAPD(error, ret = QGeoAreaMonitorS60::NewL(parent));
+// return ret;
+//#else
QGeoAreaMonitorPolling *ret = NULL;
ret = new QGeoAreaMonitorPolling(parent);
if (ret && ret->isValid())
return ret;
-#endif
+//#endif
return 0;
}
diff --git a/src/location/qgeoboundingarea.cpp b/src/location/qgeoboundingarea.cpp
index ed4736847b..1f256be676 100644
--- a/src/location/qgeoboundingarea.cpp
+++ b/src/location/qgeoboundingarea.cpp
@@ -48,14 +48,15 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoBoundingArea class defines a geographic area.
\inmodule QtLocation
+ \since 1.1
\ingroup maps
- This class is the base class for classes which specify a geographic
- area.
-
+ This class is the base class for classes which specify a geographic
+ area.
+
For the sake of consistency, subclasses should describe the specific
- details of the associated areas in terms of QGeoCoordinate instances
+ details of the associated areas in terms of QGeoCoordinate instances
and distances in metres.
*/
@@ -85,8 +86,8 @@ Returns the type of this area.
Returns whether this bounding area is valid.
-An area is considered to be invalid if some of the data that is required to
-unambiguously describe the area has not been set or has been set to an
+An area is considered to be invalid if some of the data that is required to
+unambiguously describe the area has not been set or has been set to an
unsuitable value.
*/
@@ -101,7 +102,7 @@ An empty area is a region which has a geometrical area of 0.
/*!
\fn bool QGeoBoundingArea::contains(const QGeoCoordinate &coordinate) const
-Returns whether the coordinate \a coordinate is contained within this
+Returns whether the coordinate \a coordinate is contained within this
area.
*/
diff --git a/src/location/qgeoboundingbox.cpp b/src/location/qgeoboundingbox.cpp
index 32dc7889b5..7d170ca22b 100644
--- a/src/location/qgeoboundingbox.cpp
+++ b/src/location/qgeoboundingbox.cpp
@@ -54,7 +54,8 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoBoundingBox class defines a rectangular geographic area.
\inmodule QtLocation
-
+ \since 1.1
+
\ingroup maps
The rectangle is defined in terms of a QGeoCoordinate which specifies the
diff --git a/src/location/qgeoboundingcircle.cpp b/src/location/qgeoboundingcircle.cpp
index 5be6fc764c..943e87e119 100644
--- a/src/location/qgeoboundingcircle.cpp
+++ b/src/location/qgeoboundingcircle.cpp
@@ -54,6 +54,7 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoBoundingCircle class defines a circular geographic area.
\inmodule QtLocation
+ \since 1.1
\ingroup maps
diff --git a/src/location/qgeocoordinate.cpp b/src/location/qgeocoordinate.cpp
index 0439c8c3de..f67666371d 100644
--- a/src/location/qgeocoordinate.cpp
+++ b/src/location/qgeocoordinate.cpp
@@ -82,7 +82,8 @@ QGeoCoordinatePrivate::QGeoCoordinatePrivate() {
\brief The QGeoCoordinate class defines a geographical position on the surface of the Earth.
\inmodule QtLocation
-
+ \since 1.0
+
\ingroup location
A QGeoCoordinate is defined by latitude, longitude, and optionally, altitude.
@@ -418,16 +419,16 @@ void QGeoCoordinatePrivate::atDistanceAndAzimuth(const QGeoCoordinate &coord,
}
/*!
- Returns the coordinate that is reached by traveling \a distance metres
+ Returns the coordinate that is reached by traveling \a distance metres
from the current coordinate at \a azimuth (or bearing) along a great-circle.
There is an assumption that the Earth is spherical for the purpose of this
calculation.
-
+
The altitude will have \a distanceUp added to it.
Returns an invalid coordinate if this coordinate is invalid.
*/
-QGeoCoordinate QGeoCoordinate::atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp) const
+QGeoCoordinate QGeoCoordinate::atDistanceAndAzimuth(qreal distance, qreal azimuth, qreal distanceUp) const
{
if (!isValid())
return QGeoCoordinate();
diff --git a/src/location/qgeoplace.cpp b/src/location/qgeoplace.cpp
index 58b5921ac2..0fa7675711 100644
--- a/src/location/qgeoplace.cpp
+++ b/src/location/qgeoplace.cpp
@@ -61,6 +61,7 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoPlace class represents basic information about a place.
\inmodule QtLocation
+ \since 1.1
\ingroup location
diff --git a/src/location/qgeopositioninfo.cpp b/src/location/qgeopositioninfo.cpp
index 8491f7eed0..3d8e278031 100644
--- a/src/location/qgeopositioninfo.cpp
+++ b/src/location/qgeopositioninfo.cpp
@@ -59,7 +59,8 @@ public:
\brief The QGeoPositionInfo class contains information gathered on a global position, direction and velocity at a particular point in time.
\inmodule QtLocation
-
+ \since 1.0
+
\ingroup location
A QGeoPositionInfo contains, at a minimum, a geographical coordinate and
diff --git a/src/location/qgeopositioninfosource.cpp b/src/location/qgeopositioninfosource.cpp
index c47da3ac67..ea03a0d652 100644
--- a/src/location/qgeopositioninfosource.cpp
+++ b/src/location/qgeopositioninfosource.cpp
@@ -73,7 +73,8 @@ QTM_BEGIN_NAMESPACE
\brief The QGeoPositionInfoSource class is an abstract base class for the distribution of positional updates.
\inmodule QtLocation
-
+ \since 1.0
+
\ingroup location
The static function QGeoPositionInfoSource::createDefaultSource() creates a default
@@ -362,7 +363,7 @@ QGeoPositionInfoSource::PositioningMethods QGeoPositionInfoSource::preferredPosi
Returns 0 if the system has no default position source and no valid plugins
could be found.
- Note: Symbian applications will need to have the Location capability
+ Note: Symbian applications will need to have the Location capability
otherwise this will return 0.
*/
diff --git a/src/location/qgeopositioninfosource_s60.cpp b/src/location/qgeopositioninfosource_s60.cpp
index bc1e140fa2..e1a7d204e4 100644
--- a/src/location/qgeopositioninfosource_s60.cpp
+++ b/src/location/qgeopositioninfosource_s60.cpp
@@ -61,7 +61,7 @@ CQGeoPositionInfoSourceS60::CQGeoPositionInfoSourceS60(QObject* aParent) : QGeoP
mSupportedMethods(PositioningMethod(0)),
mCurrentMethod(PositioningMethod(0)),
mListSize(0),
- mMinUpdateInterval(0),
+ mMinUpdateInterval(100),
mStartUpdates(FALSE),
mRegularUpdateTimedOut(FALSE),
mModuleFlags(0)
@@ -141,9 +141,10 @@ void CQGeoPositionInfoSourceS60::ConstructL()
CleanupStack::PushL(mDevStatusUpdateAO);
- if (mCurrentModuleId != TUid::Null())
+ if (mCurrentModuleId != TUid::Null()) {
mRegUpdateAO = CQMLBackendAO::NewL(this, RegularUpdate, mCurrentModuleId);
-
+ mRegUpdateAO->setUpdateInterval(updateInterval());
+ }
CleanupStack::Pop(2);
}
@@ -902,7 +903,6 @@ void CQGeoPositionInfoSourceS60::setPreferredPositioningMethods(PositioningMetho
mCurrentModuleId = mList[index].mUid ;
lRegLocker.unlock();
-
index = checkModule(mCurrentModuleId);
if (index >= 0 && index < mListSize) {
@@ -912,15 +912,12 @@ void CQGeoPositionInfoSourceS60::setPreferredPositioningMethods(PositioningMetho
lRegLocker_interval.unlock();
}
+ int value = mRegUpdateAO->setUpdateInterval(updateInterval);
+ //as the positioning module has changed,
+ //possibility of the minimumupdateinterval being changed
+ if (value != updateInterval)
+ QGeoPositionInfoSource::setUpdateInterval(value);
- if (updateInterval) {
- int value = mRegUpdateAO->setUpdateInterval(updateInterval);
- //as the poistioning module has changed
- //possibility of the minimumupdateinterval being changed
- if (value != updateInterval)
- QGeoPositionInfoSource::setUpdateInterval(value);
-
- }
}
}
diff --git a/src/location/qgeopositioninfosourcefactory.cpp b/src/location/qgeopositioninfosourcefactory.cpp
index 1b53ed4813..3feae1376c 100644
--- a/src/location/qgeopositioninfosourcefactory.cpp
+++ b/src/location/qgeopositioninfosourcefactory.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtLocation
\ingroup location
+ \since 1.2
Implementers must provide a unique combination of sourceName() and
sourceVersion() per plugin.
diff --git a/src/location/qgeosatelliteinfo.cpp b/src/location/qgeosatelliteinfo.cpp
index 5ce6fd6e97..96dbac9de6 100644
--- a/src/location/qgeosatelliteinfo.cpp
+++ b/src/location/qgeosatelliteinfo.cpp
@@ -60,7 +60,8 @@ public:
\brief The QGeoSatelliteInfo class contains basic information about a satellite.
\inmodule QtLocation
-
+ \since 1.0
+
\ingroup location
\sa QGeoSatelliteInfoSource
diff --git a/src/location/qgeosatelliteinfosource.cpp b/src/location/qgeosatelliteinfosource.cpp
index 507b5c3499..b68b2a63db 100644
--- a/src/location/qgeosatelliteinfosource.cpp
+++ b/src/location/qgeosatelliteinfosource.cpp
@@ -219,7 +219,8 @@ void QGeoSatelliteInfoSourcePrivate::loadStaticPlugins(QHash<QString, QGeoPositi
\brief The QGeoSatelliteInfoSource class is an abstract base class for the distribution of satellite information updates.
\inmodule QtLocation
-
+ \since 1.0
+
\ingroup location
The static function QGeoSatelliteInfoSource::createDefaultSource() creates a default
@@ -254,8 +255,8 @@ QGeoSatelliteInfoSource::QGeoSatelliteInfoSource(QObject *parent)
Returns 0 if the system has no default source and no valid plugins
could be found.
-
- Note: Symbian applications will need to have the Location capability
+
+ Note: Symbian applications will need to have the Location capability
otherwise this will return 0.
*/
QGeoSatelliteInfoSource *QGeoSatelliteInfoSource::createDefaultSource(QObject *parent)
diff --git a/src/location/qmlbackendao_s60.cpp b/src/location/qmlbackendao_s60.cpp
index 55093a5afb..8674f37e4f 100644
--- a/src/location/qmlbackendao_s60.cpp
+++ b/src/location/qmlbackendao_s60.cpp
@@ -430,7 +430,9 @@ int CQMLBackendAO::setUpdateInterval(int aMilliSec)
// If msec is not 0 and is less than the value returned by minimumUpdateInterval(),
// the interval will be set to the minimum interval.
- if (aMilliSec != 0 && aMilliSec <= minimumUpdateInterval) {
+ // if (aMilliSec != 0 && aMilliSec <= minimumUpdateInterval) {
+ // workaround, not accepting zero as value, see QTMOBILITY-995
+ if (aMilliSec <= minimumUpdateInterval) {
mUpdateInterval = minimumUpdateInterval;
} else {
mUpdateInterval = aMilliSec;
@@ -444,7 +446,6 @@ int CQMLBackendAO::setUpdateInterval(int aMilliSec)
// will set Either zero, minimum or +ve value
// seconds converted to TTimeIntervalMicroSeconds
aPosOption.SetUpdateInterval(TTimeIntervalMicroSeconds(mUpdateInterval * 1000));
-
// set the timeout to the smaller of 150% of interval or update interval + 10 seconds
TInt64 mUpdateTimeout = (mUpdateInterval * 3) / 2;
if (mUpdateTimeout > mUpdateInterval + 10000)
diff --git a/src/location/qnmeapositioninfosource.cpp b/src/location/qnmeapositioninfosource.cpp
index f088180677..19e86553aa 100644
--- a/src/location/qnmeapositioninfosource.cpp
+++ b/src/location/qnmeapositioninfosource.cpp
@@ -429,7 +429,8 @@ void QNmeaPositionInfoSourcePrivate::emitUpdated(const QGeoPositionInfo &update)
\brief The QNmeaPositionInfoSource class provides positional information using a NMEA data source.
\inmodule QtLocation
-
+ \since 1.0
+
\ingroup location
NMEA is a commonly used protocol for the specification of one's global
diff --git a/src/messaging/qfsengine_symbian.cpp b/src/messaging/qfsengine_symbian.cpp
index a4f0616c90..d5f88f2385 100644
--- a/src/messaging/qfsengine_symbian.cpp
+++ b/src/messaging/qfsengine_symbian.cpp
@@ -2593,38 +2593,39 @@ void CFSEngine::addMessagePartsToQMessage(QMessage& message, MEmailMessage& mEma
size = pContent->TotalSize();
pContent->Release();
}
-
- // Attachments
- REmailAttachmentArray attachments;
- TInt count = mEmailMessage.GetAttachmentsL(attachments);
- for (int i=0; i < attachments.Count(); i++) {
- QByteArray fileName;
- TPtrC fName(KNullDesC);
- TRAPD(err, fName.Set(attachments[i]->FileNameL()));
- if (err == KErrNone) {
- fileName = QString::fromUtf16(fName.Ptr(), fName.Length()).toLocal8Bit();
- }
- QByteArray mimeHeader = QString::fromUtf16(attachments[i]->ContentType().Ptr(),
- attachments[i]->ContentType().Length()).toAscii();
- MessagingHelper::extractMIMEHeaderParts(mimeHeader, mimeType, mimeSubType, charset);
- int attachmentSize = attachments[i]->TotalSize();
- size += attachmentSize;
- QMessageContentContainer attachment = QMessageContentContainerPrivate::from(msgId.iId,
- 1,
- fileName, mimeType,
- mimeSubType, attachmentSize,
- attachments[i]->Id());
- QMessageContentContainerPrivate *attachmentContainer = QMessageContentContainerPrivate::implementation(attachment);
- attachmentContainer->_freestyleAttachment = true;
- if (attachments[i]->TotalSize() == attachments[i]->AvailableSize()) {
- attachmentContainer->_available = true;
- } else {
- attachmentContainer->_available = false;
+ else {
+ // Attachments
+ REmailAttachmentArray attachments;
+ TInt count = mEmailMessage.GetAttachmentsL(attachments);
+ for (int i=0; i < attachments.Count(); i++) {
+ QByteArray fileName;
+ TPtrC fName(KNullDesC);
+ TRAPD(err, fName.Set(attachments[i]->FileNameL()));
+ if (err == KErrNone) {
+ fileName = QString::fromUtf16(fName.Ptr(), fName.Length()).toLocal8Bit();
+ }
+ QByteArray mimeHeader = QString::fromUtf16(attachments[i]->ContentType().Ptr(),
+ attachments[i]->ContentType().Length()).toAscii();
+ MessagingHelper::extractMIMEHeaderParts(mimeHeader, mimeType, mimeSubType, charset);
+ int attachmentSize = attachments[i]->TotalSize();
+ size += attachmentSize;
+ QMessageContentContainer attachment = QMessageContentContainerPrivate::from(msgId.iId,
+ 1,
+ fileName, mimeType,
+ mimeSubType, attachmentSize,
+ attachments[i]->Id());
+ QMessageContentContainerPrivate *attachmentContainer = QMessageContentContainerPrivate::implementation(attachment);
+ attachmentContainer->_freestyleAttachment = true;
+ if (attachments[i]->TotalSize() == attachments[i]->AvailableSize()) {
+ attachmentContainer->_available = true;
+ } else {
+ attachmentContainer->_available = false;
+ }
+ addAttachmentToQMessage(message, attachment);
+ attachments[i]->Release();
}
- addAttachmentToQMessage(message, attachment);
- attachments[i]->Release();
+ attachments.Reset();
}
- attachments.Reset();
QMessagePrivate* pPrivateMessage = QMessagePrivate::implementation(message);
pPrivateMessage->_size = size;
diff --git a/src/messaging/qmessage.cpp b/src/messaging/qmessage.cpp
index f882d65c86..48841eeb79 100644
--- a/src/messaging/qmessage.cpp
+++ b/src/messaging/qmessage.cpp
@@ -60,36 +60,37 @@ QList<QByteArray> charsets;
\class QMessage
\brief The QMessage class provides a convenient interface for working with messages.
-
-
+
+
\inmodule QtMessaging
-
+
\ingroup messaging
-
- QMessage supports a number of types. Including internet email messages,
+ \since 1.0
+
+ QMessage supports a number of types. Including internet email messages,
and the telephony types SMS and MMS.
-
- The QMessageId identifier for a message is returned by id(). Messages can be constructed by
- retrieval from the messaging store via their identifier using QMessageManager::message(). A
- QMessage can also be constructed piece by piece using functions such as
- setType(), setFrom(), setTo(), setSubject(), setBody() and appendAttachments().
-
+
+ The QMessageId identifier for a message is returned by id(). Messages can be constructed by
+ retrieval from the messaging store via their identifier using QMessageManager::message(). A
+ QMessage can also be constructed piece by piece using functions such as
+ setType(), setFrom(), setTo(), setSubject(), setBody() and appendAttachments().
+
If a message has been modified since it was last constructed isModified() returns true.
- A list of attachments identifiers will be returned by attachmentIds() and an identifier for the
- message body will be returned by bodyId(). Attachments can be appended to the content of the
+ A list of attachments identifiers will be returned by attachmentIds() and an identifier for the
+ message body will be returned by bodyId(). Attachments can be appended to the content of the
message using appendAttachments(), the body of the message can be set with setBody().
-
+
The folder and account a message is associated with are returned by parentFolderId() and
parentAccountId() respectively.
- Message data that is less commonly accessed or relatively large should be lazily retrieved
+ Message data that is less commonly accessed or relatively large should be lazily retrieved
on demand by the associated getter function.
-
+
Only phone numbers are valid destination addresses for SMS messages, only email addresses are valid
destination addresses for Email messages, MMS messages may be addressed to either phone numbers
or email addresses.
-
+
\sa QMessageContentContainer, QMessageManager, QMessageId
*/
@@ -97,17 +98,17 @@ QList<QByteArray> charsets;
\enum QMessage::Type
This enum type is used to describe the type of a message.
-
+
\value NoType The message type is not defined.
\value Mms The message is an MMS, Multimedia Messaging Service object.
\value Sms The message is an SMS, Short Message Service object.
\value Email The message is an Email, Internet Message Format object.
\value InstantMessage The message is an instant message object, such as XMPP.
\value AnyType Bitflag value that matches any message type defined.
-
+
\sa type(), setType()
*/
-
+
/*!
\enum QMessage::Status
@@ -117,7 +118,7 @@ QList<QByteArray> charsets;
\value HasAttachments This flag indicates that the message contains at least one sub-part with 'Attachment' disposition.
\value Incoming This flag indicates that the message has been sent from an external source.
\value Removed This flag indicates that the message has been deleted from or moved on the originating server.
-
+
\sa status(), setStatus()
*/
@@ -155,7 +156,7 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::QMessage()
-
+
Constructs an empty message.
*/
@@ -163,7 +164,7 @@ QList<QByteArray> charsets;
\fn QMessage::QMessage(const QMessageId& id)
Constructs a message from data stored in the messaging store with identifier \a id.
-
+
\sa QMessageManager::message()
*/
@@ -180,72 +181,72 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::~QMessage()
-
+
Destroys the message.
*/
/*!
\fn QMessage::id() const
-
+
Returns the identifier of the message.
\sa QMessageFilter::byId()
*/
-
+
/*!
\fn QMessage::type() const
-
+
Returns the Type of the message.
-
+
\sa setType(), QMessageFilter::byType()
*/
-
+
/*!
\fn QMessage::setType(Type t)
-
+
Sets the Type of the message to \a t.
-
+
The type of a message may be set for non-empty messages.
-
+
\sa type()
*/
/*!
\fn QMessage::parentAccountId() const
-
- Returns the identifier of the parent account of the message if any; otherwise returns an
+
+ Returns the identifier of the parent account of the message if any; otherwise returns an
invalid identifier.
*/
-
+
/*!
\fn QMessage::setParentAccountId(const QMessageAccountId &accountId)
-
+
Sets the parent account of the message to the account with identifier \a accountId.
-
+
This operation is only permitted on new messages that have not yet been inserted into
the message store. Attempting to change the parent account of a message already
in the message store will result in an error when attempting to update the message
with QMessageStore::update().
*/
-
+
/*!
\fn QMessage::parentFolderId() const
-
- Returns the identifier of the folder that contains the message if any; otherwise returns an
+
+ Returns the identifier of the folder that contains the message if any; otherwise returns an
invalid identifier.
*/
/*!
\fn QMessage::standardFolder() const
-
+
Returns the standard folder of the message.
-
+
Defaults to DraftsFolder.
*/
-
+
/*!
\fn QMessage::from() const
-
+
Returns the originating address of the message.
\sa setFrom(), QMessageFilter::bySender()
@@ -253,7 +254,7 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::setFrom(const QMessageAddress &address)
-
+
Sets the from address, that is the originating address of the message to \a address.
\sa from()
@@ -261,7 +262,7 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::subject() const
-
+
Returns the subject of the message, if present; otherwise returns a null string.
\sa setSubject(), QMessageFilter::bySubject()
@@ -269,105 +270,105 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::setSubject(const QString &text)
-
+
Sets the subject of the message to \a text.
-
+
\sa subject()
*/
/*!
\fn QMessage::date() const
-
- Returns the timestamp contained in the origination date header field of the message, if present;
+
+ Returns the timestamp contained in the origination date header field of the message, if present;
otherwise returns a null timestamp.
-
+
\sa setDate(), QMessageFilter::byTimeStamp()
*/
/*!
\fn QMessage::setDate(const QDateTime &d)
-
+
Sets the origination date header field specifying the timestamp of the message to \a d.
-
+
\sa date()
*/
/*!
\fn QMessage::receivedDate() const
-
+
Returns the timestamp placed in the message during reception by the device, if present;
otherwise returns a null timestamp.
-
+
\sa setReceivedDate(), QMessageFilter::byReceptionTimeStamp()
*/
/*!
\fn QMessage::setReceivedDate(const QDateTime &d)
-
+
Sets the timestamp indicating the time of message reception by the device to \a d.
-
+
\sa receivedDate()
*/
-/*!
+/*!
\fn QMessage::to() const
-
+
Returns the list of primary recipients for the message.
\sa setTo(), QMessageFilter::byRecipients()
*/
-/*!
+/*!
\fn QMessage::setTo(const QMessageAddressList& toList)
-
+
Sets the list of primary recipients for the message to \a toList.
-
+
\sa to()
*/
-/*!
+/*!
\fn QMessage::setTo(const QMessageAddress& address)
-
+
Sets the primary recipient for the message to \a address.
-
+
\sa to()
*/
/*!
\fn QMessage::cc() const
-
+
Returns the list of all the cc (carbon copy) recipients specified for the message.
\sa to(), bcc(), setCc(), QMessageFilter::byRecipients()
-*/
+*/
/*!
\fn QMessage::setCc(const QMessageAddressList& ccList)
-
+
Set the list of cc (carbon copy) recipients for the message to \a ccList.
\sa cc(), setTo(), setBcc()
-*/
+*/
/*!
\fn QMessage::bcc() const
-
+
Returns the list of all the bcc (blind carbon copy) recipients specified for the message.
\sa to(), cc(), setBcc()
-*/
+*/
/*!
\fn QMessage::setBcc(const QMessageAddressList& bccList)
-
+
Set the list of bcc (blind carbon copy) recipients for the message to \a bccList.
\sa bcc(), setTo(), setCc()
-*/
+*/
/*!
\fn QMessage::status() const
-
+
Returns the status flags value for the message.
\sa setStatus(), QMessageFilter::byStatus()
@@ -375,7 +376,7 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::setStatus(QMessage::StatusFlags newStatus)
-
+
Sets the status flags value for the message to \a newStatus.
\sa status()
@@ -383,7 +384,7 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::setStatus(QMessage::Status flag, bool set)
-
+
Sets the status flag \a flag for the message to have the value \a set.
\sa status()
@@ -391,7 +392,7 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::priority() const
-
+
Returns the priority of the message.
The default is NormalPriority.
@@ -401,7 +402,7 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::setPriority(Priority newPriority)
-
+
Sets the priority of the message to \a newPriority.
\sa priority()
@@ -409,65 +410,65 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::size() const
-
+
Returns the complete size of the message as indicated on the originating server.
-
+
\sa QMessageFilter::bySize()
*/
/*!
\fn QMessage::bodyId() const
-
- Returns the identifier for the body content contained by the Message if a body exists;
+
+ Returns the identifier for the body content contained by the Message if a body exists;
otherwise returns an invalid identifier.
-
+
\sa QMessageContentContainer, setBody()
*/
/*!
\fn QMessage::setBody(const QString &body, const QByteArray &mimeType)
-
+
Sets the body text of the message to be the string \a body.
-
+
The internet media (MIME) content type of the body is set to \a mimeType, if provided.
If the \a mimeType is not specified, the content type will default to "text/plain", and
the encoding charset will be as determined by preferredCharsets().
-
+
\sa bodyId(), preferredCharsets()
*/
/*!
\fn QMessage::setBody(QTextStream &in, const QByteArray &mimeType)
-
+
Sets the body text of the message to be the text read from the stream \a in.
-
+
The internet media (MIME) content type of the body is set to \a mimeType, if provided.
If the \a mimeType is not specified, the content type will default to "text/plain", and
the encoding charset will be as determined by preferredCharsets().
-
+
\sa bodyId(), preferredCharsets()
*/
/*!
\fn QMessage::attachmentIds() const
-
+
Returns a list of attachment identifiers for the message.
The body of the message will not be included in the list.
-
+
\sa appendAttachments(), clearAttachments()
*/
/*!
\fn QMessage::appendAttachments(const QStringList &fileNames)
-
- Append the contents of the files specified by \a fileNames to the end of the list of
- attachments for the message. The internet media (MIME) type of the attachments will be
+
+ Append the contents of the files specified by \a fileNames to the end of the list of
+ attachments for the message. The internet media (MIME) type of the attachments will be
determined by examining the files or file names.
-
- Symbian OS based devices have a limit for MMS message size. The message size limit
+
+ Symbian OS based devices have a limit for MMS message size. The message size limit
varies between different devices, but is frequently 600 000 bytes. If the attachment
- size is greater than the limit then message sending will fail when
+ size is greater than the limit then message sending will fail when
QMessageService::send() is called.
\sa attachmentIds(), clearAttachments()
@@ -475,16 +476,16 @@ QList<QByteArray> charsets;
/*!
\fn QMessage::clearAttachments()
-
+
Clears the list of attachments for the message, leaving only the message body, if any.
\sa attachmentIds(), appendAttachments()
-*/
+*/
/*!
\fn QMessage::isModified() const
-
- Returns true if the message has been modified since it was constructed;
+
+ Returns true if the message has been modified since it was constructed;
otherwise returns false.
*/
@@ -492,14 +493,14 @@ QList<QByteArray> charsets;
\fn QMessage::createResponseMessage(ResponseType type) const
Creates a new message as a response to this message, with properties predetermined according to \a type.
-
+
\sa QMessageService::compose()
*/
/*!
\fn QMessage::setPreferredCharsets(const QList<QByteArray> &charsetNames)
-
- Sets the ordered-by-preference list of names of charsets to use when encoding
+
+ Sets the ordered-by-preference list of names of charsets to use when encoding
unicode QString data to a serialized form to \a charsetNames.
The set of valid charset names is returned by QTextCodec::availableCodecs().
@@ -513,8 +514,8 @@ void QMessage::setPreferredCharsets(const QList<QByteArray> &charsetNames)
/*!
\fn QMessage::preferredCharsets()
-
- Returns an ordered-by-preference list of charset names to use when encoding
+
+ Returns an ordered-by-preference list of charset names to use when encoding
unicode QString data to a serialized form.
\sa setPreferredCharsets(), preferredCharsetFor(), setBody()
diff --git a/src/messaging/qmessageaccount.cpp b/src/messaging/qmessageaccount.cpp
index 36f21eb0ef..2750f73dea 100644
--- a/src/messaging/qmessageaccount.cpp
+++ b/src/messaging/qmessageaccount.cpp
@@ -44,36 +44,37 @@
\class QMessageAccount
\brief The QMessageAccount class represents a messaging account in the messaging store.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- A QMessageAccount is a logical entity that groups messages according to the
- method by which they are sent and received. An account may either transmit messages
+ A QMessageAccount is a logical entity that groups messages according to the
+ method by which they are sent and received. An account may either transmit messages
receive messages or both.
-
- The QMessageAccount class is used for accessing properties of the account related
- to dealing with the account's folders and messages, rather than for modifying
+
+ The QMessageAccount class is used for accessing properties of the account related
+ to dealing with the account's folders and messages, rather than for modifying
the account itself.
-
+
\sa QMessageManager::account()
*/
/*!
\fn QMessageAccount::QMessageAccount()
-
+
Creates an empty and invalid account object.
*/
/*!
\fn QMessageAccount::QMessageAccount(const QMessageAccountId &id)
-
- Convenience constructor that creates a QMessageAccount by loading the data from the messaging
- store as specified by the QMessageAccountId \a id. If the account does not exist in the
+
+ Convenience constructor that creates a QMessageAccount by loading the data from the messaging
+ store as specified by the QMessageAccountId \a id. If the account does not exist in the
store, then this constructor will create an empty and invalid QMessageAccount.
-
+
\sa QMessageManager::account()
*/
@@ -83,37 +84,37 @@
Constructs a copy of \a other.
*/
-/*!
+/*!
\internal
\fn QMessageAccount::operator=(const QMessageAccount& other)
*/
/*!
\fn QMessageAccount::~QMessageAccount()
-
+
Destroys the account object.
*/
/*!
\fn QMessageAccount::id() const
-
+
Returns the identifier for this account.
*/
/*!
\fn QMessageAccount::name() const
-
+
Returns the name of the account for display purposes.
*/
/*!
\fn QMessageAccount::messageTypes() const
-
+
Returns the types of messages this account handles.
*/
/*!
\fn QMessageAccount::defaultAccount(QMessage::Type type)
-
+
Returns the default account for messages of type \a type.
*/
diff --git a/src/messaging/qmessageaccountfilter.cpp b/src/messaging/qmessageaccountfilter.cpp
index e79452ff81..ddaef4ffe0 100644
--- a/src/messaging/qmessageaccountfilter.cpp
+++ b/src/messaging/qmessageaccountfilter.cpp
@@ -52,41 +52,45 @@ QTM_BEGIN_NAMESPACE
\brief The QMessageAccountFilter class defines the parameters used for querying a subset of
all available accounts from the messaging store.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
A QMessageAccountFilter is composed of an account property, an optional comparison operator
- and a comparison value. The QMessageAccountFilter class is used in conjunction with the
- QMessageManager::queryAccounts() and QMessageManager::countAccounts() functions to filter results
+ and a comparison value. The QMessageAccountFilter class is used in conjunction with the
+ QMessageManager::queryAccounts() and QMessageManager::countAccounts() functions to filter results
which meet the criteria defined by the filter.
QMessageAccountFilters can be combined using the overloaded operators (&), (|) and (~) as logical
operators to create more refined queries.
+ Evaluation of filters is delayed until they are used in a QMessageManager function
+ such as queryAccounts, except where explicitly documented otherwise.
+
\sa QMessageManager, QMessageAccount
*/
/*!
\fn QMessageAccountFilter::QMessageAccountFilter()
-
+
Creates a QMessageAccountFilter without specifying matching parameters.
- A default-constructed filter (one for which isEmpty() returns true) matches all accounts.
+ A default-constructed filter (one for which isEmpty() returns true) matches all accounts.
\sa isEmpty()
*/
/*!
\fn QMessageAccountFilter::QMessageAccountFilter(const QMessageAccountFilter &other)
-
+
Constructs a copy of \a other.
*/
/*!
\fn QMessageAccountFilter::~QMessageAccountFilter()
-
+
Destroys the filter.
*/
@@ -97,7 +101,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageAccountFilter::setMatchFlags(QMessageDataComparator::MatchFlags matchFlags)
-
+
Set the match flags for the search filter to \a matchFlags.
\sa matchFlags()
@@ -105,9 +109,9 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageDataComparator::MatchFlags QMessageAccountFilter::matchFlags() const
-
+
Return the match flags for the search filter.
-
+
Default is no match flags set.
\sa setMatchFlags()
@@ -115,8 +119,8 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageAccountFilter::isEmpty() const
-
- Returns true if the filter remains empty after default construction; otherwise returns false.
+
+ Returns true if the filter remains empty after default construction; otherwise returns false.
An empty filter matches all accounts.
@@ -131,17 +135,17 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageAccountFilter::isSupported() const
-
+
Returns true if the filter is supported on the current platform; otherwise returns false.
*/
/*!
\fn QMessageAccountFilter::operator~() const
-
+
Returns a filter that is the logical NOT of the value of this filter (ignoring any
matchFlags() set on the filter).
- If this filter is empty, the result will be a non-matching filter; if this filter is
+ If this filter is empty, the result will be a non-matching filter; if this filter is
non-matching, the result will be an empty filter.
\sa isEmpty()
@@ -149,36 +153,36 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageAccountFilter::operator&(const QMessageAccountFilter& other) const
-
+
Returns a filter that is the logical AND of this filter and the value of filter \a other.
*/
/*!
\fn QMessageAccountFilter::operator|(const QMessageAccountFilter& other) const
-
+
Returns a filter that is the logical OR of this filter and the value of filter \a other.
*/
/*!
\fn QMessageAccountFilter::operator&=(const QMessageAccountFilter& other)
-
+
Performs a logical AND with this filter and the filter \a other and assigns the result
to this filter.
*/
/*!
\fn QMessageAccountFilter::operator|=(const QMessageAccountFilter& other)
-
+
Performs a logical OR with this filter and the filter \a other and assigns the result
to this filter.
*/
-/*!
+/*!
\internal
\fn QMessageAccountFilter::operator==(const QMessageAccountFilter& other) const
*/
-/*!
+/*!
\internal
*/
bool QMessageAccountFilter::operator!=(const QMessageAccountFilter& other) const
@@ -188,7 +192,7 @@ bool QMessageAccountFilter::operator!=(const QMessageAccountFilter& other) const
/*!
\fn QMessageAccountFilter::byId(const QMessageAccountId &id, QMessageDataComparator::EqualityComparator cmp)
-
+
Returns a filter matching accounts whose identifier matches \a id, according to \a cmp.
\sa QMessageAccount::id()
@@ -196,7 +200,7 @@ bool QMessageAccountFilter::operator!=(const QMessageAccountFilter& other) const
/*!
\fn QMessageAccountFilter::byId(const QMessageAccountIdList &ids, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching accounts whose identifier is a member of \a ids, according to \a cmp.
\sa QMessageAccount::id()
@@ -204,7 +208,7 @@ bool QMessageAccountFilter::operator!=(const QMessageAccountFilter& other) const
/*!
\fn QMessageAccountFilter::byId(const QMessageAccountFilter &filter, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching accounts whose identifier is a member of the set yielded by \a filter, according to \a cmp.
\sa QMessageAccount::id()
@@ -215,12 +219,14 @@ bool QMessageAccountFilter::operator!=(const QMessageAccountFilter& other) const
Returns a filter matching accounts who name matches \a pattern, according to \a cmp.
+ This filter is evaluated when it is constructed.
+
\sa QMessageAccount::name()
*/
/*!
\fn QMessageAccountFilter::byName(const QString &value, QMessageDataComparator::EqualityComparator cmp)
-
+
Returns a filter matching accounts whose name matches \a value, according to \a cmp.
Not supported on Linux, Maemo 6 (Harmattan) and Meego.com (use InclusionComparator).
@@ -230,7 +236,7 @@ bool QMessageAccountFilter::operator!=(const QMessageAccountFilter& other) const
/*!
\fn QMessageAccountFilter::byName(const QString &value, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching accounts whose name matches the substring \a value, according to \a cmp.
\sa QMessageAccount::name()
diff --git a/src/messaging/qmessageaccountid.cpp b/src/messaging/qmessageaccountid.cpp
index 50c924351c..aec4246642 100644
--- a/src/messaging/qmessageaccountid.cpp
+++ b/src/messaging/qmessageaccountid.cpp
@@ -44,22 +44,23 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageAccountId
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- \brief The QMessageAccountId class provides a unique identifier for a QMessageAccount
+ \brief The QMessageAccountId class provides a unique identifier for a QMessageAccount
messaging account, within the scope of the messaging store.
A QMessageAccountId can be constructed from a string, or converted to a string with toString().
- A QMessageAccountId instance can be tested for validity with isValid(), and compared to other
+ A QMessageAccountId instance can be tested for validity with isValid(), and compared to other
instances for equality.
-
- If the message a QMessageAccountId identifies is removed from the messaging store then the
+
+ If the message a QMessageAccountId identifies is removed from the messaging store then the
identifier will not be reused.
-
+
\sa QMessageAccount
*/
@@ -79,13 +80,13 @@ QTM_BEGIN_NAMESPACE
\fn QMessageAccountId::QMessageAccountId(const QString& id)
Constructs an identifier from \a id.
-
+
\sa toString()
*/
/*!
\fn QMessageAccountId::~QMessageAccountId()
-
+
Destroys the identifier.
*/
@@ -115,10 +116,10 @@ bool QMessageAccountId::operator!=(const QMessageAccountId &other) const
\fn bool QMessageAccountId::toString() const
Returns the string representation of this identifier.
-
+
A null string should be returned if and only if the identifier is invalid.
- String representations of identifiers should not be used to test for equality, instead
+ String representations of identifiers should not be used to test for equality, instead
the equality operator should be used.
*/
diff --git a/src/messaging/qmessageaccountsortorder.cpp b/src/messaging/qmessageaccountsortorder.cpp
index e1a2d730cb..87bd7c132a 100644
--- a/src/messaging/qmessageaccountsortorder.cpp
+++ b/src/messaging/qmessageaccountsortorder.cpp
@@ -45,28 +45,29 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageAccountSortOrder
- \brief The QMessageAccountSortOrder class defines the parameters used for sorting a subset of
+ \brief The QMessageAccountSortOrder class defines the parameters used for sorting a subset of
queried accounts from the messaging store.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- A QMessageAccountSortOrder is composed of a account property to sort and a sort order.
- The QMessageAccountSortOrder class is used in conjunction with the QMessageManager::queryAccounts()
+ A QMessageAccountSortOrder is composed of a account property to sort and a sort order.
+ The QMessageAccountSortOrder class is used in conjunction with the QMessageManager::queryAccounts()
function to sort account results according to the criteria defined by the sort order.
-
+
\sa QMessageManager, QMessageAccountFilter
*/
/*!
\fn QMessageAccountSortOrder::QMessageAccountSortOrder()
-
+
Create a QMessageAccountSortOrder with specifying matching parameters.
- A default-constructed sort order (one for which isEmpty() returns true) sorts no accounts.
+ A default-constructed sort order (one for which isEmpty() returns true) sorts no accounts.
- The result of combining an empty sort order with a non-empty sort order is the same as the original
+ The result of combining an empty sort order with a non-empty sort order is the same as the original
non-empty sort order.
The result of combining two empty sort orders is an empty sort order.
@@ -74,13 +75,13 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageAccountSortOrder::QMessageAccountSortOrder(const QMessageAccountSortOrder &other)
-
+
Constructs a copy of \a other.
*/
/*!
\fn QMessageAccountSortOrder::~QMessageAccountSortOrder()
-
+
Destroys the sort order.
*/
@@ -88,16 +89,16 @@ QTM_BEGIN_NAMESPACE
\internal
\fn QMessageAccountSortOrder::operator=(const QMessageAccountSortOrder& other)
*/
-
+
/*!
\fn QMessageAccountSortOrder::isEmpty() const
-
+
Returns true if the sort order remains empty after default construction; otherwise returns false.
*/
/*!
\fn QMessageAccountSortOrder::isSupported() const
-
+
Returns true if the sort order is supported on the current platform; otherwise returns false.
*/
@@ -116,7 +117,7 @@ bool QMessageAccountSortOrder::operator!=(const QMessageAccountSortOrder& other)
/*!
\fn QMessageAccountSortOrder::byName(Qt::SortOrder order)
-
+
Returns an sort order that sorts accounts by name, according to \a order.
\sa QMessageAccount::name()
diff --git a/src/messaging/qmessageaddress.cpp b/src/messaging/qmessageaddress.cpp
index eeb18110f2..992297a5cb 100644
--- a/src/messaging/qmessageaddress.cpp
+++ b/src/messaging/qmessageaddress.cpp
@@ -49,24 +49,25 @@ QTM_BEGIN_NAMESPACE
\brief The QMessageAddress class provides an interface for a message address.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
-
+ \since 1.0
+
A message address consists of an addressee string and a type.
-*/
+*/
/*!
\enum QMessageAddress::Type
This enum type is used to describe the type of a message address.
-
+
\value System A system address.
\value Phone A telephony address.
\value Email An Email, Internet Message Format address.
\value InstantMessage An Instant Messaging address.
-
+
\sa type(), setType()
*/
@@ -176,14 +177,14 @@ void QMessageAddress::setType(Type type)
* \a name is set to the name part of the email address.
* \a address is set to the address part of the email address.
* \a suffix is set to the suffix part of the email address.
-
- If the starting delimeter between the name and address part of the email address is found
+
+ If the starting delimeter between the name and address part of the email address is found
then * \a startDelimeterFound is set to true; otherwise * \a startDelimeterFound is set to false;
If the starting delimeter is not found, then the parsing is ambiguous and both * \a name and
* \a address will be set to the input \a emailAddress.
- If the ending delimeter of the address part of the email address is found
+ If the ending delimeter of the address part of the email address is found
then * \a endDelimeterFound is set to true; otherwise * \a endDelimeterFound is set to false;
*/
diff --git a/src/messaging/qmessagecontentcontainer.cpp b/src/messaging/qmessagecontentcontainer.cpp
index 15a21cfd81..d1e19c438d 100644
--- a/src/messaging/qmessagecontentcontainer.cpp
+++ b/src/messaging/qmessagecontentcontainer.cpp
@@ -52,47 +52,48 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageContentContainer
- \brief The QMessageContentContainer class provides an interface for internet media (MIME)
- and Transport Neutral Encapsulation Format (TNEF) content that is possibly only
+ \brief The QMessageContentContainer class provides an interface for internet media (MIME)
+ and Transport Neutral Encapsulation Format (TNEF) content that is possibly only
partially retrieved.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- A QMessageContentContainer object can either directly contain media such as text,
- image, audio, video, application or message data, or contain multiple parts of content,
+ A QMessageContentContainer object can either directly contain media such as text,
+ image, audio, video, application or message data, or contain multiple parts of content,
but can not contain both media and multiple parts directly.
-
- Container objects can be obtained via their QMessageContentContainerId
+
+ Container objects can be obtained via their QMessageContentContainerId
identifier, using the find() function of the containing QMessage object.
-
- For textual content using a recognized charset encoding textContent() will
+
+ For textual content using a recognized charset encoding textContent() will
return the content as a unicode string.
-
- For non-multipart content content() will return the content data after decoding any
- transfer encoding used to represent binary data using 7-bit ASCII characters, such as
+
+ For non-multipart content content() will return the content data after decoding any
+ transfer encoding used to represent binary data using 7-bit ASCII characters, such as
quoted-printable and base64.
-
+
The internet media (MIME) type of the container is returned by contentType(),
- the content subtype is returned by contentSubType(), the content type charset parameter
- is returned by contentCharset(), and the content suggested filename by suggestedFileName().
+ the content subtype is returned by contentSubType(), the content type charset parameter
+ is returned by contentCharset(), and the content suggested filename by suggestedFileName().
- The type of a container that contains multiple parts of content must be "multipart" (case
- insensitive). A list of identifiers for directly contained parts of content is returned
+ The type of a container that contains multiple parts of content must be "multipart" (case
+ insensitive). A list of identifiers for directly contained parts of content is returned
by contentIds().
-
- An indication of the size of the container and its contents on the originating server is
- given by size(). If the content is entirely available on the device
+
+ An indication of the size of the container and its contents on the originating server is
+ given by size(). If the content is entirely available on the device
isContentAvailable() will return true.
- Non-multipart content can be serialized to a QDataStream using
+ Non-multipart content can be serialized to a QDataStream using
writeContentTo(), or to a QTextStream using writeTextContentTo().
-
- A container also stores name-value pairs known as header fields. Names are ASCII strings,
- while values are charset encoded unicode strings. A list of the header fields present
- in a container is returned by headerFields(). The unicode string values associated
+
+ A container also stores name-value pairs known as header fields. Names are ASCII strings,
+ while values are charset encoded unicode strings. A list of the header fields present
+ in a container is returned by headerFields(). The unicode string values associated
with a particular header field name are returned by headerFieldValues().
\sa QMessage, QMessageContentContainerId
@@ -100,7 +101,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::QMessageContentContainer()
-
+
Constructs an empty container object.
*/
@@ -117,17 +118,17 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::~QMessageContentContainer()
-
+
Destroys the container object.
*/
/*!
\fn QMessageContentContainer::contentType() const
-
- Returns the content type of the container. Common types are "text", "image", "audio",
+
+ Returns the content type of the container. Common types are "text", "image", "audio",
"video", "application", "message" and "multipart".
- The internet media (MIME) type of the container is "multipart" if the container directly
+ The internet media (MIME) type of the container is "multipart" if the container directly
contains multiple parts rather than directly contains media.
\sa contentSubType(), contentCharset()
@@ -135,7 +136,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::contentSubType() const
-
+
Returns the internet media (MIME) subtype of the content.
\sa contentType(), contentCharset()
@@ -143,8 +144,8 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::contentCharset() const
-
- Returns the internet media (MIME) content charset, when defined;
+
+ Returns the internet media (MIME) content charset, when defined;
otherwise an empty array is returned.
\sa contentType(), contentSubType()
@@ -152,7 +153,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::suggestedFileName() const
-
+
Returns the suggested filename for the attachment, when defined;
otherwise an empty array is returned.
@@ -161,32 +162,32 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::isContentAvailable() const
-
- Returns true if the entirety of the content contained is available on the device;
+
+ Returns true if the entirety of the content contained is available on the device;
otherwise returns false.
*/
/*!
\fn QMessageContentContainer::size() const
-
- If the size of the container is known then returns an indication of the size of the container
+
+ If the size of the container is known then returns an indication of the size of the container
on the originating server, including contents; otherwise returns 0.
*/
/*!
\fn QMessageContentContainer::textContent() const
-
- For textual content encoded with a recognized charset, returns the content as a unicode string;
+
+ For textual content encoded with a recognized charset, returns the content as a unicode string;
otherwise a null string is returned.
*/
/*!
\fn QMessageContentContainer::content() const
-
- Return the content after decoding any transfer encoding used to represent binary data
+
+ Return the content after decoding any transfer encoding used to represent binary data
using 7-bit ASCII characters, such as quoted-printable and base64.
-
- For textual content any text charset encoding such as Shift-JIS, ISO 2022-JP, KOI8-R,
+
+ For textual content any text charset encoding such as Shift-JIS, ISO 2022-JP, KOI8-R,
Windows-1251 etc will not be decoded.
\sa textContent()
@@ -194,22 +195,22 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::writeTextContent(QTextStream& out) const
-
- For a non-multipart container, writes the content as returned by textContent()
+
+ For a non-multipart container, writes the content as returned by textContent()
to the stream \a out; otherwise does nothing.
*/
/*!
\fn QMessageContentContainer::writeContent(QDataStream& out) const
-
- For a non-multipart container, writes the content as returned by content()
+
+ For a non-multipart container, writes the content as returned by content()
to the stream \a out; otherwise does nothing.
*/
/*!
\fn QMessageContentContainer::contentIds() const
-
- For a multipart container returns a list of identifiers for all content directly contained by
+
+ For a multipart container returns a list of identifiers for all content directly contained by
the container; otherwise returns an empty list.
\sa find(), contains()
@@ -217,9 +218,9 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::find(const QMessageContentContainerId &id) const
-
- If the container contains another container with identifier \a id either directly or
- recursively, then returns the value of that other container; otherwise returns an
+
+ If the container contains another container with identifier \a id either directly or
+ recursively, then returns the value of that other container; otherwise returns an
empty container constructed with the default constructor.
\sa contains(), contentIds()
@@ -227,8 +228,8 @@ QTM_BEGIN_NAMESPACE
/*!
\fn bool QMessageContentContainer::contains(const QMessageContentContainerId &id) const;
-
- If the container contains content with the identifier \a id, either directly or recursively
+
+ If the container contains content with the identifier \a id, either directly or recursively
then returns true; otherwise returns false.
\sa find(), contentIds()
@@ -236,7 +237,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::headerFieldValue(const QByteArray &name) const
-
+
Returns the value of the first header field of the container with the name \a name, if any;
otherwise returns a null string.
@@ -245,7 +246,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::headerFieldValues(const QByteArray &name) const
-
+
Returns a list of values of header fields with the name \a name, if any;
otherwise returns an empty list.
@@ -254,7 +255,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageContentContainer::headerFields() const
-
+
Returns a list of names of header fields of the container.
\sa headerFieldValue(), headerFieldValues()
diff --git a/src/messaging/qmessagecontentcontainer_symbian.cpp b/src/messaging/qmessagecontentcontainer_symbian.cpp
index b9404cc5eb..b3f7ff4144 100644
--- a/src/messaging/qmessagecontentcontainer_symbian.cpp
+++ b/src/messaging/qmessagecontentcontainer_symbian.cpp
@@ -158,6 +158,7 @@ void QMessageContentContainerPrivate::setContent(const QByteArray &content, cons
setContentType(type, subType, charset);
_content = content;
+ _size = content.size();
_available = true;
}
@@ -235,12 +236,10 @@ bool QMessageContentContainerPrivate::createAttachment(const QString& attachment
//set the mime-type
QByteArray mimeType;
- QString type;
- TBuf8<255> fileBuffer;
RApaLsSession session;
QString fileString = fi.fileName();
TPtrC16 filePtr(reinterpret_cast<const TUint16*>(fileString.utf16()));
- TBuf8<20> fileType;
+ TBuf8<KMaxDataTypeLength> fileType;
TPtrC8 ptr8((TUint8 *)(_content.constData()), _content.length());
if(session.Connect() == KErrNone){
TDataRecognitionResult fileDataType;
@@ -250,7 +249,6 @@ bool QMessageContentContainerPrivate::createAttachment(const QString& attachment
session.Close();
}
- QString extension(fi.suffix());
int index = mimeType.indexOf("/");
if (index != -1) {
_type = mimeType.left(index).trimmed();
@@ -388,7 +386,19 @@ int QMessageContentContainer::size() const
CFSEngine::instance()->retrieveMessageContentHeaders(*d_ptr->_message);
}
#endif
- return d_ptr->_size;
+ int size = 0;
+ if (d_ptr->_size != 0) {
+ size = d_ptr->_size;
+ } else {
+ QMessageContentContainerPrivate *container(((QMessageContentContainer *)(this))->d_ptr);
+ if (container->_size != 0) {
+ size += container->_size;
+ }
+ foreach (const QMessageContentContainer &attachment, container->_attachments) {
+ size += attachment.size();
+ }
+ }
+ return size;
}
QString QMessageContentContainer::textContent() const
diff --git a/src/messaging/qmessagecontentcontainerid.cpp b/src/messaging/qmessagecontentcontainerid.cpp
index 913c1b709b..067ba1d567 100644
--- a/src/messaging/qmessagecontentcontainerid.cpp
+++ b/src/messaging/qmessagecontentcontainerid.cpp
@@ -49,6 +49,8 @@ QTM_BEGIN_NAMESPACE
\ingroup messaging
+ \since 1.2
+
\brief The QMessageContentContainerId class provides a unique identifier for
QMessageContentContainer internet media (MIME) type entities, within the scope of the
containing message.
diff --git a/src/messaging/qmessagefilter.cpp b/src/messaging/qmessagefilter.cpp
index a00c5e0e98..f7f1ae123c 100644
--- a/src/messaging/qmessagefilter.cpp
+++ b/src/messaging/qmessagefilter.cpp
@@ -55,6 +55,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtMessaging
\ingroup messaging
+ \since 1.0
A QMessageFilter is composed of a message property, an optional comparison operator
and a comparison value. The QMessageFilter class is used in conjunction with the
@@ -73,6 +74,9 @@ QTM_BEGIN_NAMESPACE
QMessageFilter senderFilter(QMessageFilter::bySender("joe@user.com"));
QMessageIdList results = QMessageManager().queryMessages(subjectFilter & senderFilter);
\endcode
+
+ Evaluation of filters is delayed until they are used in a QMessageManager function
+ such as queryMessages, except where explicitly documented otherwise.
\sa QMessageManager, QMessage
*/
@@ -239,6 +243,7 @@ bool QMessageFilter::operator!=(const QMessageFilter& other) const
\fn QMessageFilter::bySender(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
Returns a filter matching messages whose sender matches \a pattern, according to the \a cmp function.
+ This filter is evaluated when it is constructed.
\sa QMessage::from()
*/
@@ -247,7 +252,7 @@ bool QMessageFilter::operator!=(const QMessageFilter& other) const
\fn QMessageFilter::bySender(const QString &value, QMessageDataComparator::EqualityComparator cmp)
Returns a filter matching messages whose sender matches \a value, according to \a cmp.
-
+
Not supported on Linux, Maemo 6 (Harmattan) and Meego.com (use InclusionComparator).
\sa QMessage::from()
@@ -265,7 +270,7 @@ bool QMessageFilter::operator!=(const QMessageFilter& other) const
\fn QMessageFilter::byRecipients(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
Returns a filter matching messages whose recipients include the substring \a pattern,
- according to \a cmp.
+ according to \a cmp. This filter is evaluated when it is constructed.
\sa QMessage::to(), QMessage::cc(), QMessage::bcc()
*/
@@ -441,7 +446,7 @@ bool QMessageFilter::operator!=(const QMessageFilter& other) const
\fn QMessageFilter::byTo(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
Returns a filter matching messages whose to recipients include the substring \a pattern,
- according to \a cmp.
+ according to \a cmp. This filter is evaluated when it is constructed.
\sa QMessage::to(), QMessage::cc(), QMessage::bcc()
*/
@@ -450,7 +455,7 @@ bool QMessageFilter::operator!=(const QMessageFilter& other) const
\fn QMessageFilter::byCc(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
Returns a filter matching messages whose cc recipients include the substring \a pattern,
- according to \a cmp.
+ according to \a cmp. This filter is evaluated when it is constructed.
\sa QMessage::to(), QMessage::cc(), QMessage::bcc()
*/
@@ -459,7 +464,7 @@ bool QMessageFilter::operator!=(const QMessageFilter& other) const
\fn QMessageFilter::byBcc(const QString &pattern, QMessageDataComparator::LikeComparator cmp)
Returns a filter matching messages whose bcc recipients include the substring \a pattern,
- according to \a cmp.
+ according to \a cmp. This filter is evaluated when it is constructed.
\sa QMessage::to(), QMessage::cc(), QMessage::bcc()
*/
diff --git a/src/messaging/qmessagefolder.cpp b/src/messaging/qmessagefolder.cpp
index 765fd17eb0..35942e8bdd 100644
--- a/src/messaging/qmessagefolder.cpp
+++ b/src/messaging/qmessagefolder.cpp
@@ -43,17 +43,18 @@
/*!
\class QMessageFolder
- \brief The QMessageFolder class provides an interface for folders containing messages in the
+ \brief The QMessageFolder class provides an interface for folders containing messages in the
messaging store.
-
-
+
+
\inmodule QtMessaging
-
+
\ingroup messaging
-
- QMessageFolder represents a folder of messages, either fully or partially stored in the
- messaging store. A QMessageFolder object has an optional parent of the same type, allowing
- folders to be arranged in tree structures. Messages may be associated with folders, allowing
+ \since 1.0
+
+ QMessageFolder represents a folder of messages, either fully or partially stored in the
+ messaging store. A QMessageFolder object has an optional parent of the same type, allowing
+ folders to be arranged in tree structures. Messages may be associated with folders, allowing
for simple classification and access by their parentFolderId property.
\sa QMessage, QMessageStore::folder()
@@ -61,17 +62,17 @@
/*!
\fn QMessageFolder::QMessageFolder()
-
- Constructor that creates an empty and invalid QMessageFolder. An empty folder is one which
- has no path, no parent folder and no parent account. An invalid folder does not exist in
+
+ Constructor that creates an empty and invalid QMessageFolder. An empty folder is one which
+ has no path, no parent folder and no parent account. An invalid folder does not exist in
the database and has an invalid id.
*/
/*!
\fn QMessageFolder::QMessageFolder(const QMessageFolderId &id)
-
- Constructor that creates a QMessageFolder by loading the data from the messaging store as
- specified by the QMessageFolderId \a id. If the folder does not exist in the messaging
+
+ Constructor that creates a QMessageFolder by loading the data from the messaging store as
+ specified by the QMessageFolderId \a id. If the folder does not exist in the messaging
store, then this constructor will create an empty and invalid QMessageFolder.
*/
@@ -88,40 +89,40 @@
/*!
\fn QMessageFolder::~QMessageFolder()
-
+
Destroys the QMessageFolder object.
*/
/*!
\fn QMessageFolder::id() const
-
- Returns the identifier of the QMessageFolder object. A QMessageFolder with an invalid
+
+ Returns the identifier of the QMessageFolder object. A QMessageFolder with an invalid
identifier does not yet exist in the messaging store.
*/
/*!
\fn QMessageFolder::parentAccountId() const
-
- Returns the identifier of the parent account of the folder. If the folder is not linked to
+
+ Returns the identifier of the parent account of the folder. If the folder is not linked to
an account an invalid identifier is returned.
*/
/*!
\fn QMessageFolder::parentFolderId() const
-
- Returns the identifier of the parent folder. This folder is a root folder if the parent
+
+ Returns the identifier of the parent folder. This folder is a root folder if the parent
identifier is invalid.
*/
/*!
\fn QMessageFolder::name() const
-
+
Returns the display name of the folder suitable for viewing in a user interface. This is
typically the same as, or a simplification of the path() for the folder.
*/
/*!
\fn QMessageFolder::path() const
-
+
Returns the path of the folder.
*/
diff --git a/src/messaging/qmessagefolderfilter.cpp b/src/messaging/qmessagefolderfilter.cpp
index 1d1c346418..53674ad862 100644
--- a/src/messaging/qmessagefolderfilter.cpp
+++ b/src/messaging/qmessagefolderfilter.cpp
@@ -51,41 +51,45 @@ QTM_BEGIN_NAMESPACE
\brief The QMessageFolderFilter class defines the parameters used for querying a subset of
all available folders from the messaging store.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
A QMessageFolderFilter is composed of a folder property, an optional comparison operator
- and a comparison value. The QMessageFolderFilter class is used in conjunction with the
- QMessageManager::queryFolders() and QMessageManager::countFolders() functions to filter results
+ and a comparison value. The QMessageFolderFilter class is used in conjunction with the
+ QMessageManager::queryFolders() and QMessageManager::countFolders() functions to filter results
which meet the criteria defined by the filter.
QMessageFolderFilters can be combined using the logical operators (&), (|) and (~) to
create more refined queries.
+ Evaluation of filters is delayed until they are used in a QMessageManager function
+ such as queryFolders, except where explicitly documented otherwise.
+
\sa QMessageManager, QMessageFolder
*/
/*!
\fn QMessageFolderFilter::QMessageFolderFilter()
-
+
Creates a QMessageFolderFilter without specifying matching parameters.
- A default-constructed filter (one for which isEmpty() returns true) matches all folders.
+ A default-constructed filter (one for which isEmpty() returns true) matches all folders.
\sa isEmpty()
*/
/*!
\fn QMessageFolderFilter::QMessageFolderFilter(const QMessageFolderFilter &other)
-
+
Constructs a copy of \a other.
*/
/*!
\fn QMessageFolderFilter::~QMessageFolderFilter()
-
+
Destroys the filter.
*/
@@ -96,7 +100,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageFolderFilter::setMatchFlags(QMessageDataComparator::MatchFlags matchFlags)
-
+
Set the match flags for the search filter to \a matchFlags.
\sa matchFlags()
@@ -104,9 +108,9 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageDataComparator::MatchFlags QMessageFolderFilter::matchFlags() const
-
+
Return the match flags for the search filter.
-
+
Default is no match flags set.
\sa setMatchFlags()
@@ -114,8 +118,8 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageFolderFilter::isEmpty() const
-
- Returns true if the filter remains empty after default construction; otherwise returns false.
+
+ Returns true if the filter remains empty after default construction; otherwise returns false.
An empty filter matches all folders.
@@ -130,17 +134,17 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageFolderFilter::isSupported() const
-
+
Returns true if the filter is supported on the current platform; otherwise returns false.
*/
/*!
\fn QMessageFolderFilter::operator~() const
-
+
Returns a filter that is the logical NOT of the value of this filter (ignoring any
matchFlags() set on the filter).
- If this filter is empty, the result will be a non-matching filter; if this filter is
+ If this filter is empty, the result will be a non-matching filter; if this filter is
non-matching, the result will be an empty filter.
\sa isEmpty()
@@ -148,26 +152,26 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageFolderFilter::operator&(const QMessageFolderFilter& other) const
-
+
Returns a filter that is the logical AND of this filter and the value of filter \a other.
*/
/*!
\fn QMessageFolderFilter::operator|(const QMessageFolderFilter& other) const
-
+
Returns a filter that is the logical OR of this filter and the value of filter \a other.
*/
/*!
\fn QMessageFolderFilter::operator&=(const QMessageFolderFilter& other)
-
+
Performs a logical AND with this filter and the filter \a other and assigns the result
to this filter.
*/
/*!
\fn QMessageFolderFilter::operator|=(const QMessageFolderFilter& other)
-
+
Performs a logical OR with this filter and the filter \a other and assigns the result
to this filter.
*/
@@ -187,7 +191,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byId(const QMessageFolderId &id, QMessageDataComparator::EqualityComparator cmp)
-
+
Returns a filter matching folders whose identifier matches \a id, according to \a cmp.
\sa QMessageFolder::id()
@@ -195,7 +199,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byId(const QMessageFolderIdList &ids, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose identifier is a member of \a ids, according to \a cmp.
\sa QMessageFolder::id()
@@ -203,7 +207,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byId(const QMessageFolderFilter &filter, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose identifier is a member of the set yielded by \a filter, according to \a cmp.
\sa QMessageFolder::id()
@@ -214,22 +218,24 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
Returns a filter matching folders whose display name matches \a pattern, according to \a cmp.
+ This filter is evaluated when it is constructed.
+
\sa QMessageFolder::name()
*/
/*!
\fn QMessageFolderFilter::byName(const QString &value, QMessageDataComparator::EqualityComparator cmp)
-
+
Returns a filter matching folders whose display name matches \a value, according to \a cmp.
Not supported on Linux, Maemo 6 (Harmattan) and Meego.com (use InclusionComparator).
-
+
\sa QMessageFolder::name()
*/
/*!
\fn QMessageFolderFilter::byName(const QString &value, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose display name matches the substring \a value, according to \a cmp.
\sa QMessageFolder::name()
@@ -240,12 +246,14 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
Returns a filter matching folders whose path matches \a pattern, according to \a cmp.
+ This filter is evaluated when it is constructed.
+
\sa QMessageFolder::path()
*/
/*!
\fn QMessageFolderFilter::byPath(const QString &value, QMessageDataComparator::EqualityComparator cmp)
-
+
Returns a filter matching folders whose path matches \a value, according to \a cmp.
Not supported on Linux, Maemo 6 (Harmattan) and Meego.com (use InclusionComparator).
@@ -255,7 +263,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byPath(const QString &value, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose path matches the substring \a value, according to \a cmp.
\sa QMessageFolder::path()
@@ -263,7 +271,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byParentAccountId(const QMessageAccountId &id, QMessageDataComparator::EqualityComparator cmp)
-
+
Returns a filter matching folders whose parent account identifier matches \a id, according to \a cmp.
\sa QMessageAccount::id()
@@ -271,7 +279,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byParentAccountId(const QMessageAccountFilter &filter, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose parent account identifier is a member of the set yielded by \a filter, according to \a cmp.
\sa QMessageAccount::id()
@@ -279,7 +287,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byParentFolderId(const QMessageFolderId &id, QMessageDataComparator::EqualityComparator cmp)
-
+
Returns a filter matching folders whose parent folder identifier matches \a id, according to \a cmp.
\sa QMessageFolder::id()
@@ -287,7 +295,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byParentFolderId(const QMessageFolderFilter &filter, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose parent folder identifier is a member of the set yielded by \a filter, according to \a cmp.
\sa QMessageFolder::id()
@@ -295,7 +303,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byAncestorFolderIds(const QMessageFolderId &id, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose ancestor folders' identifiers contain \a id, according to \a cmp.
\sa QMessageFolder::id()
@@ -303,7 +311,7 @@ bool QMessageFolderFilter::operator!=(const QMessageFolderFilter& other) const
/*!
\fn QMessageFolderFilter::byAncestorFolderIds(const QMessageFolderFilter &filter, QMessageDataComparator::InclusionComparator cmp)
-
+
Returns a filter matching folders whose ancestor folders' identifiers contain a member of the set yielded by \a filter, according to \a cmp.
\sa QMessageFolder::id()
diff --git a/src/messaging/qmessagefolderid.cpp b/src/messaging/qmessagefolderid.cpp
index e2bd76ab06..488db0fc9f 100644
--- a/src/messaging/qmessagefolderid.cpp
+++ b/src/messaging/qmessagefolderid.cpp
@@ -44,22 +44,23 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageFolderId
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- \brief The QMessageFolderId class provides a unique identifier for a QMessageFolder message
+ \brief The QMessageFolderId class provides a unique identifier for a QMessageFolder message
folder, within the scope of the messaging store.
A QMessageFolderId can be constructed from a string, or converted to a string with toString().
- A QMessageFolderId instance can be tested for validity with isValid(), and compared to other
+ A QMessageFolderId instance can be tested for validity with isValid(), and compared to other
instances for equality.
-
- If the message a QMessageFolderId identifies is removed from the messaging store then the
+
+ If the message a QMessageFolderId identifies is removed from the messaging store then the
identifier will not be reused.
-
+
\sa QMessageFolder
*/
@@ -79,13 +80,13 @@ QTM_BEGIN_NAMESPACE
\fn QMessageFolderId::QMessageFolderId(const QString& id)
Constructs an identifier from \a id.
-
+
\sa toString()
*/
/*!
\fn QMessageFolderId::~QMessageFolderId()
-
+
Destroys the identifier.
*/
@@ -115,10 +116,10 @@ bool QMessageFolderId::operator!=(const QMessageFolderId &other) const
\fn bool QMessageFolderId::toString() const
Returns the string representation of this identifier.
-
+
A null string should be returned if and only if the identifier is invalid.
- String representations of identifiers should not be used to test for equality, instead
+ String representations of identifiers should not be used to test for equality, instead
the equality operator should be used.
*/
diff --git a/src/messaging/qmessagefoldersortorder.cpp b/src/messaging/qmessagefoldersortorder.cpp
index b69c68f17a..300a584759 100644
--- a/src/messaging/qmessagefoldersortorder.cpp
+++ b/src/messaging/qmessagefoldersortorder.cpp
@@ -45,28 +45,29 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageFolderSortOrder
- \brief The QMessageFolderSortOrder class defines the parameters used for sorting a subset of
+ \brief The QMessageFolderSortOrder class defines the parameters used for sorting a subset of
queried folders from the messaging store.
-
+
\inmodule QtMessaging
-
+ \since 1.0
+
\ingroup messaging
- A QMessageFolderSortOrder is composed of a folder property to sort and a sort order.
- The QMessageFolderSortOrder class is used in conjunction with the QMessageManager::queryFolders()
+ A QMessageFolderSortOrder is composed of a folder property to sort and a sort order.
+ The QMessageFolderSortOrder class is used in conjunction with the QMessageManager::queryFolders()
function to sort folder results according to the criteria defined by the sort order.
-
+
\sa QMessageManager, QMessageFolderFilter
*/
/*!
\fn QMessageFolderSortOrder::QMessageFolderSortOrder()
-
+
Create a QMessageFolderSortOrder with specifying matching parameters.
- A default-constructed sort order (one for which isEmpty() returns true) sorts no folders.
+ A default-constructed sort order (one for which isEmpty() returns true) sorts no folders.
- The result of combining an empty sort order with a non-empty sort order is the same as the original
+ The result of combining an empty sort order with a non-empty sort order is the same as the original
non-empty sort order.
The result of combining two empty sort orders is an empty sort order.
@@ -74,13 +75,13 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageFolderSortOrder::QMessageFolderSortOrder(const QMessageFolderSortOrder &other)
-
+
Constructs a copy of \a other.
*/
/*!
\fn QMessageFolderSortOrder::~QMessageFolderSortOrder()
-
+
Destroys the sort order.
*/
@@ -88,34 +89,34 @@ QTM_BEGIN_NAMESPACE
\internal
\fn QMessageFolderSortOrder::operator=(const QMessageFolderSortOrder& other)
*/
-
+
/*!
\fn QMessageFolderSortOrder::isEmpty() const
-
+
Returns true if the sort order remains empty after default construction; otherwise returns false.
*/
/*!
\fn QMessageFolderSortOrder::isSupported() const
-
+
Returns true if the sort order is supported on the current platform; otherwise returns false.
*/
/*!
\fn QMessageFolderSortOrder::operator+(const QMessageFolderSortOrder& other) const
-
- Returns a sort order that which is the result of concatenating the vaue of this sort order and the value
+
+ Returns a sort order that which is the result of concatenating the vaue of this sort order and the value
of \a other.
-
+
This function determines sorting precedence.
*/
/*!
\fn QMessageFolderSortOrder::operator+=(const QMessageFolderSortOrder& other)
-
+
Appends the value of the sort order \a other with the value of this sort order and assigns the result
to this sort order.
-
+
This function determines sorting precedence.
*/
@@ -134,7 +135,7 @@ bool QMessageFolderSortOrder::operator!=(const QMessageFolderSortOrder& other) c
/*!
\fn QMessageFolderSortOrder::byName(Qt::SortOrder order)
-
+
Returns a sort order that sorts folders by display name, according to \a order.
\sa QMessageFolder::name()
@@ -142,7 +143,7 @@ bool QMessageFolderSortOrder::operator!=(const QMessageFolderSortOrder& other) c
/*!
\fn QMessageFolderSortOrder::byPath(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by path according to \a order.
\sa QMessageFolder::path()
diff --git a/src/messaging/qmessageid.cpp b/src/messaging/qmessageid.cpp
index e23e03598a..d0e63fa419 100644
--- a/src/messaging/qmessageid.cpp
+++ b/src/messaging/qmessageid.cpp
@@ -45,24 +45,25 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageId
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- \brief The QMessageId class provides a unique identifier for a QMessage message within the
+ \brief The QMessageId class provides a unique identifier for a QMessage message within the
scope of the messaging store.
A QMessageId can be constructed from a string, or converted to a string with toString().
A QMessageId instance can be tested for validity with isValid(), and compared to other instances
for equality.
-
- If the message a QMessageId identifies is removed from the messaging store then the identifier
+
+ If the message a QMessageId identifies is removed from the messaging store then the identifier
will not be reused.
-
+
The QMessageId implementation should be as small as is practical for the underlying platform.
-
+
\sa QMessage, QMessageManager
*/
@@ -82,13 +83,13 @@ QTM_BEGIN_NAMESPACE
\fn QMessageId::QMessageId(const QString& id)
Constructs an identifier from \a id.
-
+
\sa toString()
*/
/*!
\fn QMessageId::~QMessageId()
-
+
Destroys the identifier.
*/
@@ -118,10 +119,10 @@ bool QMessageId::operator!=(const QMessageId &other) const
\fn bool QMessageId::toString() const
Returns the string representation of this identifier.
-
+
A null string should be returned if and only if the identifier is invalid.
-
- String representations of identifiers should not be used to test for equality, instead
+
+ String representations of identifiers should not be used to test for equality, instead
the equality operator should be used.
*/
diff --git a/src/messaging/qmessagemanager.cpp b/src/messaging/qmessagemanager.cpp
index 08f684190a..456307041f 100644
--- a/src/messaging/qmessagemanager.cpp
+++ b/src/messaging/qmessagemanager.cpp
@@ -51,47 +51,48 @@ QTM_BEGIN_NAMESPACE
\brief The QMessageManager class represents the main interface for storage and retrieval
of messages, folders and accounts in the system message store.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
The system contains a single store for messages, which is accessed via the handle
- class QMessageManager. QMessageManager provides the interface for adding, updating
- and deleting messages in the system's message store.
-
+ class QMessageManager. QMessageManager provides the interface for adding, updating
+ and deleting messages in the system's message store.
+
QMessageManager provides the countFolders() and queryFolders() functions for
- counting and listing the folders contained by the messaging store, and the
+ counting and listing the folders contained by the messaging store, and the
countAccounts() and queryAccounts() functions for counting and listing the
accounts contained by the store. These functions use the QMessageFolderFilter
- and QMessageFolderSortOrder classes, and the QMessageAccountFilter and
+ and QMessageFolderSortOrder classes, and the QMessageAccountFilter and
QMessageAccountSortOrder classes to constrain their searches.
- QMessageManager also implements functionality allowing the messages contained by the
+ QMessageManager also implements functionality allowing the messages contained by the
store to be counted or listed, using various filtering and sortOrder constraints.
Clients can access this functionality via the \l{QMessageService::countMessages()}{countMessages}
and \l{QMessageService::queryMessages()}{queryMessages} functions of the
QMessageService class.
-
- With the exception of Windows mobile and desktop platforms, QMessageManager functions
- should not initiate network activity. Instead functions are restricted to operating
- on data already on the device. See QMessageService for functions related to
+
+ With the exception of Windows mobile and desktop platforms, QMessageManager functions
+ should not initiate network activity. Instead functions are restricted to operating
+ on data already on the device. See QMessageService for functions related to
initiating network activity.
If a QMessageManager operation fails, the error() function will return an error code
- value indicating the failure mode encountered. A successful operation will set the
+ value indicating the failure mode encountered. A successful operation will set the
error() result to QMessageManager::NoError.
- Messages in the messaging store are identified by QMessageId objects. The data associated
- with a message is retrieved in the form of a QMessage object using message(). Likewise
- a folder is retrieved in the form of a QMessageFolder object using folder(), and an
+ Messages in the messaging store are identified by QMessageId objects. The data associated
+ with a message is retrieved in the form of a QMessage object using message(). Likewise
+ a folder is retrieved in the form of a QMessageFolder object using folder(), and an
account is retrieved in the form of a QMessageAccount object using account().
- Messages can be inserted into the store using the addMessage() function, messages in the
- store can be manipulated via the updateMessage() function, and removed by the
+ Messages can be inserted into the store using the addMessage() function, messages in the
+ store can be manipulated via the updateMessage() function, and removed by the
removeMessage() functions.
-
- Messaging store manipulations involving messages are reported via the messagesAdded(),
+
+ Messaging store manipulations involving messages are reported via the messagesAdded(),
messagesUpdated() and messagesRemoved() signals.
\sa QMessage, QMessageId, QMessageContentContainerId, QMessageService
@@ -136,9 +137,9 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageManager::QMessageManager(QObject *parent)
-
+
Constructs a handle to the message store.
-
+
If \a parent is not 0 then the handle will be deleted when \a parent is deleted.
*/
QMessageManager::QMessageManager(QObject *parent)
@@ -154,7 +155,7 @@ QMessageManager::QMessageManager(QObject *parent)
/*!
\fn QMessageManager::~QMessageManager()
-
+
Destroys the handle to the message store.
*/
QMessageManager::~QMessageManager()
@@ -163,7 +164,7 @@ QMessageManager::~QMessageManager()
/*!
\fn QMessageManager::error() const
-
+
Returns the code of the last error condition reported by the messaging store.
*/
QMessageManager::Error QMessageManager::error() const
@@ -173,19 +174,19 @@ QMessageManager::Error QMessageManager::error() const
/*!
\fn QMessageManager::queryMessages(const QMessageFilter &filter, const QMessageSortOrder &sortOrder, uint limit, uint offset) const
-
- Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
- only messages matching the parameters set by \a filter will be returned, otherwise
+
+ Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
+ only messages matching the parameters set by \a filter will be returned, otherwise
identifiers for all messages will be returned.
- If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
+ If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
set by \a sortOrder.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
- The performance of querying messages is currently significantly less than
+
+ The performance of querying messages is currently significantly less than
optimal for some querying criteria on some platforms.
-
+
\sa error(), countMessages()
*/
QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, const QMessageSortOrder &sortOrder, uint limit, uint offset) const
@@ -195,19 +196,19 @@ QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, cons
/*!
\fn QMessageManager::queryMessages(const QMessageFilter &filter, const QList<QMessageSortOrder> &sortOrders, uint limit, uint offset) const
-
- Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
- only messages matching the parameters set by \a filter will be returned, otherwise
+
+ Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
+ only messages matching the parameters set by \a filter will be returned, otherwise
identifiers for all messages will be returned.
If \a sortOrders is not empty, then the identifiers will be sorted by applying each
sort order element in sequence.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
- The performance of querying messages is currently significantly less than
+
+ The performance of querying messages is currently significantly less than
optimal for some querying criteria on some platforms.
-
+
\sa error(), countMessages()
*/
QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, const QList<QMessageSortOrder> &sortOrders, uint limit, uint offset) const
@@ -225,21 +226,21 @@ QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, cons
/*!
\fn QMessageManager::queryMessages(const QMessageFilter &filter, const QString &body, QMessageDataComparator::MatchFlags matchFlags, const QMessageSortOrder &sortOrder, uint limit, uint offset) const
-
- Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
- only messages matching the parameters set by \a filter and with a body containing the
- string \a body will be returned, otherwise identifiers for all messages with
+
+ Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
+ only messages matching the parameters set by \a filter and with a body containing the
+ string \a body will be returned, otherwise identifiers for all messages with
a body containing \a body will be returned.
- If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
+ If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
set by \a sortOrder.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
\a matchFlags specifies the matching method to use.
-
- The performance of querying messages is currently significantly less than
+
+ The performance of querying messages is currently significantly less than
optimal for some querying criteria on some platforms.
-
+
\sa error(), countMessages()
*/
QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, const QString &body, QMessageDataComparator::MatchFlags matchFlags, const QMessageSortOrder &sortOrder, uint limit, uint offset) const
@@ -249,21 +250,21 @@ QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, cons
/*!
\fn QMessageManager::queryMessages(const QMessageFilter &filter, const QString &body, QMessageDataComparator::MatchFlags matchFlags, const QList<QMessageSortOrder> &sortOrders, uint limit, uint offset) const
-
- Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
- only messages matching the parameters set by \a filter and with a body containing the
- string \a body will be returned, otherwise identifiers for all messages with
+
+ Returns the \l{QMessageId}s of messages in the messaging store. If \a filter is not empty
+ only messages matching the parameters set by \a filter and with a body containing the
+ string \a body will be returned, otherwise identifiers for all messages with
a body containing \a body will be returned.
If \a sortOrders is not empty, then the identifiers will be sorted by applying each
sort order element in sequence.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
\a matchFlags specifies the matching method to use.
-
- The performance of querying messages is currently significantly less than
+
+ The performance of querying messages is currently significantly less than
optimal for some querying criteria on some platforms.
-
+
\sa error(), countMessages()
*/
QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, const QString &body, QMessageDataComparator::MatchFlags matchFlags, const QList<QMessageSortOrder> &sortOrders, uint limit, uint offset) const
@@ -281,16 +282,16 @@ QMessageIdList QMessageManager::queryMessages(const QMessageFilter &filter, cons
/*!
\fn QMessageManager::queryFolders(const QMessageFolderFilter &filter, const QMessageFolderSortOrder &sortOrder, uint limit, uint offset) const
-
- Returns the \l{QMessageFolderId}s of folders in the messaging store. If \a filter
+
+ Returns the \l{QMessageFolderId}s of folders in the messaging store. If \a filter
is not empty only folders matching the parameters set by \a filter will be returned,
otherwise identifiers for all folders will be returned.
- If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
+ If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
set by \a sortOrder.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
+
\sa error(), countFolders()
*/
QMessageFolderIdList QMessageManager::queryFolders(const QMessageFolderFilter &filter, const QMessageFolderSortOrder &sortOrder, uint limit, uint offset) const
@@ -300,16 +301,16 @@ QMessageFolderIdList QMessageManager::queryFolders(const QMessageFolderFilter &f
/*!
\fn QMessageManager::queryFolders(const QMessageFolderFilter &filter, const QList<QMessageFolderSortOrder> &sortOrders, uint limit, uint offset) const
-
- Returns the \l{QMessageFolderId}s of folders in the messaging store. If \a filter
+
+ Returns the \l{QMessageFolderId}s of folders in the messaging store. If \a filter
is not empty only folders matching the parameters set by \a filter will be returned,
otherwise identifiers for all folders will be returned.
If \a sortOrders is not empty, then the identifiers will be sorted by applying each
sort order element in sequence.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
+
\sa error(), countFolders()
*/
QMessageFolderIdList QMessageManager::queryFolders(const QMessageFolderFilter &filter, const QList<QMessageFolderSortOrder> &sortOrders, uint limit, uint offset) const
@@ -327,16 +328,16 @@ QMessageFolderIdList QMessageManager::queryFolders(const QMessageFolderFilter &f
/*!
\fn QMessageManager::queryAccounts(const QMessageAccountFilter &filter, const QMessageAccountSortOrder &sortOrder, uint limit, uint offset) const
-
- Returns the \l{QMessageAccountId}s of accounts in the messaging store. If \a filter
- is not empty only accounts matching the parameters set by \a filter will be returned,
+
+ Returns the \l{QMessageAccountId}s of accounts in the messaging store. If \a filter
+ is not empty only accounts matching the parameters set by \a filter will be returned,
otherwise identifiers for all accounts will be returned.
- If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
+ If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
set by \a sortOrder.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
+
\sa error(), countAccounts()
*/
QMessageAccountIdList QMessageManager::queryAccounts(const QMessageAccountFilter &filter, const QMessageAccountSortOrder &sortOrder, uint limit, uint offset) const
@@ -346,16 +347,16 @@ QMessageAccountIdList QMessageManager::queryAccounts(const QMessageAccountFilter
/*!
\fn QMessageManager::queryAccounts(const QMessageAccountFilter &filter, const QList<QMessageAccountSortOrder> &sortOrders, uint limit, uint offset) const
-
- Returns the \l{QMessageAccountId}s of accounts in the messaging store. If \a filter
- is not empty only accounts matching the parameters set by \a filter will be returned,
+
+ Returns the \l{QMessageAccountId}s of accounts in the messaging store. If \a filter
+ is not empty only accounts matching the parameters set by \a filter will be returned,
otherwise identifiers for all accounts will be returned.
If \a sortOrders is not empty, then the identifiers will be sorted by applying each
sort order element in sequence.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
+
\sa error(), countAccounts()
*/
QMessageAccountIdList QMessageManager::queryAccounts(const QMessageAccountFilter &filter, const QList<QMessageAccountSortOrder> &sortOrders, uint limit, uint offset) const
@@ -371,14 +372,14 @@ QMessageAccountIdList QMessageManager::queryAccounts(const QMessageAccountFilter
/*!
\fn QMessageManager::countMessages(const QMessageFilter& filter) const
-
- Returns the number of messages which match the filtering criteria defined
- in QMessageFilter \a filter. If \a filter is empty the count of all
+
+ Returns the number of messages which match the filtering criteria defined
+ in QMessageFilter \a filter. If \a filter is empty the count of all
available messages is returned.
-
- The performance of counting messages is currently significantly less than optimal
+
+ The performance of counting messages is currently significantly less than optimal
for some filters on some platforms.
-
+
\sa error(), queryMessages()
*/
int QMessageManager::countMessages(const QMessageFilter& filter) const
@@ -388,11 +389,11 @@ int QMessageManager::countMessages(const QMessageFilter& filter) const
/*!
\fn QMessageManager::countFolders(const QMessageFolderFilter& filter) const
-
- Returns the number of folders which match the filtering criteria defined
- in QMessageFolderFilter \a filter. If \a filter is empty the count of all
+
+ Returns the number of folders which match the filtering criteria defined
+ in QMessageFolderFilter \a filter. If \a filter is empty the count of all
available folders is returned.
-
+
\sa error(), queryFolders()
*/
int QMessageManager::countFolders(const QMessageFolderFilter& filter) const
@@ -402,11 +403,11 @@ int QMessageManager::countFolders(const QMessageFolderFilter& filter) const
/*!
\fn QMessageManager::countAccounts(const QMessageAccountFilter& filter) const
-
- Returns the number of messages which match the filtering criteria defined
- in QMessageAccountFilter \a filter. If \a filter is empty the count of all
+
+ Returns the number of messages which match the filtering criteria defined
+ in QMessageAccountFilter \a filter. If \a filter is empty the count of all
available accounts is returned.
-
+
\sa error(), queryAccounts()
*/
int QMessageManager::countAccounts(const QMessageAccountFilter& filter) const
@@ -416,17 +417,17 @@ int QMessageManager::countAccounts(const QMessageAccountFilter& filter) const
/*!
\fn QMessageManager::removeMessage(const QMessageId& id, RemovalOption option)
-
- Removes the message with QMessageId \a id from the messaging store. If \a option is
- QMessageManager::RemoveOnOriginatingServer then when synchronization is performed the
- message should be removed from both the local message store and the originating server
+
+ Removes the message with QMessageId \a id from the messaging store. If \a option is
+ QMessageManager::RemoveOnOriginatingServer then when synchronization is performed the
+ message should be removed from both the local message store and the originating server
if any.
Returns \c true if the operation successfully updates the store; otherwise returns \c false.
-
+
To ensure the change is propagated to any affected external server
QMessageService::exportUpdates() should be subsequently called.
-
+
\a option is ignored on Windows mobile and desktop platforms.
\sa removeMessages(), addMessage(), updateMessage(), QMessageService::exportUpdates()
@@ -438,19 +439,19 @@ bool QMessageManager::removeMessage(const QMessageId& id, QMessageManager::Remov
/*!
\fn QMessageManager::removeMessages(const QMessageFilter& filter, QMessageManager::RemovalOption option)
-
+
Removes all messages identified by the filter \a filter from the messaging store.
- If \a option is QMessageManager::RemoveOnOriginatingServer then when synchronization is performed the
+ If \a option is QMessageManager::RemoveOnOriginatingServer then when synchronization is performed the
messages should be removed from both the local message store and the originating server if any.
- Returns \c true if the operation successfully updates the store; otherwise returns \c false.
-
+ Returns \c true if the operation successfully updates the store; otherwise returns \c false.
+
To ensure the change is propagated to any affected external server
QMessageService::exportUpdates() should be subsequently called.
\a option is ignored on Windows mobile and desktop platforms.
-
+
For example:
To implement a function to remove a list messages identified by QMessageIds
@@ -476,6 +477,7 @@ bool QMessageManager::removeMessages(const QMessageFilter& filter, QMessageManag
Remove account \a id and all associated information (folders, messages etc.)
+ On Windows mobile and desktop platforms, Maemo 5, and Symbian prior to SR1.11 this function performs no operation.
*/
bool QMessageManager::removeAccount(const QMessageAccountId &id)
{
@@ -484,21 +486,21 @@ bool QMessageManager::removeAccount(const QMessageAccountId &id)
/*!
\fn QMessageManager::addMessage(QMessage *message)
-
- Adds a copy of the message indicated by \a message to the messaging store
- and modifies the message indicated by \a message to contain the identifier
+
+ Adds a copy of the message indicated by \a message to the messaging store
+ and modifies the message indicated by \a message to contain the identifier
of the created message.
- Returns \c true if the operation successfully updates the store; otherwise returns \c false.
-
+ Returns \c true if the operation successfully updates the store; otherwise returns \c false.
+
To ensure the change is propagated to any affected external server
QMessageService::exportUpdates() should be subsequently called.
-
- On the Maemo 5 (Fremantle) platform for SMS type messages this function is not yet
+
+ On the Maemo 5 (Fremantle) platform for SMS type messages this function is not yet
supported.
-
+
Using this function to explicitly set a size or date is not currently supported on some platforms.
-
+
\sa message(), updateMessage(), removeMessage(), QMessageService::exportUpdates()
*/
bool QMessageManager::addMessage(QMessage *m)
@@ -508,22 +510,22 @@ bool QMessageManager::addMessage(QMessage *m)
/*!
\fn QMessageManager::updateMessage(QMessage *message)
-
- Updates the messaging store so that the message whose identifier is contained
+
+ Updates the messaging store so that the message whose identifier is contained
by the message at \a message contains the content at \a message. If \a message
does not contain a valid identifier, no changes will result. Internal data
of the QMessage object at \a message can be modified by this operation.
-
- Returns \c true if the operation successfully updates the store; otherwise returns \c false.
- To ensure the change is propagated to any affected external server
+ Returns \c true if the operation successfully updates the store; otherwise returns \c false.
+
+ To ensure the change is propagated to any affected external server
QMessageService::exportUpdates() should be subsequently called.
Using this function to explicitly set a size or date is not currently supported on some platforms.
-
- On the Maemo 5 (Fremantle) platform this function may only be used to update the priority and
+
+ On the Maemo 5 (Fremantle) platform this function may only be used to update the priority and
status of email type messages.
-
+
\sa addMessage(), removeMessage(), QMessageService::exportUpdates()
*/
bool QMessageManager::updateMessage(QMessage *m)
@@ -533,7 +535,7 @@ bool QMessageManager::updateMessage(QMessage *m)
/*!
\fn QMessageManager::message(const QMessageId& id) const
-
+
Returns the QMessage identified by \a id from the store.
*/
QMessage QMessageManager::message(const QMessageId& id) const
@@ -543,7 +545,7 @@ QMessage QMessageManager::message(const QMessageId& id) const
/*!
\fn QMessageManager::folder(const QMessageFolderId& id) const
-
+
Returns the QMessageFolder identified by \a id from the store.
*/
QMessageFolder QMessageManager::folder(const QMessageFolderId& id) const
@@ -553,7 +555,7 @@ QMessageFolder QMessageManager::folder(const QMessageFolderId& id) const
/*!
\fn QMessageManager::account(const QMessageAccountId& id) const
-
+
Returns the QMessageAccount identified by \a id from the store.
*/
QMessageAccount QMessageManager::account(const QMessageAccountId& id) const
@@ -565,12 +567,12 @@ QMessageAccount QMessageManager::account(const QMessageAccountId& id) const
\fn NotificationFilterId QMessageManager::registerNotificationFilter(const QMessageFilter &filter);
Registers a message filter that will be used to generate messageAdded(), messageRemoved()
- and messageUpdated() signals. Returns an identifier value that can be used to identify the
+ and messageUpdated() signals. Returns an identifier value that can be used to identify the
reason that a signal was emitted, and to unregister the filter at a later time.
- The \a filter is applied to the state of the data after the occurrence of the event for which
+ The \a filter is applied to the state of the data after the occurrence of the event for which
a notification may be emitted.
-
+
On Linux, Maemo 6 (Harmattan) and Meego.com it is only possible to filter messageRemoved()
signals with an empty QMessageFilter() that matches all messages.
@@ -584,7 +586,7 @@ QMessageManager::NotificationFilterId QMessageManager::registerNotificationFilte
/*!
\fn void QMessageManager::unregisterNotificationFilter(NotificationFilterId notificationFilterId);
- Removes the message filter associated with \a notificationFilterId from the set used
+ Removes the message filter associated with \a notificationFilterId from the set used
to generate message event signals.
\sa registerNotificationFilter(), messageAdded(), messageRemoved(), messageUpdated()
@@ -598,9 +600,9 @@ void QMessageManager::unregisterNotificationFilter(NotificationFilterId notifica
\fn void QMessageManager::messageAdded(const QMessageId &id, const QMessageManager::NotificationFilterIdSet &matchingFilterIds);
Signal that is emitted when the message identified by \a id is added to the message store.
- \a matchingFilterIds contains a set of values identifiying registered notification filters
+ \a matchingFilterIds contains a set of values identifiying registered notification filters
that matched the message.
-
+
\sa messageRemoved(), messageUpdated(), registerNotificationFilter()
*/
@@ -608,10 +610,10 @@ void QMessageManager::unregisterNotificationFilter(NotificationFilterId notifica
\fn void QMessageManager::messageRemoved(const QMessageId &id, const QMessageManager::NotificationFilterIdSet &matchingFilterIds);
Signal that is emitted when the message identified by \a id is removed from the message store.
- \a matchingFilterIds contains a set of values identifiying registered notification filters
+ \a matchingFilterIds contains a set of values identifiying registered notification filters
that matched the message.
- Since the filters apply to the state of the data after the message removal, the only
+ Since the filters apply to the state of the data after the message removal, the only
data item that may be subject to filtration is the identifier of the removed message.
\sa messageAdded(), messageUpdated(), registerNotificationFilter()
@@ -621,11 +623,11 @@ void QMessageManager::unregisterNotificationFilter(NotificationFilterId notifica
\fn void QMessageManager::messageUpdated(const QMessageId &id, const QMessageManager::NotificationFilterIdSet &matchingFilterIds);
Signal that is emitted when the message identified by \a id is updated in the message store.
- \a matchingFilterIds contains a set of values identifiying registered notification filters
+ \a matchingFilterIds contains a set of values identifiying registered notification filters
that matched the message.
- Since the filters apply to the state of the data after the message modification, updates
- to messages which matched a given filter prior to modification but not afterwards will not
+ Since the filters apply to the state of the data after the message modification, updates
+ to messages which matched a given filter prior to modification but not afterwards will not
result in the emission of the messageUpdated signal.
\sa messageAdded(), messageRemoved(), registerNotificationFilter()
diff --git a/src/messaging/qmessageservice.cpp b/src/messaging/qmessageservice.cpp
index aeff84d985..844308195b 100644
--- a/src/messaging/qmessageservice.cpp
+++ b/src/messaging/qmessageservice.cpp
@@ -49,43 +49,44 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageService
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- \brief The QMessageService class provides the interface for requesting
+ \brief The QMessageService class provides the interface for requesting
messaging service operations.
- QMessageService provides the mechanisms for messaging clients to request services,
- and to receive information in response. All requestable service operations present
+ QMessageService provides the mechanisms for messaging clients to request services,
+ and to receive information in response. All requestable service operations present
the same interface for communicating status, and progress information.
- All service request operations communicate changes in their operational state
+ All service request operations communicate changes in their operational state
by emitting the stateChanged() signal.
- Service request operations report progress information by emitting the
+ Service request operations report progress information by emitting the
progressChanged() signal.
-
- If a requested operation fails after being initiated then the error()
+
+ If a requested operation fails after being initiated then the error()
function will return a value indicating the failure mode encountered.
-
- A client may attempt to cancel a requested operation after it has been
+
+ A client may attempt to cancel a requested operation after it has been
initiated. The cancel() slot is provided for this purpose. Cancelation
is not guaranteed to succeed, and is not possible on all platforms.
- A QMessageService instance supports only a single request at a time. Attempting
- to initiate an operation on a QMessageService while another operation is already
- in progress will result in function initiating the latter request returning
- false. A client may, however, use multiple QMessageService instances to
+ A QMessageService instance supports only a single request at a time. Attempting
+ to initiate an operation on a QMessageService while another operation is already
+ in progress will result in function initiating the latter request returning
+ false. A client may, however, use multiple QMessageService instances to
concurrently initiate a queue of requests that will be serviced sequentially.
- Each QMessageService instance will report only the changes pertaining to
+ Each QMessageService instance will report only the changes pertaining to
the request that instance initiated.
- Except where noted QMessageServices may initiate network activity.
- Other functions in the mobility messaging API will not initiate network
- activity, with the exception of Windows mobile and desktop platforms which
+ Except where noted QMessageServices may initiate network activity.
+ Other functions in the mobility messaging API will not initiate network
+ activity, with the exception of Windows mobile and desktop platforms which
may initiate network activity during the evaluation of any function call.
*/
@@ -102,205 +103,205 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageService::QMessageService(QObject *parent)
-
+
Constructs a message service representation object.
-
+
The \a parent is passed to the QObject constructor.
*/
/*!
\fn QMessageService::~QMessageService()
-
+
Destroys the message service representation.
*/
/*!
\fn QMessageService::queryMessages(const QMessageFilter &filter, const QMessageSortOrder &sortOrder, uint limit, uint offset)
-
+
Emits the messagesFound() signal providing \l{QMessageId}s of messages in the messaging
- store. If \a filter is not empty only identifiers for messages matching the parameters
+ store. If \a filter is not empty only identifiers for messages matching the parameters
set by \a filter will be emitted, otherwise identifiers for all messages will be emitted.
- If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
+ If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
set by \a sortOrder.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
- Calling this function may result in the messagesFound() and progressChanged()
+
+ Calling this function may result in the messagesFound() and progressChanged()
signals being emitted multiple times. An emission of the progressChanged()
signal with a total of 0 indicates that the number of progress steps is
unknown.
-
- The performance of querying messages is currently significantly less than
+
+ The performance of querying messages is currently significantly less than
optimal for some querying criteria on some platforms.
-
+
Returns true if the operation can be initiated; otherwise returns false.
Note: This function should not initiate network activity, instead only message data
already stored on the device will be used during evaluation of the function.
-
+
\sa QMessage, QMessageFilter, QMessageSortOrder, messagesFound(), progressChanged(), countMessages()
*/
/*!
\fn QMessageService::queryMessages(const QMessageFilter &filter, const QString &body, QMessageDataComparator::MatchFlags matchFlags, const QMessageSortOrder &sortOrder, uint limit, uint offset)
-
+
Emits the messagesFound() signal providing \l{QMessageId}s of messages in the messaging
- store. If \a filter is not empty only identifiers for messages matching the parameters
- set by \a filter and with a body containing the string \a body will be emitted,
- otherwise identifiers for all messages with a body containing \a body using
+ store. If \a filter is not empty only identifiers for messages matching the parameters
+ set by \a filter and with a body containing the string \a body will be emitted,
+ otherwise identifiers for all messages with a body containing \a body using
matching flags \a matchFlags will be emitted.
- If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
+ If \a sortOrder is not empty, then the identifiers will be sorted by the parameters
set by \a sortOrder.
- If \a limit is not zero, then \a limit places an upper bound on the number of
+ If \a limit is not zero, then \a limit places an upper bound on the number of
ids in the list returned.
\a offset specifies how many ids to skip at the beginning of the list returned.
-
- Calling this function may result in the messagesFound() and progressChanged()
+
+ Calling this function may result in the messagesFound() and progressChanged()
signals being emitted multiple times. An emission of the progressChanged()
signal with a total of 0 indicates that the number of progress steps is
unknown.
- The performance of querying messages is currently significantly less than
+ The performance of querying messages is currently significantly less than
optimal for some querying criteria on some platforms.
-
+
Returns true if the operation can be initiated; otherwise returns false.
-
+
Note: This function should not initiate network activity, instead only message data
already stored on the device will be used during evaluation of the function.
-
+
\sa QMessage, QMessageFilter, QMessageSortOrder, messagesFound(), progressChanged(), countMessages()
*/
/*!
\fn QMessageService::countMessages(const QMessageFilter &filter)
-
- Emits via a messagesCounted() signal the number messages in the messaging
+
+ Emits via a messagesCounted() signal the number messages in the messaging
store matching \a filter.
-
- Calling this function may result in the progressChanged()
+
+ Calling this function may result in the progressChanged()
signal being emitted multiple times. An emission of the progressChanged()
signal with a total of 0 indicates that the number of progress steps is
unknown.
-
- The performance of counting messages is currently significantly less than optimal
+
+ The performance of counting messages is currently significantly less than optimal
for some filters on some platforms.
-
+
Returns true if the operation can be initiated; otherwise returns false.
-
+
Note: This function should not initiate network activity, instead only message data
already stored on the device will be used during evaluation of the function.
-
+
\sa QMessage, QMessageFilter, messagesCounted(), progressChanged(), queryMessages()
*/
/*!
\fn QMessageService::send(QMessage &message)
-
+
Transmit \a message using the account identified by the message's \l{QMessage::parentAccountId()}{parentAccountId} function.
- If the message does not have a valid parentAccountId, it will be set to the
+ If the message does not have a valid parentAccountId, it will be set to the
result of QMessageAccount::defaultAccount() for the message's \l{QMessage::Type}{type}.
-
+
The message will be stored in the standard Outbox folder for the account before
transmission, or moved to that folder if it is already stored in another folder.
If transmission is successful, the message will be moved to the standard Sent
folder for the account.
-
- Currently on the Maemo 5 (Fremantle), Symbian, and Windows Mobile platforms the service
- action object enters the FinishedState when the message is queued for sending
+
+ Currently on the Maemo 5 (Fremantle), Symbian, and Windows Mobile platforms the service
+ action object enters the FinishedState when the message is queued for sending
rather than actually sent.
On the MeeGo.com platform this function is not yet supported for SMS type messages.
Returns true if the operation can be initiated; otherwise returns false.
-
+
\sa QMessage, QMessageAccountId
*/
/*!
\fn QMessageService::compose(const QMessage &message)
-
+
Open a composer application using \a message as a prototype.
-
+
The default application for handling the type of \a message should be used.
-
+
Returns true if the operation can be initiated; otherwise returns false.
-
- On the QMF platform implementation of this function is left as a task for system
+
+ On the QMF platform implementation of this function is left as a task for system
integrators.
-
+
\sa QMessage::type()
*/
/*!
\fn QMessageService::retrieveHeader(const QMessageId& id)
-
- Retrieve meta data of the message identified by \a id.
- The meta data (including flags, from, to, subject, and date fields where applicable) of
+ Retrieve meta data of the message identified by \a id.
+
+ The meta data (including flags, from, to, subject, and date fields where applicable) of
the message identified by \a id should be retrieved. If only the message envelope
information is present, any other accessible header information should be retrieved.
-
+
If the message can not be found on the originating server it will be marked as removed.
Returns true if the operation can be initiated; otherwise returns false.
-
+
\sa QMessageId, QMessage::Removed
*/
/*!
\fn QMessageService::retrieveBody(const QMessageId& id)
-
- Retrieve the body of the message identified by \a id.
+
+ Retrieve the body of the message identified by \a id.
If the message can not be found on the originating server it will be marked as removed.
On the Symbian^3 platform this function is not yet supported.
Returns true if the operation can be initiated; otherwise returns false.
-
+
\sa QMessageId, QMessage::Removed
*/
/*!
\fn QMessageService::retrieve(const QMessageId &messageId, const QMessageContentContainerId& id)
-
- Retrieve the container identified by \a messageId and \a id, the contents of the container should also be
+
+ Retrieve the container identified by \a messageId and \a id, the contents of the container should also be
retrieved.
-
+
Returns true if the operation can be initiated; otherwise returns false.
-
+
\sa QMessageContentContainerId
*/
/*!
\fn QMessageService::show(const QMessageId& id)
-
+
Show the message identified by \a id.
The default application for handling the type of message that \a id identifies should be used.
Returns true if the operation can be initiated; otherwise returns false.
-
+
On the Maemo 5 (Fremantle) platform this function is not yet supported for SMS type messages.
-
- On the QMF platform implementation of this function is left as a task for system
+
+ On the QMF platform implementation of this function is left as a task for system
integrators.
-
+
\sa QMessageId, QMessage::type()
*/
-
+
/*!
\fn QMessageService::exportUpdates(const QMessageAccountId &id)
-
- Initiate synchronization with external servers of local changes that have been queued by message store operations,
+
+ Initiate synchronization with external servers of local changes that have been queued by message store operations,
for messages with parent account \a id.
- On Windows mobile and desktop platforms this function performs no operation, as when a connection is available,
+ On Windows mobile and desktop platforms this function performs no operation, as when a connection is available,
local changes are opportunistically synchronized with external servers.
Returns true if the operation can be initiated; otherwise returns false.
-
+
\sa QMessageManager::addMessage(), QMessageManager::updateMessage(), QMessageManager::removeMessage(), QMessageManager::removeMessages()
*/
@@ -311,12 +312,26 @@ QTM_BEGIN_NAMESPACE
The folder must be in the same account as the message. This will move the message on the external server, as well as locally.
+ On Windows mobile and desktop platforms this function is not supported. On Symbian prior to SR1.11 this function is not supported. On Symbian SR1.11 this function is only partially supported.
+
Returns true if the operation can be initiated; otherwise returns false.
*/
+
+/*!
+ \fn QMessageService::synchronize(const QMessageAccountId &id)
+
+ Initiate synchronization with external server identified by \a id
+
+ On Windows mobile and desktop platforms, and Maemo 5 this function performs no operation.
+
+ Returns true if the operation can be initiated; otherwise returns false.
+ \sa QMessageManager::addMessage(), QMessageManager::updateMessage(), QMessageManager::removeMessage(), QMessageManager::removeMessages()
+*/
+
/*!
\fn QMessageService::state() const
-
+
Returns the current state of the operation.
\sa stateChanged()
@@ -324,7 +339,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageService::cancel()
-
+
Attempts to cancel the last requested operation.
*/
@@ -371,7 +386,7 @@ QTM_BEGIN_NAMESPACE
/*!
\fn QMessageService::error() const
-
+
Returns a value indicating the last error condition encountered by the operation.
*/
diff --git a/src/messaging/qmessageservice_maemo.cpp b/src/messaging/qmessageservice_maemo.cpp
index 4519492c4f..f17d871a34 100644
--- a/src/messaging/qmessageservice_maemo.cpp
+++ b/src/messaging/qmessageservice_maemo.cpp
@@ -649,6 +649,21 @@ bool QMessageService::exportUpdates(const QMessageAccountId &id)
return retVal;
}
+bool QMessageService::synchronize(const QMessageAccountId& id)
+{
+ Q_UNUSED(id);
+
+ if(d_ptr->_active) {
+ qWarning() << "Service is currently busy";
+ return false;
+ }
+
+ d_ptr->_error = QMessageManager::NotYetImplemented;
+ d_ptr->setFinished(false);
+
+ return false;
+}
+
QMessageService::State QMessageService::state() const
{
return d_ptr->_state;
diff --git a/src/messaging/qmessageservice_win.cpp b/src/messaging/qmessageservice_win.cpp
index 08ffd18c32..ac8bd159f0 100644
--- a/src/messaging/qmessageservice_win.cpp
+++ b/src/messaging/qmessageservice_win.cpp
@@ -1008,6 +1008,21 @@ bool QMessageService::exportUpdates(const QMessageAccountId &id)
return false;
}
+bool QMessageService::synchronize(const QMessageAccountId& id)
+{
+ Q_UNUSED(id);
+
+ if(d_ptr->_active) {
+ qWarning() << "Service is currently busy";
+ return false;
+ }
+
+ d_ptr->_error = QMessageManager::NotYetImplemented;
+ d_ptr->setFinished(false);
+
+ return false;
+}
+
QMessageService::State QMessageService::state() const
{
return d_ptr->_state;
diff --git a/src/messaging/qmessagesortorder.cpp b/src/messaging/qmessagesortorder.cpp
index 23cc487d15..d42275ba76 100644
--- a/src/messaging/qmessagesortorder.cpp
+++ b/src/messaging/qmessagesortorder.cpp
@@ -47,16 +47,17 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageSortOrder
- \brief The QMessageSortOrder class defines the parameters used for sorting a subset of
+ \brief The QMessageSortOrder class defines the parameters used for sorting a subset of
queried messages from the messaging store.
-
+
\inmodule QtMessaging
-
+
\ingroup messaging
+ \since 1.0
- A QMessageSortOrder is composed of a message property to sort and a sort order.
- The QMessageSortOrder class is used in conjunction with the QMessageManager::queryMessages()
- and QMessageService::queryMessages() functions to sort message results according to
+ A QMessageSortOrder is composed of a message property to sort and a sort order.
+ The QMessageSortOrder class is used in conjunction with the QMessageManager::queryMessages()
+ and QMessageService::queryMessages() functions to sort message results according to
the criteria defined by the sort order.
For example:
@@ -65,35 +66,35 @@ QTM_BEGIN_NAMESPACE
QMessageSortOrder sortOrder(QMessageSortOrder::byTimeStamp(Qt::DescendingOrder));
QMessageIdList results = QMessageManager().queryMessages(QMessageFilter(), sortOrder);
\endcode
-
+
\sa QMessageManager, QMessageFilter
*/
/*!
\fn QMessageSortOrder::QMessageSortOrder()
-
+
Create a QMessageSortOrder with specifying matching parameters.
- A default-constructed sort order (one for which isEmpty() returns true) sorts no messages.
+ A default-constructed sort order (one for which isEmpty() returns true) sorts no messages.
- The result of combining an empty sort order with a non-empty sort order is the same as the original
+ The result of combining an empty sort order with a non-empty sort order is the same as the original
non-empty sort order.
The result of combining two empty sort orders is an empty sort order.
-
- Windows mobile and desktop platforms do not support sorting bySender() and byRecipients(),
+
+ Windows mobile and desktop platforms do not support sorting bySender() and byRecipients(),
additionally the Windows mobile platform does not support sorting byTimeStamp() and bySize().
*/
/*!
\fn QMessageSortOrder::QMessageSortOrder(const QMessageSortOrder &other)
-
+
Constructs a copy of \a other.
*/
/*!
\fn QMessageSortOrder::~QMessageSortOrder()
-
+
Destroys the sort order.
*/
@@ -101,40 +102,40 @@ QTM_BEGIN_NAMESPACE
\internal
\fn QMessageSortOrder::operator=(const QMessageSortOrder& other)
*/
-
+
/*!
\fn QMessageSortOrder::isEmpty() const
-
+
Returns true if the sort order remains empty after default construction; otherwise returns false.
*/
/*!
\fn QMessageSortOrder::isSupported() const
-
+
Returns true if the sort order is supported on the current platform; otherwise returns false.
*/
/*!
\fn QMessageSortOrder::operator+(const QMessageSortOrder& other) const
-
- Returns a sort order that which is the result of concatenating the vaue of this sort order and the value
+
+ Returns a sort order that which is the result of concatenating the vaue of this sort order and the value
of sort order \a other.
This function determines sorting precedence.
-
- On the Windows Mobile platform bySubject() and byReceptionTimeStamp() sort orders can not
+
+ On the Windows Mobile platform bySubject() and byReceptionTimeStamp() sort orders can not
be combined with each other.
*/
/*!
\fn QMessageSortOrder::operator+=(const QMessageSortOrder& other)
-
+
Appends the value of the sort order \a other with the value of this sort order and assigns the result
to this sort order.
This function determines sorting precedence.
- On the Windows Mobile platform bySubject() and byReceptionTimeStamp() sort orders can not
+ On the Windows Mobile platform bySubject() and byReceptionTimeStamp() sort orders can not
be combined with each other.
*/
@@ -153,7 +154,7 @@ bool QMessageSortOrder::operator!=(const QMessageSortOrder& other) const
/*!
\fn QMessageSortOrder::byType(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by their message type, according to \a order.
\sa QMessage::type()
@@ -161,9 +162,9 @@ bool QMessageSortOrder::operator!=(const QMessageSortOrder& other) const
/*!
\fn QMessageSortOrder::bySender(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by the address from which they were sent, according to \a order.
-
+
Not supported on the Windows mobile and desktop platforms.
\sa QMessage::from()
@@ -171,17 +172,17 @@ bool QMessageSortOrder::operator!=(const QMessageSortOrder& other) const
/*!
\fn QMessageSortOrder::byRecipients(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by the addresses to which they were sent, according to \a order.
Not supported on the Windows mobile and desktop platforms.
-
+
\sa QMessage::to()
*/
/*!
\fn QMessageSortOrder::bySubject(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by their subject, according to \a order.
\sa QMessage::subject()
@@ -189,17 +190,17 @@ bool QMessageSortOrder::operator!=(const QMessageSortOrder& other) const
/*!
\fn QMessageSortOrder::byTimeStamp(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by their origination timestamp, according to \a order.
Not supported on the Windows mobile platform.
-
+
\sa QMessage::date(), byReceptionTimeStamp()
*/
/*!
\fn QMessageSortOrder::byReceptionTimeStamp(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by their reception timestamp, according to \a order.
\sa QMessage::receivedDate()
@@ -207,7 +208,7 @@ bool QMessageSortOrder::operator!=(const QMessageSortOrder& other) const
/*!
\fn QMessageSortOrder::byStatus(QMessage::Status flag, Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by their status value \a flag, according to \a order.
\sa QMessage::status()
@@ -215,7 +216,7 @@ bool QMessageSortOrder::operator!=(const QMessageSortOrder& other) const
/*!
\fn QMessageSortOrder::byPriority(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by their priority, according to \a order.
\sa QMessage::priority()
@@ -223,11 +224,11 @@ bool QMessageSortOrder::operator!=(const QMessageSortOrder& other) const
/*!
\fn QMessageSortOrder::bySize(Qt::SortOrder order)
-
+
Returns a sort order that sorts messages by their size, according to \a order.
Not supported on the Windows mobile platform.
-
+
\sa QMessage::size()
*/
diff --git a/src/messaging/qmessagestore.cpp b/src/messaging/qmessagestore.cpp
index fabe7a95dd..ed41342104 100644
--- a/src/messaging/qmessagestore.cpp
+++ b/src/messaging/qmessagestore.cpp
@@ -46,6 +46,7 @@ QTM_BEGIN_NAMESPACE
/*!
\class QMessageStore
+ \since 1.0
\internal
*/
diff --git a/src/messaging/qmessagestore_maemo.cpp b/src/messaging/qmessagestore_maemo.cpp
index ae807d7000..c46c1acf9c 100644
--- a/src/messaging/qmessagestore_maemo.cpp
+++ b/src/messaging/qmessagestore_maemo.cpp
@@ -290,9 +290,9 @@ bool QMessageStore::removeMessages(const QMessageFilter& filter, QMessageManager
return true;
}
-bool QMessageStore::removeAccount(const QMessageAccountId &id)
+bool QMessageStore::removeAccount(const QMessageAccountId &)
{
-#warning TODO: implement
+ // Not implemented
return false;
}
diff --git a/src/messaging/qmessagestore_win.cpp b/src/messaging/qmessagestore_win.cpp
index 12618efd6e..f4393a82ce 100644
--- a/src/messaging/qmessagestore_win.cpp
+++ b/src/messaging/qmessagestore_win.cpp
@@ -363,9 +363,9 @@ bool QMessageStore::removeMessages(const QMessageFilter& filter, QMessageManager
return result;
}
-bool QMessageStore::removeAccount(const QMessageAccountId &id)
+bool QMessageStore::removeAccount(const QMessageAccountId &)
{
- // TODO: implement
+ // Not implemented
return false;
}
diff --git a/src/messaging/telepathyengine_maemo6.cpp b/src/messaging/telepathyengine_maemo6.cpp
index 43476ef654..ab8a6bc0b1 100644
--- a/src/messaging/telepathyengine_maemo6.cpp
+++ b/src/messaging/telepathyengine_maemo6.cpp
@@ -326,7 +326,8 @@ QMessageManager::Error TelepathyEngine::error() const
return m_error;
}
-#define TELEPATHY_ENGINE_STORE_MESSAGE
+// SMS is stored by the Harmattan. No need to duplicate it.
+//#define TELEPATHY_ENGINE_STORE_MESSAGE
SendRequest::SendRequest(const QMessage &message, QMessageService *service)
: _service(service)
diff --git a/src/messaging/win32wce/qmailaddress.cpp b/src/messaging/win32wce/qmailaddress.cpp
index b4ae930f9a..709f6be1ac 100644
--- a/src/messaging/win32wce/qmailaddress.cpp
+++ b/src/messaging/win32wce/qmailaddress.cpp
@@ -176,10 +176,10 @@ void AddressSeparator::process(QChar character, bool quoted, bool escaped, int c
}
// RFC 2822 requires comma as the separator, but we'll allow the semi-colon as well.
- if ( ( character == ',' || character == ';' || character.isSpace()) &&
+ if ( ( character == ',' || character == ';' || character.isSpace()) &&
!_inGroup && !quoted && !escaped && commentDepth == 0 ) {
if (character.isSpace()) {
- // We'll also attempt to separate on whitespace, but we need to append it to
+ // We'll also attempt to separate on whitespace, but we need to append it to
// the token to preserve the input data
accept(character);
_tokenCompleted = true;
@@ -281,7 +281,7 @@ void AddressListGenerator::complete(TokenType type, bool hardSeparator)
QRegExp suffixPattern("\\s*/TYPE=.*");
if (suffixPattern.exactMatch(_partial)) {
type = Suffix;
- }
+ }
else {
// See if the token is a bare email address; otherwise it must be a name element
QRegExp emailPattern(QMailAddress::emailAddressPattern());
@@ -350,7 +350,7 @@ void AddressListGenerator::processPending()
if ((_pending.value(i - 1).first == Name) && ((type == Name) || (type == Group))) {
_pending.replace(i - 1, qMakePair(type, _pending.value(i - 1).second + _pending.value(i).second));
_pending.removeAt(i);
- }
+ }
else {
++i;
}
@@ -514,7 +514,7 @@ void parseMailbox(QString& input, QString& name, QString& address, QString& suff
{
name = address = input.trimmed();
}
- else
+ else
{
if (delimiters.first == -1)
{
@@ -531,9 +531,9 @@ void parseMailbox(QString& input, QString& name, QString& address, QString& suff
address = input.mid(delimiters.first + 1, (delimiters.second - delimiters.first - 1)).trimmed();
}
- if ( name.isEmpty() )
+ if ( name.isEmpty() )
name = address;
- }
+ }
}
}
@@ -587,7 +587,7 @@ QMailAddressPrivate::QMailAddressPrivate()
{
}
-QMailAddressPrivate::QMailAddressPrivate(const QString& addressText)
+QMailAddressPrivate::QMailAddressPrivate(const QString& addressText)
: _group(false),
_searchCompleted(false)
{
@@ -614,7 +614,7 @@ QMailAddressPrivate::QMailAddressPrivate(const QString& addressText)
}
}
-QMailAddressPrivate::QMailAddressPrivate(const QString& name, const QString& address)
+QMailAddressPrivate::QMailAddressPrivate(const QString& name, const QString& address)
: _group(false),
_searchCompleted(false)
{
@@ -648,7 +648,7 @@ void QMailAddressPrivate::setComponents(const QString& nameText, const QString&
_address.remove( charIndex, 1 );
}
-QMailAddressPrivate::QMailAddressPrivate(const QMailAddressPrivate& other)
+QMailAddressPrivate::QMailAddressPrivate(const QMailAddressPrivate& other)
: QSharedData(other),
_searchCompleted(false)
{
@@ -783,13 +783,13 @@ QString QMailAddressPrivate::toString(bool forceDelimited) const
return result;
}
-template <typename Stream>
+template <typename Stream>
void QMailAddressPrivate::serialize(Stream &stream) const
{
stream << _name << _address << _suffix << _group;
}
-template <typename Stream>
+template <typename Stream>
void QMailAddressPrivate::deserialize(Stream &stream)
{
_searchCompleted = false;
@@ -802,15 +802,16 @@ void QMailAddressPrivate::deserialize(Stream &stream)
\brief The QMailAddress class provides an interface for manipulating message address strings.
\ingroup messaginglibrary
+ \since 1.1
QMailAddress provides functions for splitting the address strings of messages into name and
address components, and for combining the individual components into correctly formatted
- address strings. QMailAddress can be used to manipulate the address elements exposed by the
+ address strings. QMailAddress can be used to manipulate the address elements exposed by the
QMailMessage class.
- Address strings are expected to use the format "name_part '<'address_part'>'", where
- \i name_part describes a message sender or recipient and \i address_part defines the address
- at which they can be contacted. The address component is not validated, so it can contain an
+ Address strings are expected to use the format "name_part '<'address_part'>'", where
+ \i name_part describes a message sender or recipient and \i address_part defines the address
+ at which they can be contacted. The address component is not validated, so it can contain an
email address, phone number, or any other type of textual address representation.
\sa QMailMessage
@@ -827,7 +828,7 @@ QMailAddress::QMailAddress()
/*!
Constructs a QMailAddress object, extracting the name and address components from \a addressText.
- If \a addressText cannot be separated into name and address components, both name() and address()
+ If \a addressText cannot be separated into name and address components, both name() and address()
will return the entirety of \a addressText.
\sa name(), address()
@@ -910,7 +911,7 @@ bool QMailAddress::isGroup() const
}
/*!
- Returns a list containing the individual addresses that comprise the address group.
+ Returns a list containing the individual addresses that comprise the address group.
If the address is not a group address, an empty list is returned.
\sa isGroup()
@@ -972,7 +973,7 @@ QStringList QMailAddress::toStringList(const QList<QMailAddress>& list, bool for
}
/*!
- Returns a list containing a QMailAddress object constructed from each
+ Returns a list containing a QMailAddress object constructed from each
comma-separated address in \a list.
*/
QList<QMailAddress> QMailAddress::fromStringList(const QString& list)
@@ -981,7 +982,7 @@ QList<QMailAddress> QMailAddress::fromStringList(const QString& list)
}
/*!
- Returns a list containing a QMailAddress object constructed from each
+ Returns a list containing a QMailAddress object constructed from each
address string in \a list.
*/
QList<QMailAddress> QMailAddress::fromStringList(const QStringList& list)
@@ -1018,7 +1019,7 @@ QString QMailAddress::phoneNumberPattern()
static const QString pattern("\"?" // zero-or-one:'"'
"(" // start capture
"(?:\\+ ?)?" // zero-or-one:('+', zero-or-one:space)
- "(?:\\(\\d+\\)[ -]?)?" // zero-or-one:'(', one-or-more:digits, ')', zero-or-one:separator
+ "(?:\\(\\d+\\)[ -]?)?" // zero-or-one:'(', one-or-more:digits, ')', zero-or-one:separator
"(?:\\d{1,14})" // one:(one-to-fourteen):digits
"(?:[ -]?[\\d#\\*]{1,10}){0,4}" // zero-to-four:(zero-or-one:separator), one-to-ten:(digits | '#' | '*')
"(?:" // zero-or-one:
@@ -1036,12 +1037,12 @@ QString QMailAddress::phoneNumberPattern()
/*! \internal */
QString QMailAddress::emailAddressPattern()
{
- // Taken from: http://www.regular-expressions.info/email.html, but
+ // Taken from: http://www.regular-expressions.info/email.html, but
// modified to accept uppercase characters as well as lower-case
// Also - RFC 1034 seems to prohibit domain name elements beginning
// with digits, but they exist in practise...
static const QString pattern("[A-Za-z\\d!#$%&'*+/=?^_`{|}~-]+" // one-or-more: legal chars (some punctuation permissible)
- "(?:" // zero-or-more:
+ "(?:" // zero-or-more:
"\\." // '.',
"[A-Za-z\\d!#$%&'*+/=?^_`{|}~-]+" // one-or-more: legal chars
")*" // end of optional group
@@ -1049,8 +1050,8 @@ QString QMailAddress::emailAddressPattern()
"(?:" // either:
"localhost" // 'localhost'
"|" // or:
- "(?:" // one-or-more:
- "[A-Za-z\\d]" // one: legal char,
+ "(?:" // one-or-more:
+ "[A-Za-z\\d]" // one: legal char,
"(?:" // zero-or-one:
"[A-Za-z\\d-]*[A-Za-z\\d]" // (zero-or-more: (legal char or '-'), one: legal char)
")?" // end of optional group
@@ -1065,21 +1066,21 @@ QString QMailAddress::emailAddressPattern()
return pattern;
}
-/*!
+/*!
\fn QMailAddress::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailAddress::serialize(Stream &stream) const
{
d->serialize(stream);
}
-/*!
+/*!
\fn QMailAddress::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailAddress::deserialize(Stream &stream)
{
d->deserialize(stream);
diff --git a/src/messaging/win32wce/qmailcodec.cpp b/src/messaging/win32wce/qmailcodec.cpp
index 4d1df48d61..adb39b491d 100644
--- a/src/messaging/win32wce/qmailcodec.cpp
+++ b/src/messaging/win32wce/qmailcodec.cpp
@@ -59,6 +59,7 @@ int QTOPIAMAIL_EXPORT QuotedPrintableMaxLineLength = 74;
\brief The QMailCodec class provides mechanisms for encoding and decoding between 7-bit ASCII strings
and arbitrary octet sequences.
+ \since 1.1
\ingroup messaginglibrary
@@ -71,15 +72,15 @@ int QTOPIAMAIL_EXPORT QuotedPrintableMaxLineLength = 74;
must be used that provides a policy for mapping 8-bit data to and from 7-bit ASCII characters.
This policy is implemented by overriding the encodeChunk() and decodeChunk() virtual functions.
- Using the QMailCodec interface, data can be encoded or decoded from an input QDataStream to an
+ Using the QMailCodec interface, data can be encoded or decoded from an input QDataStream to an
output QDataStream, or for convenience, from an input QByteArray to an output QByteArray.
If the data to be encoded is in unicode form, then the QMailCodec interface can be used to
convert the data to ASCII via an intermediate QTextCodec, which converts the incoming text
to a sequence of octets. The QTextCodec used is specified by the name of the encoding
- produced, or that decoded when decoding an ASCII input sequence. QMailCodec provides functions
+ produced, or that decoded when decoding an ASCII input sequence. QMailCodec provides functions
to encode from a QTextStream to a QDataStream, and to decode from a QDataStream to a QTextStream.
- For convenience, it is also possible to encode a QString to a QByteArray, and to decode a
+ For convenience, it is also possible to encode a QString to a QByteArray, and to decode a
QByteArray to a QString.
\sa QDataStream, QTextStream, QTextCodec
@@ -89,7 +90,7 @@ int QTOPIAMAIL_EXPORT QuotedPrintableMaxLineLength = 74;
\fn void QMailCodec::encodeChunk(QDataStream& out, const unsigned char* input, int length, bool finalChunk)
Overridden by derived classes to perform an encoding operation. The implementation function
- must encode \a length 8-bit octets at the location \a input, writing the resulting ASCII characters
+ must encode \a length 8-bit octets at the location \a input, writing the resulting ASCII characters
to the stream \a out. If \a finalChunk is false, further calls will be made to encodeChunk()
with continued input data. Otherwise, the encoding operation is complete.
*/
@@ -138,7 +139,7 @@ static QTextCodec* codecForName(const QByteArray& charset, bool translateAscii =
{
int index;
- if (translateAscii && encoding.contains("ascii"))
+ if (translateAscii && encoding.contains("ascii"))
{
// We'll assume the text is plain ASCII, to be extracted to Latin-1
encoding = "ISO-8859-1";
@@ -163,8 +164,8 @@ static QTextCodec* codecForName(const QByteArray& charset, bool translateAscii =
}
/*!
- Writes the data read from the stream \a in to the stream \a out, as a sequence
- of 7-bit ASCII characters. The unicode characters read from \a in are first
+ Writes the data read from the stream \a in to the stream \a out, as a sequence
+ of 7-bit ASCII characters. The unicode characters read from \a in are first
encoded to the text encoding \a charset.
\sa QTextCodec::codecForName()
@@ -178,8 +179,8 @@ void QMailCodec::encode(QDataStream& out, QTextStream& in, const QString& charse
QString chunk = in.read(MaxCharacters);
QByteArray charsetEncoded = codec->fromUnicode(chunk);
- encodeChunk(out,
- reinterpret_cast<const unsigned char*>(charsetEncoded.constData()),
+ encodeChunk(out,
+ reinterpret_cast<const unsigned char*>(charsetEncoded.constData()),
charsetEncoded.length(),
in.atEnd());
}
@@ -187,8 +188,8 @@ void QMailCodec::encode(QDataStream& out, QTextStream& in, const QString& charse
}
/*!
- Writes the data read from the stream \a in to the stream \a out, converting from
- a sequence of 7-bit ASCII characters. The characters read from \a in are
+ Writes the data read from the stream \a in to the stream \a out, converting from
+ a sequence of 7-bit ASCII characters. The characters read from \a in are
decoded from the text encoding \a charset to unicode.
\sa QTextCodec::codecForName()
@@ -200,7 +201,7 @@ void QMailCodec::decode(QTextStream& out, QDataStream& in, const QString& charse
QByteArray decoded;
{
QDataStream decodedStream(&decoded, QIODevice::WriteOnly);
-
+
char* buffer = new char[MaxCharacters];
while (!in.atEnd())
{
@@ -223,7 +224,7 @@ void QMailCodec::decode(QTextStream& out, QDataStream& in, const QString& charse
}
/*!
- Writes the data read from the stream \a in to the stream \a out, as a sequence
+ Writes the data read from the stream \a in to the stream \a out, as a sequence
of 7-bit ASCII characters.
*/
void QMailCodec::encode(QDataStream& out, QDataStream& in)
@@ -239,7 +240,7 @@ void QMailCodec::encode(QDataStream& out, QDataStream& in)
}
/*!
- Writes the data read from the stream \a in to the stream \a out, converting from
+ Writes the data read from the stream \a in to the stream \a out, converting from
a sequence of 7-bit ASCII characters.
*/
void QMailCodec::decode(QDataStream& out, QDataStream& in)
@@ -281,7 +282,7 @@ void QMailCodec::copy(QTextStream& out, QTextStream& in)
}
/*!
- Returns a QByteArray containing the string \a input, encoded to the text encoding \a charset
+ Returns a QByteArray containing the string \a input, encoded to the text encoding \a charset
and then to a sequence of 7-bit ASCII characters.
\sa QTextCodec::codecForName()
@@ -303,8 +304,8 @@ QByteArray QMailCodec::encode(const QString& input, const QString& charset)
}
/*!
- Returns a QString containing characters decoded from the text encoding \a charset, which
- are decoded from the sequence of 7-bit ASCII characters read from \a input.
+ Returns a QString containing characters decoded from the text encoding \a charset, which
+ are decoded from the sequence of 7-bit ASCII characters read from \a input.
\sa QTextCodec::codecForName()
*/
@@ -321,7 +322,7 @@ QString QMailCodec::decode(const QByteArray& input, const QString& charset)
}
/*!
- Returns a QByteArray containing the octets from \a input, encoded to a sequence of
+ Returns a QByteArray containing the octets from \a input, encoded to a sequence of
7-bit ASCII characters.
*/
QByteArray QMailCodec::encode(const QByteArray& input)
@@ -402,15 +403,15 @@ static inline unsigned char base64Index(const char ascii)
\ingroup messaginglibrary
- The Base64 character mapping scheme maps arbitrary 8-bit values into a range of 64 printable
- characters from the 7-bit ASCII set. The mapping scheme used is defined in
- \l{http://www.ietf.org/rfc/rfc2045.txt} {RFC 2045} (Multipurpose Internet Mail Extensions Part One).
+ The Base64 character mapping scheme maps arbitrary 8-bit values into a range of 64 printable
+ characters from the 7-bit ASCII set. The mapping scheme used is defined in
+ \l{http://www.ietf.org/rfc/rfc2045.txt} {RFC 2045} (Multipurpose Internet Mail Extensions Part One).
This encoding is also defined as the '"B" encoding' for 'encoded words' in
- \l{http://www.ietf.org/rfc/rfc2047.txt} {RFC 2047} (Multipurpose Internet Mail Extensions Part Three).
+ \l{http://www.ietf.org/rfc/rfc2047.txt} {RFC 2047} (Multipurpose Internet Mail Extensions Part Three).
- The Base64 scheme encodes every incoming octet regardless of its original value, and thus
+ The Base64 scheme encodes every incoming octet regardless of its original value, and thus
produces the same ratio of output length to input length for any input data sequence. Since
- Base64 encodes four output characters for every three input octets, it produces a 33%
+ Base64 encodes four output characters for every three input octets, it produces a 33%
increase in stream size when encoding.
An instance of QMailBase64Codec contains state information about the encoding or decoding
@@ -430,7 +431,7 @@ static inline unsigned char base64Index(const char ascii)
/*!
\enum QMailBase64Codec::ContentType
- This enumerated type is used to specify whether content is textual data or binary data.
+ This enumerated type is used to specify whether content is textual data or binary data.
\value Text The data is textual data; newline sequences within the data will be converted during coding.
\value Binary The data is not textual, and does not contain newline sequences.
@@ -443,7 +444,7 @@ static inline unsigned char base64Index(const char ascii)
between the local representation (for example, 0x0A on Unix) and the transmission standard
representation (0x0D 0x0A). Otherwise, the data will be coded without modification.
- The maximum number of encoded characters per output line can be specified as \a maximumLineLength.
+ The maximum number of encoded characters per output line can be specified as \a maximumLineLength.
If not specified, or specified to a non-positive value, a default value will be used.
*/
QMailBase64Codec::QMailBase64Codec(ContentType content, int maximumLineLength)
@@ -493,7 +494,7 @@ void QMailBase64Codec::encodeChunk(QDataStream& out, const unsigned char* it, in
// We can accept one more input character than accounted for
lineEnd += 1;
}
- else
+ else
{
// We must replace this character with ASCII CRLF
*_encodeBufferOut++ = CarriageReturn;
@@ -501,11 +502,11 @@ void QMailBase64Codec::encodeChunk(QDataStream& out, const unsigned char* it, in
{
*_encodeBufferOut++ = LineFeed;
}
- else
+ else
{
trailingLF = true;
}
-
+
// We can accept one fewer input character than expected, now
lineEnd -= 1;
}
@@ -641,7 +642,7 @@ static const unsigned char* QuotedPrintableValues = reinterpret_cast<const unsig
static bool requiresEscape(unsigned char input, QMailQuotedPrintableCodec::ConformanceType conformance, int charsRemaining)
{
// For both, we need to escape '=' and anything unprintable
- bool escape = ((input > MaxPrintableRange) ||
+ bool escape = ((input > MaxPrintableRange) ||
((input < MinPrintableRange) && (input != HorizontalTab) && (input != FormFeed)) ||
(input == Equals));
@@ -651,7 +652,7 @@ static bool requiresEscape(unsigned char input, QMailQuotedPrintableCodec::Confo
if (!escape && (conformance == QMailQuotedPrintableCodec::Rfc2047))
{
// We can also ignore space, since it will become an underscore
- if ((input != ExclamationMark) && (input != Asterisk) && (input != Plus) &&
+ if ((input != ExclamationMark) && (input != Asterisk) && (input != Plus) &&
(input != Minus) && (input != Slash) && (input != Underscore) && (input != Space))
{
escape = !isalnum(input);
@@ -701,23 +702,23 @@ static inline unsigned char decodeCharacter(unsigned char value)
/*!
\class QMailQuotedPrintableCodec
- \brief The QMailQuotedPrintableCodec class encodes or decodes between 8-bit data and 7-bit ASCII,
+ \brief The QMailQuotedPrintableCodec class encodes or decodes between 8-bit data and 7-bit ASCII,
using the 'quoted printable' character mapping scheme.
\ingroup messaginglibrary
The 'quoted printable' character mapping scheme maps arbitrary 8-bit values into 7-bit ASCII
characters, by replacing values that cannot be directly represented with an escape sequence.
- The mapping scheme used is defined in
- \l{http://www.ietf.org/rfc/rfc2045.txt} {RFC 2045} (Multipurpose Internet Mail Extensions Part One).
+ The mapping scheme used is defined in
+ \l{http://www.ietf.org/rfc/rfc2045.txt} {RFC 2045} (Multipurpose Internet Mail Extensions Part One).
A minor variation on the scheme is defined as the '"Q" encoding' for 'encoded words' in
- \l{http://www.ietf.org/rfc/rfc2047.txt} {RFC 2047} (Multipurpose Internet Mail Extensions Part Three).
+ \l{http://www.ietf.org/rfc/rfc2047.txt} {RFC 2047} (Multipurpose Internet Mail Extensions Part Three).
The 'quoted printable' scheme encodes only those incoming octet values that cannot be directly
- represented in ASCII, by replacing the input octet with a three-character sequence that encodes
- the numeric value of the original octet. Therefore, the ratio of input length to output length
- for any input data sequence depends on the percentage of the input that corresponds to ASCII
- values, with ASCII-like encodings producing only small increases. With an input data encoding
+ represented in ASCII, by replacing the input octet with a three-character sequence that encodes
+ the numeric value of the original octet. Therefore, the ratio of input length to output length
+ for any input data sequence depends on the percentage of the input that corresponds to ASCII
+ values, with ASCII-like encodings producing only small increases. With an input data encoding
such as Latin-1 (ISO-8859-1), the output maintains a reasonable degree of human-readability.
An instance of QMailQuotedPrintableCodec contains state information about the encoding or decoding
@@ -726,7 +727,7 @@ static inline unsigned char decodeCharacter(unsigned char value)
\code
QByteArray asciiData = acquireInput();
- // We know the data is text in Latin-1 encoding, so decode the data from
+ // We know the data is text in Latin-1 encoding, so decode the data from
// quoted printable ASCII encoding, and then decode from Latin-1 to unicode
QMailQuotedPrintableCodec decoder(QMailQuotedPrintableCodec::Text, QMailQuotedPrintableCodec::Rfc2045);
QString textData = decoder.decode(asciiData, "ISO-8859-1");
@@ -738,7 +739,7 @@ static inline unsigned char decodeCharacter(unsigned char value)
/*!
\enum QMailQuotedPrintableCodec::ContentType
- This enumerated type is used to specify whether content is textual data or binary data.
+ This enumerated type is used to specify whether content is textual data or binary data.
\value Text The data is textual data; newline sequences within the data will be converted during coding.
\value Binary The data is not textual, and does not contain newline sequences.
@@ -762,11 +763,11 @@ static inline unsigned char decodeCharacter(unsigned char value)
representation (0x0D 0x0A). Otherwise, the data will be coded without modification.
If \a conformance is QMailQuotedPrintableCodec::Rfc2047, then coding will use the mapping
- scheme of the
- \l{http://www.ietf.org/rfc/rfc2047.txt} {RFC 2047} '"Q" encoding'; otherwise the scheme defined in
+ scheme of the
+ \l{http://www.ietf.org/rfc/rfc2047.txt} {RFC 2047} '"Q" encoding'; otherwise the scheme defined in
\l{http://www.ietf.org/rfc/rfc2045.txt} {RFC 2045} will be used.
- The maximum number of encoded output characters per line can be specified as \a maximumLineLength.
+ The maximum number of encoded output characters per line can be specified as \a maximumLineLength.
If not specified, or specified to a non-positive value, a default value will be used.
*/
QMailQuotedPrintableCodec::QMailQuotedPrintableCodec(ContentType content, ConformanceType conformance, int maximumLineLength)
@@ -774,7 +775,7 @@ QMailQuotedPrintableCodec::QMailQuotedPrintableCodec(ContentType content, Confor
_conformance(conformance),
_maximumLineLength(maximumLineLength)
{
- // We're allowed up to 76 chars per output line, but the RFC isn't really clear on
+ // We're allowed up to 76 chars per output line, but the RFC isn't really clear on
// whether this includes the '=' and '\n' of a soft line break, so we'll assume they're counted
if (_maximumLineLength <= 0)
_maximumLineLength = QuotedPrintableMaxLineLength;
@@ -808,7 +809,7 @@ void QMailQuotedPrintableCodec::encodeChunk(QDataStream& out, const unsigned cha
{
// We have already encoded this character-sequence
}
- else
+ else
{
// We must replace this character with ascii CRLF
out << CarriageReturn << LineFeed;
@@ -825,7 +826,7 @@ void QMailQuotedPrintableCodec::encodeChunk(QDataStream& out, const unsigned cha
// If we can't fit this character on the line, insert a line break
if (charsRequired > _encodeLineCharsRemaining)
{
- lineBreak(out, &_encodeLineCharsRemaining, _maximumLineLength);
+ lineBreak(out, &_encodeLineCharsRemaining, _maximumLineLength);
// We may no longer need the encoding after the line break
if (input == Space || (input == HorizontalTab && _conformance != Rfc2047))
@@ -845,7 +846,7 @@ void QMailQuotedPrintableCodec::encodeChunk(QDataStream& out, const unsigned cha
_encodeLineCharsRemaining -= charsRequired;
if ((_encodeLineCharsRemaining == 0) && !(finalChunk && (it == end)))
- lineBreak(out, &_encodeLineCharsRemaining, _maximumLineLength);
+ lineBreak(out, &_encodeLineCharsRemaining, _maximumLineLength);
_encodeLastChar = input;
}
@@ -924,7 +925,7 @@ void QMailQuotedPrintableCodec::decodeChunk(QDataStream& out, const char* it, in
}
}
}
- else
+ else
{
if ((input == CarriageReturn || input == LineFeed) && (_content == Text))
{
@@ -981,7 +982,7 @@ static void writeStream(QDataStream& out, const char* it, int length)
The pass-through codec is primarily useful when communicating with SMTP servers supporting the
\l{http://www.ietf.org/rfc/rfc1652.txt} {RFC 1652} (8BITMIME) extension, which permits the exchange
- of data without coding via 7-bit ASCII.
+ of data without coding via 7-bit ASCII.
A QMailPassThroughCodec can be instantiated directly, but is more likely to be used polymorphically:
@@ -989,7 +990,7 @@ static void writeStream(QDataStream& out, const char* it, int length)
// Get an object to perform the encoding required for the current server
QMailCodec* encoder = getCodecForServer(currentServer());
- // If the codec returned is a QMailPassThroughCodec, the input data will
+ // If the codec returned is a QMailPassThroughCodec, the input data will
// be written to the output stream without encoding to 7-bit ASCII
encoder->encode(outputStream, inputStream);
\endcode
@@ -1028,8 +1029,8 @@ void QMailPassThroughCodec::decodeChunk(QDataStream& out, const char* it, int le
\ingroup messaginglibrary
The QMailLineEndingCodec allows client code to use the QMailCodec interface to encode textual data
- from the local line-ending convention to the CR/LF convention required for SMTP transmission. The
- codec will convert from single carriage return or single line feed line-endings to CR/LF pairs, or
+ from the local line-ending convention to the CR/LF convention required for SMTP transmission. The
+ codec will convert from single carriage return or single line feed line-endings to CR/LF pairs, or
will preserve data already using the correct encoding.
Decoded data will have CR/LF pairs converted to \c \n.
@@ -1071,7 +1072,7 @@ void QMailLineEndingCodec::encodeChunk(QDataStream& out, const unsigned char* it
// We have already encoded this character-sequence; skip the input
begin = (it + 1);
}
- else
+ else
{
// Write the preceding characters
if (it > begin)
diff --git a/src/messaging/win32wce/qmailid.cpp b/src/messaging/win32wce/qmailid.cpp
index 48d1cff280..4068f013d8 100644
--- a/src/messaging/win32wce/qmailid.cpp
+++ b/src/messaging/win32wce/qmailid.cpp
@@ -60,7 +60,7 @@ MailId::MailId()
MailId::MailId(quint64 value)
{
d = new MailIdPrivate();
- d->id = value;
+ d->id = value;
}
MailId::MailId(const MailId& other)
@@ -72,7 +72,7 @@ MailId::~MailId()
{
}
-MailId& MailId::operator=(const MailId& other)
+MailId& MailId::operator=(const MailId& other)
{
d = other.d;
return *this;
@@ -127,6 +127,7 @@ QTextStream& operator<< (QTextStream& s, const MailId &id)
/*!
\class QMailAccountId
\ingroup messaginglibrary
+ \since 1.1
\brief The QMailAccountId class is used to identify accounts stored by QMailStore.
@@ -134,9 +135,9 @@ QTextStream& operator<< (QTextStream& s, const MailId &id)
by their unique numeric internal indentifer.
A QMailAccountId instance can be tested for validity, and compared to other instances
- for equality. The numeric value of the identifier is not intrinsically meaningful
+ for equality. The numeric value of the identifier is not intrinsically meaningful
and cannot be modified.
-
+
\sa QMailAccount, QMailStore::account()
*/
@@ -147,7 +148,7 @@ QTextStream& operator<< (QTextStream& s, const MailId &id)
Q_IMPLEMENT_USER_METATYPE(QMailAccountId);
-/*!
+/*!
Construct an uninitialized QMailAccountId, for which isValid() returns false.
*/
QMailAccountId::QMailAccountId()
@@ -155,7 +156,7 @@ QMailAccountId::QMailAccountId()
{
}
-/*!
+/*!
Construct a QMailAccountId with the supplied numeric identifier \a value.
*/
QMailAccountId::QMailAccountId(quint64 value)
@@ -175,7 +176,7 @@ QMailAccountId::~QMailAccountId()
}
/*! \internal */
-QMailAccountId& QMailAccountId::operator=(const QMailAccountId& other)
+QMailAccountId& QMailAccountId::operator=(const QMailAccountId& other)
{
MailId::operator=(other);
return *this;
@@ -228,18 +229,18 @@ bool QMailAccountId::operator< (const QMailAccountId& other) const
return MailId::operator<(other);
}
-/*!
+/*!
\fn QMailAccountId::serialize(Stream&) const
- \internal
+ \internal
*/
template <typename Stream> void QMailAccountId::serialize(Stream &stream) const
{
MailId::serialize(stream);
}
-/*!
+/*!
\fn QMailAccountId::deserialize(Stream&)
- \internal
+ \internal
*/
template <typename Stream> void QMailAccountId::deserialize(Stream &stream)
{
@@ -271,9 +272,9 @@ Q_IMPLEMENT_USER_METATYPE_TYPEDEF(QMailAccountIdList, QMailAccountIdList)
by their unique numeric internal indentifer.
A QMailFolderId instance can be tested for validity, and compared to other instances
- for equality. The numeric value of the identifier is not intrinsically meaningful
+ for equality. The numeric value of the identifier is not intrinsically meaningful
and cannot be modified.
-
+
\sa QMailFolder, QMailStore::folder()
*/
@@ -284,7 +285,7 @@ Q_IMPLEMENT_USER_METATYPE_TYPEDEF(QMailAccountIdList, QMailAccountIdList)
Q_IMPLEMENT_USER_METATYPE(QMailFolderId);
-/*!
+/*!
Construct an uninitialized QMailFolderId, for which isValid() returns false.
*/
QMailFolderId::QMailFolderId()
@@ -292,7 +293,7 @@ QMailFolderId::QMailFolderId()
{
}
-/*!
+/*!
Construct a QMailFolderId corresponding to the predefined folder identifier \a id.
*/
QMailFolderId::QMailFolderId(QMailFolderFwd::PredefinedFolderId id)
@@ -300,7 +301,7 @@ QMailFolderId::QMailFolderId(QMailFolderFwd::PredefinedFolderId id)
{
}
-/*!
+/*!
Construct a QMailFolderId with the supplied numeric identifier \a value.
*/
QMailFolderId::QMailFolderId(quint64 value)
@@ -320,7 +321,7 @@ QMailFolderId::~QMailFolderId()
}
/*! \internal */
-QMailFolderId& QMailFolderId::operator=(const QMailFolderId& other)
+QMailFolderId& QMailFolderId::operator=(const QMailFolderId& other)
{
MailId::operator=(other);
return *this;
@@ -373,18 +374,18 @@ bool QMailFolderId::operator< (const QMailFolderId& other) const
return MailId::operator<(other);
}
-/*!
+/*!
\fn QMailFolderId::serialize(Stream&) const
- \internal
+ \internal
*/
template <typename Stream> void QMailFolderId::serialize(Stream &stream) const
{
MailId::serialize(stream);
}
-/*!
+/*!
\fn QMailFolderId::deserialize(Stream&)
- \internal
+ \internal
*/
template <typename Stream> void QMailFolderId::deserialize(Stream &stream)
{
@@ -416,9 +417,9 @@ Q_IMPLEMENT_USER_METATYPE_TYPEDEF(QMailFolderIdList, QMailFolderIdList)
by their unique numeric internal indentifer.
A QMailMessageId instance can be tested for validity, and compared to other instances
- for equality. The numeric value of the identifier is not intrinsically meaningful
+ for equality. The numeric value of the identifier is not intrinsically meaningful
and cannot be modified.
-
+
\sa QMailMessage, QMailStore::message()
*/
@@ -429,7 +430,7 @@ Q_IMPLEMENT_USER_METATYPE_TYPEDEF(QMailFolderIdList, QMailFolderIdList)
Q_IMPLEMENT_USER_METATYPE(QMailMessageId);
-/*!
+/*!
Construct an uninitialized QMailMessageId, for which isValid() returns false.
*/
QMailMessageId::QMailMessageId()
@@ -437,7 +438,7 @@ QMailMessageId::QMailMessageId()
{
}
-/*!
+/*!
Construct a QMailMessageId with the supplied numeric identifier \a value.
*/
QMailMessageId::QMailMessageId(quint64 value)
@@ -457,7 +458,7 @@ QMailMessageId::~QMailMessageId()
}
/*! \internal */
-QMailMessageId& QMailMessageId::operator=(const QMailMessageId& other)
+QMailMessageId& QMailMessageId::operator=(const QMailMessageId& other)
{
MailId::operator=(other);
return *this;
@@ -510,18 +511,18 @@ bool QMailMessageId::operator< (const QMailMessageId& other) const
return MailId::operator<(other);
}
-/*!
+/*!
\fn QMailMessageId::serialize(Stream&) const
- \internal
+ \internal
*/
template <typename Stream> void QMailMessageId::serialize(Stream &stream) const
{
MailId::serialize(stream);
}
-/*!
+/*!
\fn QMailMessageId::deserialize(Stream&)
- \internal
+ \internal
*/
template <typename Stream> void QMailMessageId::deserialize(Stream &stream)
{
diff --git a/src/messaging/win32wce/qmailmessage.cpp b/src/messaging/win32wce/qmailmessage.cpp
index 5cce53bacd..452a7f02b3 100644
--- a/src/messaging/win32wce/qmailmessage.cpp
+++ b/src/messaging/win32wce/qmailmessage.cpp
@@ -138,7 +138,7 @@ static int insensitiveIndexOf(const QByteArray& content, const QByteArray& conta
const char* searchIt = it;
const char* matchIt = matchBegin + 1;
- do
+ do
{
if (matchIt == matchEnd)
return ((it - 1) - begin);
@@ -200,7 +200,7 @@ static QTextCodec* codecForName(const QByteArray& charset, bool translateAscii =
{
int index;
- if (translateAscii && encoding.contains("ascii"))
+ if (translateAscii && encoding.contains("ascii"))
{
// We'll assume the text is plain ASCII, to be extracted to Latin-1
encoding = "ISO-8859-1";
@@ -265,7 +265,7 @@ static QMailMessageBody::TransferEncoding encodingForName(const QByteArray& name
static const char* nameForEncoding(QMailMessageBody::TransferEncoding te)
{
- switch( te )
+ switch( te )
{
case QMailMessageBody::SevenBit:
return "7bit";
@@ -286,7 +286,7 @@ static const char* nameForEncoding(QMailMessageBody::TransferEncoding te)
static QMailCodec* codecForEncoding(QMailMessageBody::TransferEncoding te, bool textualData)
{
- switch( te )
+ switch( te )
{
case QMailMessageBody::NoEncoding:
case QMailMessageBody::Binary:
@@ -499,14 +499,14 @@ static QList<Token> tokenSequence(const QString& input)
const QChar* it = input.constData();
const QChar* const end = it + input.length();
- if (it != end)
+ if (it != end)
{
const QChar* token = it;
- EncodingTokenType state = ((*it) == '"' ? Quote : ((*it).isSpace() ? Whitespace : Word));
+ EncodingTokenType state = ((*it) == '"' ? Quote : ((*it).isSpace() ? Whitespace : Word));
- for (++it; it != end; ++it)
+ for (++it; it != end; ++it)
{
- if (!escaped && (*it == '\\'))
+ if (!escaped && (*it == '\\'))
{
escaped = true;
continue;
@@ -517,7 +517,7 @@ static QList<Token> tokenSequence(const QString& input)
// This quotation mark is a token by itself
result.append(makeToken(state, token, it, escaped));
- state = ((*it) == '"' && !escaped ? Quote : ((*it).isSpace() ? Whitespace : Word));
+ state = ((*it) == '"' && !escaped ? Quote : ((*it).isSpace() ? Whitespace : Word));
token = it;
}
else if (state == Whitespace)
@@ -676,8 +676,8 @@ static QString decodeParameter(const QByteArray& encodedParameter)
return decodeParameterText(parameterFormat.cap(2).toLatin1(), parameterFormat.cap(1).toLatin1());
// Treat the whole thing as input, and deafult the charset to ascii
- // This is not required by the RFC, since the input is illegal. But, it
- // seems ok since the parameter name has already indicated that the text
+ // This is not required by the RFC, since the input is illegal. But, it
+ // seems ok since the parameter name has already indicated that the text
// should be encoded...
return decodeParameterText(encodedParameter, "us-ascii");
}
@@ -710,7 +710,7 @@ static QByteArray generateEncodedParameter(const QByteArray& charset, const QByt
result.append('\'');
result.append(lang);
result.append('\'');
-
+
// Have a guess at how long the result will be
result.reserve(result.length() + (2 * text.length()));
@@ -981,7 +981,7 @@ bool QMailMessageHeaderFieldPrivate::operator== (const QMailMessageHeaderFieldPr
{
if (!insensitiveEqual(_id, other._id))
return false;
-
+
if (_content != other._content)
return false;
@@ -1062,7 +1062,7 @@ void QMailMessageHeaderFieldPrivate::setParameter(const QByteArray& name, const
_parameters.erase(matches.takeFirst());
if (matches.count() == 1)
it = matches.takeFirst();
-
+
// If the value is too long to fit on one line, break it into manageable pieces
const int maxInputLength = 78 - 9 - param.length();
@@ -1090,7 +1090,7 @@ void QMailMessageHeaderFieldPrivate::setParameter(const QByteArray& name, const
}
}
else {
- // Overwrite the remaining instance of the parameter, and place any
+ // Overwrite the remaining instance of the parameter, and place any
// following pieces immediately after
int n = pieces.count() - 1;
int initial = n;
@@ -1212,7 +1212,7 @@ QByteArray QMailMessageHeaderFieldPrivate::toString(bool includeName, bool prese
if (includeName) {
result = _id + ":";
}
-
+
if (!_content.isEmpty()) {
if (includeName)
result += ' ';
@@ -1244,7 +1244,7 @@ static void outputHeaderPart(QDataStream& out, const QByteArray& text, int* line
int wsIndex = -1;
int lastIndex = -1;
int preferredIndex = -1;
- do
+ do
{
lastIndex = wsIndex;
if ((lastIndex > 0) && (text[lastIndex - 1] == ';')) {
@@ -1344,7 +1344,7 @@ QString QMailMessageHeaderFieldPrivate::decodedContent() const
return result;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeaderFieldPrivate::serialize(Stream &stream) const
{
stream << _id;
@@ -1353,7 +1353,7 @@ void QMailMessageHeaderFieldPrivate::serialize(Stream &stream) const
stream << _parameters;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeaderFieldPrivate::deserialize(Stream &stream)
{
stream >> _id;
@@ -1367,27 +1367,28 @@ void QMailMessageHeaderFieldPrivate::deserialize(Stream &stream)
\class QMailMessageHeaderField
\brief The QMailMessageHeaderField class encapsulates the parsing of message header fields.
-
+ \since 1.1
+
\ingroup messaginglibrary
-
- QMailMessageHeaderField provides simplified access to the various components of the
+
+ QMailMessageHeaderField provides simplified access to the various components of the
header field, and allows the field content to be extracted in a standardized form.
- The content of a header field may be formed of unstructured text, or it may have an
- internal structure. If a structured field is specified, QMailMessageHeaderField assumes
- that the contained header field is structured in a format equivalent to that used for the
- RFC 2045 'Content-Type' and RFC 2183 'Content-Disposition' header fields. If the field
+ The content of a header field may be formed of unstructured text, or it may have an
+ internal structure. If a structured field is specified, QMailMessageHeaderField assumes
+ that the contained header field is structured in a format equivalent to that used for the
+ RFC 2045 'Content-Type' and RFC 2183 'Content-Disposition' header fields. If the field
is unstructured, or conforms to a different structure, then the parameter() and parameters() functions
will return empty results, and the setParameter() function will have no effect.
QMailMessageHeaderField contains static functions to assist in creating correct
- header field content, and presenting header field content. The encodeWord() and
+ header field content, and presenting header field content. The encodeWord() and
decodeWord() functions translate between plain text and the encoded-word specification
defined in RFC 2045. The encodeParameter() and decodeParameter() functions translate
between plain text and the encoded-parameter format defined in RFC 2231.
The removeWhitespace() function can be used to remove irrelevant whitespace characters
- from a string, and the removeComments() function can remove any comment sequences
+ from a string, and the removeComments() function can remove any comment sequences
present, encododed according to the RFC 2822 specification.
*/
@@ -1410,9 +1411,9 @@ QMailMessageHeaderField::QMailMessageHeaderField()
}
/*!
- Creates a message header field object from the data in \a text. If \a fieldType is
- QMailMessageHeaderField::StructuredField, then \a text will be parsed assuming a
- format equivalent to that used for the RFC 2045 'Content-Type' and
+ Creates a message header field object from the data in \a text. If \a fieldType is
+ QMailMessageHeaderField::StructuredField, then \a text will be parsed assuming a
+ format equivalent to that used for the RFC 2045 'Content-Type' and
RFC 2183 'Content-Disposition' header fields.
*/
QMailMessageHeaderField::QMailMessageHeaderField(const QByteArray& text, FieldType fieldType)
@@ -1421,9 +1422,9 @@ QMailMessageHeaderField::QMailMessageHeaderField(const QByteArray& text, FieldTy
}
/*!
- Creates a message header field object with the field id \a id and the content
- data in \a text. If \a fieldType is QMailMessageHeaderField::StructuredField,
- then \a text will be parsed assuming a format equivalent to that used for the
+ Creates a message header field object with the field id \a id and the content
+ data in \a text. If \a fieldType is QMailMessageHeaderField::StructuredField,
+ then \a text will be parsed assuming a format equivalent to that used for the
RFC 2045 'Content-Type' and RFC 2183 'Content-Disposition' header fields.
*/
QMailMessageHeaderField::QMailMessageHeaderField(const QByteArray& id, const QByteArray& text, FieldType fieldType)
@@ -1478,7 +1479,7 @@ void QMailMessageHeaderField::setContent(const QByteArray& text)
}
/*!
- Returns the value of the parameter with the name \a name.
+ Returns the value of the parameter with the name \a name.
Name comparisons are case-insensitive.
*/
QByteArray QMailMessageHeaderField::parameter(const QByteArray& name) const
@@ -1487,7 +1488,7 @@ QByteArray QMailMessageHeaderField::parameter(const QByteArray& name) const
}
/*!
- Sets the parameter with the name \a name to have the value \a value, if present;
+ Sets the parameter with the name \a name to have the value \a value, if present;
otherwise a new parameter is appended with the supplied properties. If \a name
ends with a single asterisk, the parameter will be flagged as encoded.
@@ -1499,8 +1500,8 @@ void QMailMessageHeaderField::setParameter(const QByteArray& name, const QByteAr
}
/*!
- Returns true if the parameter with name \a name exists and is marked as encoded
- according to RFC 2231; otherwise returns false.
+ Returns true if the parameter with name \a name exists and is marked as encoded
+ according to RFC 2231; otherwise returns false.
Name comparisons are case-insensitive.
*/
bool QMailMessageHeaderField::isParameterEncoded(const QByteArray& name) const
@@ -1528,9 +1529,9 @@ QList<QMailMessageHeaderField::ParameterType> QMailMessageHeaderField::parameter
/*!
Returns the entire header field text as a formatted string, with the name of the field
- included if \a includeName is true. If \a presentable is true, artifacts of RFC 2822
- transmission format such as parameter folding will be removed. For example:
-
+ included if \a includeName is true. If \a presentable is true, artifacts of RFC 2822
+ transmission format such as parameter folding will be removed. For example:
+
\code
QMailMessageHeaderField hdr;
hdr.setId("Content-Type");
@@ -1562,7 +1563,7 @@ void QMailMessageHeaderField::parse(const QByteArray& text, FieldType fieldType)
/*!
Returns the content of the string \a input encoded into a series of RFC 2045 'encoded-word'
- format tokens, each no longer than 75 characters. The encoding used can be specified in
+ format tokens, each no longer than 75 characters. The encoding used can be specified in
\a charset, or can be deduced from the content of \a input if \a charset is empty.
*/
QByteArray QMailMessageHeaderField::encodeWord(const QString& input, const QByteArray& charset)
@@ -1581,9 +1582,9 @@ QString QMailMessageHeaderField::decodeWord(const QByteArray& input)
/*!
Returns the content of the string \a input encoded into RFC 2231 'extended-parameter'
- format. The encoding used can be specified in \a charset, or can be deduced from the
- content of \a input if \a charset is empty. If \a language is non-empty, it will be
- included in the encoded output; otherwise the language component will be extracted from
+ format. The encoding used can be specified in \a charset, or can be deduced from the
+ content of \a input if \a charset is empty. If \a language is non-empty, it will be
+ included in the encoded output; otherwise the language component will be extracted from
\a charset, if it contains a trailing language specifier as defined in RFC 2231.
*/
QByteArray QMailMessageHeaderField::encodeParameter(const QString& input, const QByteArray& charset, const QByteArray& language)
@@ -1627,7 +1628,7 @@ QByteArray QMailMessageHeaderField::removeComments(const QByteArray& input)
}
/*!
- Returns the content of \a input with any whitespace characters removed.
+ Returns the content of \a input with any whitespace characters removed.
Whitespace inside double quotes is preserved.
*/
QByteArray QMailMessageHeaderField::removeWhitespace(const QByteArray& input)
@@ -1646,7 +1647,7 @@ QByteArray QMailMessageHeaderField::removeWhitespace(const QByteArray& input)
if (quoted || !isspace(*it))
result.append(*it);
}
-
+
return result;
}
@@ -1656,21 +1657,21 @@ void QMailMessageHeaderField::output(QDataStream& out) const
impl(this)->output(out);
}
-/*!
+/*!
\fn QMailMessageHeaderField::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeaderField::serialize(Stream &stream) const
{
impl(this)->serialize(stream);
}
-/*!
+/*!
\fn QMailMessageHeaderField::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeaderField::deserialize(Stream &stream)
{
impl(this)->deserialize(stream);
@@ -1682,10 +1683,10 @@ void QMailMessageHeaderField::deserialize(Stream &stream)
\brief The QMailMessageContentType class encapsulates the parsing of the RFC 2822
'Content-Type' header field.
-
+
\ingroup messaginglibrary
-
- QMailMessageContentType provides simplified access to the various components of the
+
+ QMailMessageContentType provides simplified access to the various components of the
'Content-Type' header field.
Components of the header field not exposed by member functions can be accessed using
the functions inherited from QMailMessageHeaderField.
@@ -1751,7 +1752,7 @@ QByteArray QMailMessageContentType::type() const
}
/*!
- Sets the primary type information of the 'Content-Type' header field to \a type. If \a type
+ Sets the primary type information of the 'Content-Type' header field to \a type. If \a type
is empty, then any pre-existing sub-type information will be cleared.
\sa setSubType()
@@ -1874,10 +1875,10 @@ void QMailMessageContentType::setCharset(const QByteArray& charset)
\brief The QMailMessageContentDisposition class encapsulates the parsing of the RFC 2822
'Content-Disposition' header field.
-
+
\ingroup messaginglibrary
-
- QMailMessageContentDisposition provides simplified access to the various components of the
+
+ QMailMessageContentDisposition provides simplified access to the various components of the
'Content-Disposition' header field.
Components of the header field not exposed by member functions can be accessed using
the functions inherited from QMailMessageHeaderField.
@@ -2230,13 +2231,13 @@ void QMailMessageHeaderPrivate::output(QDataStream& out, const QList<QByteArray>
}
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeaderPrivate::serialize(Stream &stream) const
{
stream << _headerFields;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeaderPrivate::deserialize(Stream &stream)
{
stream >> _headerFields;
@@ -2303,21 +2304,21 @@ void QMailMessageHeader::output(QDataStream& out, const QList<QByteArray>& exclu
impl(this)->output(out, exclusions, excludeInternalFields);
}
-/*!
+/*!
\fn QMailMessageHeader::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeader::serialize(Stream &stream) const
{
impl(this)->serialize(stream);
}
-/*!
+/*!
\fn QMailMessageHeader::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageHeader::deserialize(Stream &stream)
{
impl(this)->deserialize(stream);
@@ -2358,7 +2359,7 @@ void QMailMessageBodyPrivate::fromStream(QDataStream& in, const QMailMessageCont
_encoded = true;
_filename = QString();
_bodyData = LongString();
-
+
// If the data is already encoded, we don't need to do it again
if (status == QMailMessageBody::AlreadyEncoded)
te = QMailMessageBody::SevenBit;
@@ -2575,7 +2576,7 @@ bool QMailMessageBodyPrivate::toStream(QTextStream& out) const
bool result = false;
if (!_encoded && !_filename.isEmpty() && unicodeConvertingCharset(charset))
- {
+ {
// The data is already in unicode format
QTextStream* in = _bodyData.textStream();
in->setCodec(charset);
@@ -2630,7 +2631,7 @@ void QMailMessageBodyPrivate::output(QDataStream& out, bool includeAttachments)
toStream( out, QMailMessageBody::Encoded );
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageBodyPrivate::serialize(Stream &stream) const
{
stream << _encoding;
@@ -2640,7 +2641,7 @@ void QMailMessageBodyPrivate::serialize(Stream &stream) const
stream << _type;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageBodyPrivate::deserialize(Stream &stream)
{
stream >> _encoding;
@@ -2655,9 +2656,9 @@ void QMailMessageBodyPrivate::deserialize(Stream &stream)
\class QMailMessageBody
\brief The QMailMessageBody class contains the body element of a message or message part.
-
+
\ingroup messaginglibrary
-
+
The body of a message or message part is treated as an atomic unit by the Qt Extended messaging library. It can only be inserted into a message part container or extracted
from one. It can be inserted or extracted using either a QByteArray, a QDataStream
or to/from a file. In the case of unicode text data, the insertion and extraction can
@@ -2666,30 +2667,30 @@ void QMailMessageBodyPrivate::deserialize(Stream &stream)
The body data must be associated with a QMailMessageContentType describing that data.
When extracting body data from a message or part to unicode text, the content type
description must include a parameter named 'charset'; this parameter is used to locate
- a QTextCodec to be used to extract unicode data from the body data octet stream.
-
- If the Content-Type of the data is a subtype of "text", then line-ending translation
- will be used to ensure that the text is transmitted with CR/LF line endings. The text
- data supplied to QMailMessageBody must conform to the RFC 2822 restrictions on maximum
- line lengths: "Each line of characters MUST be no more than 998 characters, and SHOULD
- be no more than 78 characters, excluding the CRLF." Textual message body data decoded
- from a QMailMessageBody object will have transmitted CR/LF line endings converted to
+ a QTextCodec to be used to extract unicode data from the body data octet stream.
+
+ If the Content-Type of the data is a subtype of "text", then line-ending translation
+ will be used to ensure that the text is transmitted with CR/LF line endings. The text
+ data supplied to QMailMessageBody must conform to the RFC 2822 restrictions on maximum
+ line lengths: "Each line of characters MUST be no more than 998 characters, and SHOULD
+ be no more than 78 characters, excluding the CRLF." Textual message body data decoded
+ from a QMailMessageBody object will have transmitted CR/LF line endings converted to
\c \n on extraction.
The body data can also be encoded from 8-bit octets to 7-bit ASCII characters for
- safe transmission through obsolete email systems. When creating an instance of the
- QMailMessageBody class, the encoding to be used must be specified using the
+ safe transmission through obsolete email systems. When creating an instance of the
+ QMailMessageBody class, the encoding to be used must be specified using the
QMailMessageBody::TransferEncoding enum.
\sa QMailMessagePart, QMailMessage, QTextCodec
-*/
+*/
/*!
\typedef QMailMessageBody::ImplementationType
\internal
*/
-/*!
+/*!
Creates an instance of QMailMessageBody.
*/
QMailMessageBody::QMailMessageBody()
@@ -2698,13 +2699,13 @@ QMailMessageBody::QMailMessageBody()
}
/*!
- Creates a message body from the data contained in the file \a filename, having the content type
- \a type. If \a status is QMailMessageBody::RequiresEncoding, the data from the file will be
+ Creates a message body from the data contained in the file \a filename, having the content type
+ \a type. If \a status is QMailMessageBody::RequiresEncoding, the data from the file will be
encoded to \a encoding for transmission; otherwise it must already be in that encoding, which
will be reported to recipients of the data.
If \a type is a subtype of "text", the data will be treated as text, and line-ending
- translation will be employed. Otherwise, the file will be treated as containing binary
+ translation will be employed. Otherwise, the file will be treated as containing binary
data. If the file contains unicode text data, it will be converted to an octet stream using
a QTextCodec object identified by the 'charset' parameter of \a type.
@@ -2723,13 +2724,13 @@ QMailMessageBody QMailMessageBody::fromFile(const QString& filename, const QMail
}
/*!
- Creates a message body from the data read from \a in, having the content type \a type.
- If \a status is QMailMessageBody::RequiresEncoding, the data from the file will be
- encoded to \a encoding for transmission; otherwise it must already be in that encoding,
+ Creates a message body from the data read from \a in, having the content type \a type.
+ If \a status is QMailMessageBody::RequiresEncoding, the data from the file will be
+ encoded to \a encoding for transmission; otherwise it must already be in that encoding,
which will be reported to recipients of the data.
If \a type is a subtype of "text", the data will be treated as text, and line-ending
- translation will be employed. Otherwise, the file will be treated as containing binary
+ translation will be employed. Otherwise, the file will be treated as containing binary
data.
If \a encoding is QMailMessageBody::QuotedPrintable, encoding will be performed assuming
@@ -2745,13 +2746,13 @@ QMailMessageBody QMailMessageBody::fromStream(QDataStream& in, const QMailMessag
}
/*!
- Creates a message body from the data contained in \a input, having the content type
- \a type. If \a status is QMailMessageBody::RequiresEncoding, the data from the file will be
- encoded to \a encoding for transmission; otherwise it must already be in that encoding,
+ Creates a message body from the data contained in \a input, having the content type
+ \a type. If \a status is QMailMessageBody::RequiresEncoding, the data from the file will be
+ encoded to \a encoding for transmission; otherwise it must already be in that encoding,
which will be reported to recipients of the data.
If \a type is a subtype of "text", the data will be treated as text, and line-ending
- translation will be employed. Otherwise, the file will be treated as containing binary
+ translation will be employed. Otherwise, the file will be treated as containing binary
data.
If \a encoding is QMailMessageBody::QuotedPrintable, encoding will be performed assuming
@@ -2770,9 +2771,9 @@ QMailMessageBody QMailMessageBody::fromData(const QByteArray& input, const QMail
}
/*!
- Creates a message body from the data read from \a in, having the content type \a type.
+ Creates a message body from the data read from \a in, having the content type \a type.
The data read from \a in will be encoded to \a encoding for transmission, and line-ending
- translation will be employed. The unicode text data will be converted to an octet stream
+ translation will be employed. The unicode text data will be converted to an octet stream
using a QTextCodec object identified by the 'charset' parameter of \a type.
If \a encoding is QMailMessageBody::QuotedPrintable, encoding will be performed assuming
@@ -2788,9 +2789,9 @@ QMailMessageBody QMailMessageBody::fromStream(QTextStream& in, const QMailMessag
}
/*!
- Creates a message body from the data contained in \a input, having the content type
- \a type. The data from \a input will be encoded to \a encoding for transmission, and
- line-ending translation will be employed. The unicode text data will be converted to
+ Creates a message body from the data contained in \a input, having the content type
+ \a type. The data from \a input will be encoded to \a encoding for transmission, and
+ line-ending translation will be employed. The unicode text data will be converted to
an octet stream using a QTextCodec object identified by the 'charset' parameter of \a type.
If \a encoding is QMailMessageBody::QuotedPrintable, encoding will be performed assuming
@@ -2822,8 +2823,8 @@ QMailMessageBody QMailMessageBody::fromLongString(LongString& ls, const QMailMes
QMailMessageBody::Encoded, then the data is written in the transfer encoding it was
created with; otherwise, it is written in unencoded form.
- If the body has a content type with a QMailMessageContentType::type() of "text", and the
- content type parameter 'charset' is not empty, then the unencoded data will be written
+ If the body has a content type with a QMailMessageContentType::type() of "text", and the
+ content type parameter 'charset' is not empty, then the unencoded data will be written
as unicode text data, using the charset parameter to locate the appropriate QTextCodec.
Returns false if the operation causes an error; otherwise returns true.
@@ -2870,7 +2871,7 @@ bool QMailMessageBody::toStream(QDataStream& out, EncodingFormat format) const
Returns the data of the message body as a QString, in unencoded form. Line-endings
transmitted as CR/LF pairs are converted to \c \n on extraction.
- The 'charset' parameter of the body's content type is used to locate the appropriate
+ The 'charset' parameter of the body's content type is used to locate the appropriate
QTextCodec to convert the data from an octet stream to unicode, if necessary.
\sa QMailCodec, QMailMessageContentType, QTextCodec
@@ -2886,11 +2887,11 @@ QString QMailMessageBody::data() const
}
/*!
- Writes the data of the message body to the stream \a out, in unencoded form.
+ Writes the data of the message body to the stream \a out, in unencoded form.
Line-endings transmitted as CR/LF pairs are converted to \c \n on extraction.
Returns false if the operation causes an error; otherwise returns true.
- The 'charset' parameter of the body's content type is used to locate the appropriate
+ The 'charset' parameter of the body's content type is used to locate the appropriate
QTextCodec to convert the data from an octet stream to unicode, if necessary.
\sa QMailCodec, QMailMessageContentType, QTextCodec
@@ -2944,21 +2945,21 @@ void QMailMessageBody::output(QDataStream& out, bool includeAttachments) const
impl(this)->output(out, includeAttachments);
}
-/*!
+/*!
\fn QMailMessageBody::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageBody::serialize(Stream &stream) const
{
impl(this)->serialize(stream);
}
-/*!
+/*!
\fn QMailMessageBody::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageBody::deserialize(Stream &stream)
{
impl(this)->deserialize(stream);
@@ -3006,8 +3007,8 @@ int QMailMessagePartContainerPrivate::partNumber() const
bool QMailMessagePartContainerPrivate::contains(const QMailMessagePart::Location& location) const
{
- const QMailMessagePart* part = 0;
- const QList<QMailMessagePart>* partList = &_messageParts;
+ const QMailMessagePart* part = 0;
+ const QList<QMailMessagePart>* partList = &_messageParts;
foreach (uint index, location.d->_indices) {
if (partList->count() < index) {
@@ -3023,8 +3024,8 @@ bool QMailMessagePartContainerPrivate::contains(const QMailMessagePart::Location
const QMailMessagePart& QMailMessagePartContainerPrivate::partAt(const QMailMessagePart::Location& location) const
{
- const QMailMessagePart* part = 0;
- const QList<QMailMessagePart>* partList = &_messageParts;
+ const QMailMessagePart* part = 0;
+ const QList<QMailMessagePart>* partList = &_messageParts;
foreach (uint index, location.d->_indices) {
part = &(partList->at(index - 1));
@@ -3037,8 +3038,8 @@ const QMailMessagePart& QMailMessagePartContainerPrivate::partAt(const QMailMess
QMailMessagePart& QMailMessagePartContainerPrivate::partAt(const QMailMessagePart::Location& location)
{
- QMailMessagePart* part = 0;
- QList<QMailMessagePart>* partList = &_messageParts;
+ QMailMessagePart* part = 0;
+ QList<QMailMessagePart>* partList = &_messageParts;
foreach (uint index, location.d->_indices) {
part = &((*partList)[index - 1]);
@@ -3593,7 +3594,7 @@ void QMailMessagePartContainerPrivate::setDirty(bool value, bool recursive)
}
}
-template <typename Stream>
+template <typename Stream>
void QMailMessagePartContainerPrivate::serialize(Stream &stream) const
{
stream << _multipartType;
@@ -3608,7 +3609,7 @@ void QMailMessagePartContainerPrivate::serialize(Stream &stream) const
stream << _dirty;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessagePartContainerPrivate::deserialize(Stream &stream)
{
stream >> _multipartType;
@@ -3628,27 +3629,27 @@ void QMailMessagePartContainerPrivate::deserialize(Stream &stream)
\class QMailMessagePartContainer
\brief The QMailMessagePartContainer class provides access to a collection of message parts.
-
+
\ingroup messaginglibrary
-
- Message formats such as email messages conforming to
- \l{http://www.ietf.org/rfc/rfc2822.txt} {RFC 2822} (Internet Message Format) can consist of
- multiple independent parts, whose relationship to each other is defined by the message that
- contains those parts. The QMailMessagePartContainer class provides storage for these related
+
+ Message formats such as email messages conforming to
+ \l{http://www.ietf.org/rfc/rfc2822.txt} {RFC 2822} (Internet Message Format) can consist of
+ multiple independent parts, whose relationship to each other is defined by the message that
+ contains those parts. The QMailMessagePartContainer class provides storage for these related
message parts, and the interface through which they are accessed.
- The multipartType() function returns a member of the MultipartType enumeration, which
+ The multipartType() function returns a member of the MultipartType enumeration, which
describes the relationship of the parts in the container to each other.
The part container can instead contain a message body element. In this case, it cannot contain
- sub-parts, and the multipartType() function will return MultipartType::MultipartNone for the part.
+ sub-parts, and the multipartType() function will return MultipartType::MultipartNone for the part.
The body element can be accessed via the body() function.
The QMailMessagePart class is itself derived from QMailMessagePartContainer, which allows
messages to support the nesting of part collections within other part collections.
\sa QMailMessagePart, QMailMessage, QMailMessageBody
-*/
+*/
/*!
\typedef QMailMessagePartContainer::ImplementationType
@@ -3658,7 +3659,7 @@ void QMailMessagePartContainerPrivate::deserialize(Stream &stream)
/*!
\fn QMailMessagePartContainer::QMailMessagePartContainer(Subclass*)
- Constructs an empty part container object, in the space allocated
+ Constructs an empty part container object, in the space allocated
within the subclass instance at \a p.
*/
template<typename Subclass>
@@ -3675,7 +3676,7 @@ void QMailMessagePartContainer::setHeader(const QMailMessageHeader& partHeader,
/*!
Returns the number of attachments the message has.
-*/
+*/
uint QMailMessagePartContainer::partCount() const
{
return impl(this)->_messageParts.count();
@@ -3708,7 +3709,7 @@ void QMailMessagePartContainer::removePartAt(uint pos)
}
/*!
- Returns a const reference to the item at position \a pos in the list of
+ Returns a const reference to the item at position \a pos in the list of
attachments for the message.
\a pos must be a valid index position in the list (i.e., 0 <= i < partCount()).
@@ -3719,7 +3720,7 @@ const QMailMessagePart& QMailMessagePartContainer::partAt(uint pos) const
}
/*!
- Returns a non-const reference to the item at position \a pos in the list of
+ Returns a non-const reference to the item at position \a pos in the list of
attachments for the message.
\a pos must be a valid index position in the list (i.e., 0 <= i < partCount()).
@@ -3740,7 +3741,7 @@ void QMailMessagePartContainer::clearParts()
/*!
Returns the type of multipart relationship shared by the parts contained within this container, or
\l {QMailMessagePartContainerFwd::MultipartNone}{MultipartNone} if the content is not a multipart message.
-*/
+*/
QMailMessagePartContainer::MultipartType QMailMessagePartContainer::multipartType() const
{
return impl(this)->_multipartType;
@@ -3796,7 +3797,7 @@ bool QMailMessagePartContainer::hasBody() const
/*!
Returns the content type of this part. Where hasBody() is true, the type of the
- contained body element is returned; otherwise a content type matching the
+ contained body element is returned; otherwise a content type matching the
multipartType() for this part is returned.
\sa hasBody(), QMailMessageBody::contentType(), multipartType()
@@ -3809,7 +3810,7 @@ QMailMessageContentType QMailMessagePartContainer::contentType() const
/*!
Returns the transfer encoding type of this part. Where hasBody() is true, the
transfer encoding type of the contained body element is returned; otherwise, the
- transfer encoding type specified by the 'Content-Transfer-Encoding' field of the
+ transfer encoding type specified by the 'Content-Transfer-Encoding' field of the
header for this part is returned.
\sa hasBody(), QMailMessageBody::transferEncoding()
@@ -3829,8 +3830,8 @@ QString QMailMessagePartContainer::headerFieldText( const QString &id ) const
/*!
Returns an object containing the value of the first header field with the given \a id.
- If \a fieldType is QMailMessageHeaderField::StructuredField, then the field content
- will be parsed assuming a format equivalent to that used for the RFC 2045 'Content-Type'
+ If \a fieldType is QMailMessageHeaderField::StructuredField, then the field content
+ will be parsed assuming a format equivalent to that used for the RFC 2045 'Content-Type'
and RFC 2183 'Content-Disposition' header fields.
*/
QMailMessageHeaderField QMailMessagePartContainer::headerField( const QString &id, QMailMessageHeaderField::FieldType fieldType ) const
@@ -3858,8 +3859,8 @@ QStringList QMailMessagePartContainer::headerFieldsText( const QString &id ) con
/*!
Returns a list of objects containing the value of each header field with the given \a id.
- If \a fieldType is QMailMessageHeaderField::StructuredField, then the field content will
- be parsed assuming a format equivalent to that used for the RFC 2045 'Content-Type' and
+ If \a fieldType is QMailMessageHeaderField::StructuredField, then the field content will
+ be parsed assuming a format equivalent to that used for the RFC 2045 'Content-Type' and
RFC 2183 'Content-Disposition' header fields.
*/
QList<QMailMessageHeaderField> QMailMessagePartContainer::headerFields( const QString &id, QMailMessageHeaderField::FieldType fieldType ) const
@@ -3888,14 +3889,14 @@ QList<QMailMessageHeaderField> QMailMessagePartContainer::headerFields() const
}
/*!
- Sets the value of the first header field with identity \a id to \a value if it already
- exists; otherwise adds the header with the supplied id and value. If \a value is of
+ Sets the value of the first header field with identity \a id to \a value if it already
+ exists; otherwise adds the header with the supplied id and value. If \a value is of
the form "<id>:<content>", then only the part after the semi-colon is processed.
- RFC 2822 encoding requires header fields to be transmitted in ASCII characters.
- If \a value contains non-ASCII characters, it will be encoded to ASCII via the
- QMailMessageHeaderField::encodeContent() function; depending on the specific header
- field this may result in illegal content. Where possible, clients should encode
+ RFC 2822 encoding requires header fields to be transmitted in ASCII characters.
+ If \a value contains non-ASCII characters, it will be encoded to ASCII via the
+ QMailMessageHeaderField::encodeContent() function; depending on the specific header
+ field this may result in illegal content. Where possible, clients should encode
non-ASCII data prior to calling setHeaderField.
\sa QMailMessageHeaderField
@@ -3929,13 +3930,13 @@ void QMailMessagePartContainer::setHeaderField( const QMailMessageHeaderField& f
/*!
Appends a new header field with id \a id and value \a value to the existing
list of header fields. Any existing header fields with the same id are not modified.
- If \a value is of the form "<id>:<content>", then only the part after the
+ If \a value is of the form "<id>:<content>", then only the part after the
semi-colon is processed.
- RFC 2822 encoding requires header fields to be transmitted in ASCII characters.
- If \a value contains non-ASCII characters, it will be encoded to ASCII via the
- QMailMessageHeaderField::encodeContent() function; depending on the specific header
- field this may result in illegal content. Where possible, clients should encode
+ RFC 2822 encoding requires header fields to be transmitted in ASCII characters.
+ If \a value contains non-ASCII characters, it will be encoded to ASCII via the
+ QMailMessageHeaderField::encodeContent() function; depending on the specific header
+ field this may result in illegal content. Where possible, clients should encode
non-ASCII data prior to calling appendHeaderField.
\sa QMailMessageHeaderField
@@ -3958,7 +3959,7 @@ void QMailMessagePartContainer::appendHeaderField( const QString& id, const QStr
}
/*!
- Appends a new header field with the properties of \a field. Any existing header
+ Appends a new header field with the properties of \a field. Any existing header
fields with the same id are not modified.
*/
void QMailMessagePartContainer::appendHeaderField( const QMailMessageHeaderField& field )
@@ -4016,7 +4017,7 @@ QMailMessagePartContainer::MultipartType QMailMessagePartContainer::multipartTyp
*/
QByteArray QMailMessagePartContainer::nameForMultipartType(QMailMessagePartContainer::MultipartType type)
{
- switch (type)
+ switch (type)
{
case QMailMessagePartContainer::MultipartSigned:
{
@@ -4109,7 +4110,7 @@ QMailMessagePart::ReferenceType QMailMessagePartPrivate::referenceType() const
{
if (_referenceId.isValid())
return QMailMessagePart::MessageReference;
-
+
if (_referenceLocation.isValid())
return QMailMessagePart::PartReference;
@@ -4189,7 +4190,7 @@ void QMailMessagePartPrivate::output(QDataStream **out, bool addMimePreamble, bo
}
}
-template <typename Stream>
+template <typename Stream>
void QMailMessagePartPrivate::serialize(Stream &stream) const
{
QMailMessagePartContainerPrivate::serialize(stream);
@@ -4199,7 +4200,7 @@ void QMailMessagePartPrivate::serialize(Stream &stream) const
stream << _resolution;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessagePartPrivate::deserialize(Stream &stream)
{
QMailMessagePartContainerPrivate::deserialize(stream);
@@ -4209,16 +4210,16 @@ void QMailMessagePartPrivate::deserialize(Stream &stream)
stream >> _resolution;
}
-void QMailMessagePartPrivate::setReference(const QMailMessageId &id,
- const QMailMessageContentType& type,
+void QMailMessagePartPrivate::setReference(const QMailMessageId &id,
+ const QMailMessageContentType& type,
QMailMessageBody::TransferEncoding encoding)
{
_referenceId = id;
setBodyProperties(type, encoding);
}
-void QMailMessagePartPrivate::setReference(const QMailMessagePart::Location &location,
- const QMailMessageContentType& type,
+void QMailMessagePartPrivate::setReference(const QMailMessagePart::Location &location,
+ const QMailMessageContentType& type,
QMailMessageBody::TransferEncoding encoding)
{
_referenceLocation = location;
@@ -4244,7 +4245,7 @@ QMailMessagePartContainerPrivate* QMailMessagePartContainerPrivate::privatePoint
/*!
\fn bool QMailMessagePartContainer::foreachPart(F func)
-
+
Applies the function or functor \a func to each part contained within the container.
\a func must implement the signature 'bool operator()(QMailMessagePart &)', and must
return true to indicate success, or false to end the traversal operation.
@@ -4255,7 +4256,7 @@ QMailMessagePartContainerPrivate* QMailMessagePartContainerPrivate::privatePoint
/*!
\fn bool QMailMessagePartContainer::foreachPart(F func) const
-
+
Applies the function or functor \a func to each part contained within the container.
\a func must implement the signature 'bool operator()(const QMailMessagePart &)', and must
return true to indicate success, or false to end the traversal operation.
@@ -4271,21 +4272,21 @@ QMailMessagePartContainerPrivate* QMailMessagePartContainerPrivate::privatePoint
/*!
\class QMailMessagePart
- \brief The QMailMessagePart class provides a convenient interface for working
+ \brief The QMailMessagePart class provides a convenient interface for working
with message attachments.
\ingroup messaginglibrary
-
- A message part inherits the properties of QMailMessagePartContainer, and can
- therefore contain a message body or a collection of sub-parts.
-
- A message part differs from a message proper in that a part will often have
- properties specified by the MIME multipart specification, not relevant to
- messages. These include the 'name' and 'filename' parameters of the Content-Type
+
+ A message part inherits the properties of QMailMessagePartContainer, and can
+ therefore contain a message body or a collection of sub-parts.
+
+ A message part differs from a message proper in that a part will often have
+ properties specified by the MIME multipart specification, not relevant to
+ messages. These include the 'name' and 'filename' parameters of the Content-Type
and Content-Disposition fields, and the Content-Id and Content-Location fields.
A message part may consist entirely of a reference to an external message, or
- a part within an external message. Parts that consists of references may be
+ a part within an external message. Parts that consists of references may be
used with some protocols that permit data to be transmitted by reference, such
as IMAP with the URLAUTH extension. Not all messaging protocols support the
use of content references. The partReference() and messageReference() functions
@@ -4307,9 +4308,9 @@ QMailMessagePartContainerPrivate* QMailMessagePartContainerPrivate::privatePoint
with the message that contains it.
\ingroup messaginglibrary
-
+
A Location object is used to refer to a single part within a multi-part message. The
- location can be used to reference a part within a QMailMessage object, via the
+ location can be used to reference a part within a QMailMessage object, via the
\l{QMailMessage::partAt()}{partAt} function.
*/
@@ -4384,7 +4385,7 @@ const QMailMessagePart::Location &QMailMessagePart::Location::operator=(const QM
return *this;
}
-/*!
+/*!
Returns true if the location object contains the location of a valid message part.
If \a extended is true, the location must also contain a valid message identifier.
*/
@@ -4393,7 +4394,7 @@ bool QMailMessagePart::Location::isValid(bool extended) const
return ((!extended || d->_messageId.isValid()) && !d->_indices.isEmpty());
}
-/*!
+/*!
Returns the identifier of the message that contains the part with this location.
*/
QMailMessageId QMailMessagePart::Location::containingMessageId() const
@@ -4401,7 +4402,7 @@ QMailMessageId QMailMessagePart::Location::containingMessageId() const
return d->_messageId;
}
-/*!
+/*!
Sets the identifier of the message that contains the part with this location to \a id.
*/
void QMailMessagePart::Location::setContainingMessageId(const QMailMessageId &id)
@@ -4426,11 +4427,11 @@ QString QMailMessagePart::Location::toString(bool extended) const
return result.append(numbers.join("."));
}
-/*!
+/*!
\fn QMailMessagePart::Location::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessagePart::Location::serialize(Stream &stream) const
{
stream << d->_messageId;
@@ -4439,11 +4440,11 @@ void QMailMessagePart::Location::serialize(Stream &stream) const
template void QMailMessagePart::Location::serialize(QDataStream &) const;
-/*!
+/*!
\fn QMailMessagePart::Location::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessagePart::Location::deserialize(Stream &stream)
{
stream >> d->_messageId;
@@ -4461,16 +4462,16 @@ QMailMessagePart::QMailMessagePart()
}
/*!
- Creates a QMailMessagePart containing an attachment of type \a disposition, from the
+ Creates a QMailMessagePart containing an attachment of type \a disposition, from the
data contained in \a filename, of content type \a type and using the transfer encoding
\a encoding. The current status of the data is specified as \a status.
\sa QMailMessageBody::fromFile()
*/
QMailMessagePart QMailMessagePart::fromFile(const QString& filename,
- const QMailMessageContentDisposition& disposition,
- const QMailMessageContentType& type,
- QMailMessageBody::TransferEncoding encoding,
+ const QMailMessageContentDisposition& disposition,
+ const QMailMessageContentType& type,
+ QMailMessageBody::TransferEncoding encoding,
QMailMessageBody::EncodingStatus status)
{
QMailMessagePart part;
@@ -4481,16 +4482,16 @@ QMailMessagePart QMailMessagePart::fromFile(const QString& filename,
}
/*!
- Creates a QMailMessagePart containing an attachment of type \a disposition, from the
+ Creates a QMailMessagePart containing an attachment of type \a disposition, from the
data read from \a in, of content type \a type and using the transfer encoding
\a encoding. The current status of the data is specified as \a status.
\sa QMailMessageBody::fromStream()
*/
QMailMessagePart QMailMessagePart::fromStream(QDataStream& in,
- const QMailMessageContentDisposition& disposition,
- const QMailMessageContentType& type,
- QMailMessageBody::TransferEncoding encoding,
+ const QMailMessageContentDisposition& disposition,
+ const QMailMessageContentType& type,
+ QMailMessageBody::TransferEncoding encoding,
QMailMessageBody::EncodingStatus status)
{
QMailMessagePart part;
@@ -4501,16 +4502,16 @@ QMailMessagePart QMailMessagePart::fromStream(QDataStream& in,
}
/*!
- Creates a QMailMessagePart containing an attachment of type \a disposition, from the
+ Creates a QMailMessagePart containing an attachment of type \a disposition, from the
data contained in \a input, of content type \a type and using the transfer encoding
\a encoding. The current status of the data is specified as \a status.
\sa QMailMessageBody::fromData()
*/
QMailMessagePart QMailMessagePart::fromData(const QByteArray& input,
- const QMailMessageContentDisposition& disposition,
- const QMailMessageContentType& type,
- QMailMessageBody::TransferEncoding encoding,
+ const QMailMessageContentDisposition& disposition,
+ const QMailMessageContentType& type,
+ QMailMessageBody::TransferEncoding encoding,
QMailMessageBody::EncodingStatus status)
{
QMailMessagePart part;
@@ -4521,15 +4522,15 @@ QMailMessagePart QMailMessagePart::fromData(const QByteArray& input,
}
/*!
- Creates a QMailMessagePart containing an attachment of type \a disposition, from the
+ Creates a QMailMessagePart containing an attachment of type \a disposition, from the
data read from \a in, of content type \a type and using the transfer encoding
\a encoding.
\sa QMailMessageBody::fromStream()
*/
QMailMessagePart QMailMessagePart::fromStream(QTextStream& in,
- const QMailMessageContentDisposition& disposition,
- const QMailMessageContentType& type,
+ const QMailMessageContentDisposition& disposition,
+ const QMailMessageContentType& type,
QMailMessageBody::TransferEncoding encoding)
{
QMailMessagePart part;
@@ -4540,15 +4541,15 @@ QMailMessagePart QMailMessagePart::fromStream(QTextStream& in,
}
/*!
- Creates a QMailMessagePart containing an attachment of type \a disposition, from the
+ Creates a QMailMessagePart containing an attachment of type \a disposition, from the
data contained in \a input, of content type \a type and using the transfer encoding
\a encoding.
\sa QMailMessageBody::fromData()
*/
QMailMessagePart QMailMessagePart::fromData(const QString& input,
- const QMailMessageContentDisposition& disposition,
- const QMailMessageContentType& type,
+ const QMailMessageContentDisposition& disposition,
+ const QMailMessageContentType& type,
QMailMessageBody::TransferEncoding encoding)
{
QMailMessagePart part;
@@ -4560,16 +4561,16 @@ QMailMessagePart QMailMessagePart::fromData(const QString& input,
/*!
Creates a QMailMessagePart containing an attachment of type \a disposition, whose
- content is a reference to the message identified by \a messageId. The resulting
+ content is a reference to the message identified by \a messageId. The resulting
part has content type \a type and uses the transfer encoding \a encoding.
-
- The message reference can only be resolved by transmitting the message to an external
- server, where both the originating server of the referenced message and the receiving
+
+ The message reference can only be resolved by transmitting the message to an external
+ server, where both the originating server of the referenced message and the receiving
server of the new message support resolution of the content reference.
*/
QMailMessagePart QMailMessagePart::fromMessageReference(const QMailMessageId &messageId,
- const QMailMessageContentDisposition& disposition,
- const QMailMessageContentType& type,
+ const QMailMessageContentDisposition& disposition,
+ const QMailMessageContentType& type,
QMailMessageBody::TransferEncoding encoding)
{
QMailMessagePart part;
@@ -4581,16 +4582,16 @@ QMailMessagePart QMailMessagePart::fromMessageReference(const QMailMessageId &me
/*!
Creates a QMailMessagePart containing an attachment of type \a disposition, whose
- content is a reference to the message part identified by \a partLocation. The
+ content is a reference to the message part identified by \a partLocation. The
resulting part has content type \a type and uses the transfer encoding \a encoding.
-
- The part reference can only be resolved by transmitting the message to an external
- server, where both the originating server of the referenced part's message and the
+
+ The part reference can only be resolved by transmitting the message to an external
+ server, where both the originating server of the referenced part's message and the
receiving server of the new message support resolution of the content reference.
*/
QMailMessagePart QMailMessagePart::fromPartReference(const QMailMessagePart::Location &partLocation,
- const QMailMessageContentDisposition& disposition,
- const QMailMessageContentType& type,
+ const QMailMessageContentDisposition& disposition,
+ const QMailMessageContentType& type,
QMailMessageBody::TransferEncoding encoding)
{
QMailMessagePart part;
@@ -4603,9 +4604,9 @@ QMailMessagePart QMailMessagePart::fromPartReference(const QMailMessagePart::Loc
/*!
Sets the part content to contain a reference to the message identified by \a id,
having content type \a type and using the transfer encoding \a encoding.
-
- The message reference can only be resolved by transmitting the message to an external
- server, where both the originating server of the referenced message and the receiving
+
+ The message reference can only be resolved by transmitting the message to an external
+ server, where both the originating server of the referenced message and the receiving
server of the new message support resolution of the content reference.
\sa referenceType(), setReferenceResolution()
@@ -4618,9 +4619,9 @@ void QMailMessagePart::setReference(const QMailMessageId &id, const QMailMessage
/*!
Sets the part content to contain a reference to the message part identified by \a location,
having content type \a type and using the transfer encoding \a encoding.
-
- The part reference can only be resolved by transmitting the message to an external
- server, where both the originating server of the referenced part's message and the
+
+ The part reference can only be resolved by transmitting the message to an external
+ server, where both the originating server of the referenced part's message and the
receiving server of the new message support resolution of the content reference.
\sa referenceType(), setReferenceResolution()
@@ -4666,7 +4667,7 @@ void QMailMessagePart::setContentID(const QString &id)
}
/*!
- Returns the Content-Location header field for the part, if present;
+ Returns the Content-Location header field for the part, if present;
otherwise returns an empty string.
*/
QString QMailMessagePart::contentLocation() const
@@ -4683,7 +4684,7 @@ void QMailMessagePart::setContentLocation(const QString &location)
}
/*!
- Returns the Content-Description header field for the part, if present;
+ Returns the Content-Description header field for the part, if present;
otherwise returns an empty string.
*/
QString QMailMessagePart::contentDescription() const
@@ -4716,7 +4717,7 @@ void QMailMessagePart::setContentDisposition(const QMailMessageContentDispositio
}
/*!
- Returns the Content-Language header field for the part, if present;
+ Returns the Content-Language header field for the part, if present;
otherwise returns an empty string.
*/
QString QMailMessagePart::contentLanguage() const
@@ -4749,11 +4750,11 @@ QMailMessagePart::Location QMailMessagePart::location() const
}
/*!
- Returns a non-empty string to identify the part, appropriate for display. If the part
- 'Content-Type' header field contains a 'name' parameter, that value is used. Otherwise,
- if the part has a 'Content-Disposition' header field containing a 'filename' parameter,
- that value is used. Otherwise, if the part has a 'Content-ID' header field, that value
- is used. Finally, a usable name will be created by combining the content type of the
+ Returns a non-empty string to identify the part, appropriate for display. If the part
+ 'Content-Type' header field contains a 'name' parameter, that value is used. Otherwise,
+ if the part has a 'Content-Disposition' header field containing a 'filename' parameter,
+ that value is used. Otherwise, if the part has a 'Content-ID' header field, that value
+ is used. Finally, a usable name will be created by combining the content type of the
part with the part's number.
\sa identifier()
@@ -4780,10 +4781,10 @@ QString QMailMessagePart::displayName() const
}
/*!
- Returns a non-empty string to identify the part, appropriate for storage. If the part
- has a 'Content-ID' header field, that value is used. Otherwise, if the part has a
+ Returns a non-empty string to identify the part, appropriate for storage. If the part
+ has a 'Content-ID' header field, that value is used. Otherwise, if the part has a
'Content-Disposition' header field containing a 'filename' parameter, that value is used.
- Otherwise, if the part 'Content-Type' header field contains a 'name' parameter, that value
+ Otherwise, if the part 'Content-Type' header field contains a 'name' parameter, that value
is used. Finally, the part's number will be returned.
*/
QString QMailMessagePart::identifier() const
@@ -4866,7 +4867,7 @@ void QMailMessagePart::setReferenceResolution(const QString &uri)
static QString randomString(int length)
{
- if (length <= 0)
+ if (length <= 0)
return QString();
QString str;
@@ -4916,7 +4917,7 @@ static QString partFileName(const QMailMessagePart &part)
/*!
Writes the decoded body of the part to a file under the directory specified by \a path.
- The name of the resulting file is taken from the part. If that file name already exists
+ The name of the resulting file is taken from the part. If that file name already exists
in the path a new unique name of the format <random chars>.<filename> is saved.
Returns the path of the file written on success, or an empty string otherwise.
@@ -4951,14 +4952,14 @@ QString QMailMessagePart::writeBodyTo(const QString &path) const
qWarning() << "Could not write part data to file " << filepath;
return QString();
}
-
+
return filepath;
}
/*!
Returns an indication of the size of the part. This measure should be used
only in comparing the relative size of parts with respect to transmission.
-*/
+*/
uint QMailMessagePart::indicativeSize() const
{
return impl(this)->indicativeSize();
@@ -4987,11 +4988,11 @@ void QMailMessagePart::output(QDataStream& out, bool includeAttachments, bool ex
return impl(this)->output<DummyChunkProcessor>(&ds, false, includeAttachments, excludeInternalFields, 0);
}
-/*!
+/*!
\fn QMailMessagePart::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessagePart::serialize(Stream &stream) const
{
impl(this)->serialize(stream);
@@ -4999,11 +5000,11 @@ void QMailMessagePart::serialize(Stream &stream) const
template void QMailMessagePart::serialize(QDataStream &) const;
-/*!
+/*!
\fn QMailMessagePart::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessagePart::deserialize(Stream &stream)
{
impl(this)->deserialize(stream);
@@ -5164,7 +5165,7 @@ void QMailMessageMetaDataPrivate::setReceivedDate(const QMailTimeStamp& timeStam
void QMailMessageMetaDataPrivate::setFrom(const QString& s)
{
updateMember(_from, s);
-}
+}
void QMailMessageMetaDataPrivate::setTo(const QString& s)
{
@@ -5260,7 +5261,7 @@ void QMailMessageMetaDataPrivate::setCustomFields(const QMap<QString, QString> &
_customFieldsModified = true;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageMetaDataPrivate::serialize(Stream &stream) const
{
stream << _messageType;
@@ -5290,7 +5291,7 @@ void QMailMessageMetaDataPrivate::serialize(Stream &stream) const
stream << _dirty;
}
-template <typename Stream>
+template <typename Stream>
void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
{
QString timeStamp;
@@ -5329,25 +5330,25 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
\class QMailMessageMetaData
\brief The QMailMessageMetaData class provides information about a message stored by Qtopia.
-
+
\ingroup messaginglibrary
-
+
The QMailMessageMetaData class provides information about messages stored in the Qt Extended system as QMailMessage objects. The meta data is more compact and more easily accessed and
- manipulated than the content of the message itself. Many messaging-related tasks can
- be accomplished by manipulating the message meta data, such as listing, filtering, and
+ manipulated than the content of the message itself. Many messaging-related tasks can
+ be accomplished by manipulating the message meta data, such as listing, filtering, and
searching through sets of messages.
QMailMessageMetaData objects can be created as needed, specifying the identifier of
- the message whose meta data is required. The meta data of a message can be located by
- specifying the QMailMessageId identifier directly, or by specifying the account and server UID
+ the message whose meta data is required. The meta data of a message can be located by
+ specifying the QMailMessageId identifier directly, or by specifying the account and server UID
pair needed to locate the message.
- The content of the message described by the meta data object can be accessed by creating
+ The content of the message described by the meta data object can be accessed by creating
a QMailMessage object specifying the identifier returned by QMailMessageMetaData::id().
\sa QMailStore, QMailMessageId
-*/
-
+*/
+
/*!
\typedef QMailMessageMetaData::ImplementationType
\internal
@@ -5356,7 +5357,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Incoming
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Incoming" against the result of QMailMessage::status().
This flag indicates that the message has been sent from an external source to an
@@ -5366,17 +5367,17 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Outgoing
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Outgoing" against the result of QMailMessage::status().
- This flag indicates that the message originates within Qt Extended, for transmission
+ This flag indicates that the message originates within Qt Extended, for transmission
to an external message sink.
*/
/*!
\variable QMailMessageMetaData::Sent
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Sent" against the result of QMailMessage::status().
This flag indicates that the message has been delivered to an external message sink.
@@ -5385,27 +5386,27 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Replied
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Replied" against the result of QMailMessage::status().
- This flag indicates that a message replying to the source of this message has been
+ This flag indicates that a message replying to the source of this message has been
created, in response to this message.
*/
/*!
\variable QMailMessageMetaData::RepliedAll
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "RepliedAll" against the result of QMailMessage::status().
- This flag indicates that a message replying to the source of this message and all
+ This flag indicates that a message replying to the source of this message and all
its recipients, has been created in response to this message.
*/
/*!
\variable QMailMessageMetaData::Forwarded
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Forwarded" against the result of QMailMessage::status().
This flag indicates that a message forwarding the content of this message has been created.
@@ -5414,7 +5415,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Read
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Read" against the result of QMailMessage::status().
This flag indicates that the content of this message has been displayed to the user.
@@ -5423,7 +5424,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Removed
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Removed" against the result of QMailMessage::status().
This flag indicates that the message has been deleted from or moved on the originating server.
@@ -5432,7 +5433,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::ReadElsewhere
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "ReadElsewhere" against the result of QMailMessage::status().
This flag indicates that the content of this message has been reported as having
@@ -5442,7 +5443,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::UnloadedData
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "UnloadedData" against the result of QMailMessage::status().
This flag indicates that the meta data of the message is not loaded in entirety.
@@ -5451,7 +5452,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::New
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "New" against the result of QMailMessage::status().
This flag indicates that the meta data of the message has not yet been displayed to the user.
@@ -5460,7 +5461,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::ReadReplyRequested
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "ReadReplyRequested" against the result of QMailMessage::status().
This flag indicates that the message has requested that a read confirmation reply be returned to the sender.
@@ -5469,7 +5470,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Trash
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Trash" against the result of QMailMessage::status().
This flag indicates that the message has been marked as trash, and should be considered logically deleted.
@@ -5478,7 +5479,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::ContentAvailable
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "ContentAvailable" against the result of QMailMessage::status().
This flag indicates that the entire content of the message has been retrieved from the originating server,
@@ -5490,7 +5491,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::PartialContentAvailable
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "PartialContentAvailable" against the result of QMailMessage::status().
This flag indicates that some portion of the content of the message has been retrieved from the originating server.
@@ -5501,7 +5502,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::HasAttachments
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "HasAttachments" against the result of QMailMessage::status().
This flag indicates that the message contains at least one sub-part with 'Attachment' disposition.
@@ -5512,7 +5513,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::HasReferences
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "HasReferences" against the result of QMailMessage::status().
This flag indicates that the message contains at least one sub-part which is a reference to an external message element.
@@ -5523,7 +5524,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::HasUnresolvedReferences
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "HasUnresolvedReferences" against the result of QMailMessage::status().
This flag indicates that the message contains at least one sub-part which is a reference, that has no corresponding resolution value.
@@ -5534,7 +5535,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Draft
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Draft" against the result of QMailMessage::status().
This flag indicates that the message has been marked as a draft, and should be considered subject to further composition.
@@ -5543,7 +5544,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Outbox
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Outbox" against the result of QMailMessage::status().
This flag indicates that the message has been marked as ready for transmission.
@@ -5552,7 +5553,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::Junk
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "Junk" against the result of QMailMessage::status().
This flag indicates that the message has been marked as junk, and should be considered unsuitable for standard listings.
@@ -5561,7 +5562,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::TransmitFromExternal
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "TransmitFromExternal" against the result of QMailMessage::status().
This flag indicates that the message should be transmitted by reference to its external server location.
@@ -5570,7 +5571,7 @@ void QMailMessageMetaDataPrivate::deserialize(Stream &stream)
/*!
\variable QMailMessageMetaData::LocalOnly
- The status mask needed for testing the value of the registered status flag named
+ The status mask needed for testing the value of the registered status flag named
\c "LocalOnly" against the result of QMailMessage::status().
This flag indicates that the message exists only on the local device, and has no representation on any external server.
@@ -5619,7 +5620,7 @@ QMailMessageMetaData::QMailMessageMetaData(const QMailMessageId& id)
}
/*!
- Constructs a message meta data object from data stored in the message store with the unique
+ Constructs a message meta data object from data stored in the message store with the unique
identifier \a uid from the account with id \a accountId.
*/
QMailMessageMetaData::QMailMessageMetaData(const QString& uid, const QMailAccountId& accountId)
@@ -5730,7 +5731,7 @@ void QMailMessageMetaData::setSubject(const QString &subject)
/*!
- Returns the timestamp contained in the origination date header field of the message, if present;
+ Returns the timestamp contained in the origination date header field of the message, if present;
otherwise returns an empty timestamp.
*/
QMailTimeStamp QMailMessageMetaData::date() const
@@ -5763,7 +5764,7 @@ void QMailMessageMetaData::setReceivedDate(const QMailTimeStamp &timeStamp)
impl(this)->setReceivedDate(timeStamp);
}
-/*!
+/*!
Returns the list of primary recipients for the message.
\sa QMailAddress
@@ -5773,7 +5774,7 @@ QList<QMailAddress> QMailMessageMetaData::to() const
return QMailAddress::fromStringList(impl(this)->_to);
}
-/*!
+/*!
Sets the list of primary recipients for the message to \a toList.
*/
void QMailMessageMetaData::setTo(const QList<QMailAddress>& toList)
@@ -5781,7 +5782,7 @@ void QMailMessageMetaData::setTo(const QList<QMailAddress>& toList)
impl(this)->setTo(QMailAddress::toStringList(toList).join(","));
}
-/*!
+/*!
Sets the list of primary recipients for the message to contain \a address.
*/
void QMailMessageMetaData::setTo(const QMailAddress& address)
@@ -5793,7 +5794,7 @@ void QMailMessageMetaData::setTo(const QMailAddress& address)
Returns the status value for the message.
\sa setStatus(), statusMask()
-*/
+*/
quint64 QMailMessageMetaData::status() const
{
return impl(this)->_status;
@@ -5828,7 +5829,7 @@ void QMailMessageMetaData::setStatus(quint64 mask, bool set)
#ifndef QTOPIAMAIL_PARSING_ONLY
/*!
Returns the id of the originating account for the message.
-*/
+*/
QMailAccountId QMailMessageMetaData::parentAccountId() const
{
return impl(this)->_parentAccountId;
@@ -5836,7 +5837,7 @@ QMailAccountId QMailMessageMetaData::parentAccountId() const
/*!
Sets the id of the originating account for the message to \a id.
-*/
+*/
void QMailMessageMetaData::setParentAccountId(const QMailAccountId& id)
{
impl(this)->setParentAccountId(id);
@@ -5845,7 +5846,7 @@ void QMailMessageMetaData::setParentAccountId(const QMailAccountId& id)
/*!
Returns the identifier for the message on the originating server.
-*/
+*/
QString QMailMessageMetaData::serverUid() const
{
return impl(this)->_serverUid;
@@ -5854,7 +5855,7 @@ QString QMailMessageMetaData::serverUid() const
/*!
Sets the originating server identifier for the message to \a server.
The identifier specified should be unique.
-*/
+*/
void QMailMessageMetaData::setServerUid(const QString &server)
{
impl(this)->setServerUid(server);
@@ -5862,7 +5863,7 @@ void QMailMessageMetaData::setServerUid(const QString &server)
/*!
Returns the complete size of the message as indicated on the originating server.
-*/
+*/
uint QMailMessageMetaData::size() const
{
return impl(this)->_size;
@@ -5870,7 +5871,7 @@ uint QMailMessageMetaData::size() const
/*!
Sets the complete size of the message as found on the server to \a size.
-*/
+*/
void QMailMessageMetaData::setSize(uint size)
{
impl(this)->setSize(size);
@@ -5879,7 +5880,7 @@ void QMailMessageMetaData::setSize(uint size)
/*!
Returns an indication of the size of the message. This measure should be used
only in comparing the relative size of messages with respect to transmission.
-*/
+*/
uint QMailMessageMetaData::indicativeSize() const
{
return impl(this)->indicativeSize();
@@ -5887,7 +5888,7 @@ uint QMailMessageMetaData::indicativeSize() const
/*!
Returns the type of content contained within the message.
-*/
+*/
QMailMessage::ContentType QMailMessageMetaData::content() const
{
return impl(this)->_contentType;
@@ -5896,9 +5897,9 @@ QMailMessage::ContentType QMailMessageMetaData::content() const
/*!
\fn QMailMessageMetaData::setContent(QMailMessageMetaData::ContentType)
- Sets the type of content contained within the message to \a type.
+ Sets the type of content contained within the message to \a type.
It is the caller's responsibility to ensure that this value matches the actual content.
-*/
+*/
void QMailMessageMetaData::setContent(QMailMessage::ContentType type)
{
impl(this)->setContent(type);
@@ -5906,7 +5907,7 @@ void QMailMessageMetaData::setContent(QMailMessage::ContentType type)
#ifndef QTOPIAMAIL_PARSING_ONLY
/*!
- Return the QMailFolderId of the folder that contained the message before it was
+ Return the QMailFolderId of the folder that contained the message before it was
moved into the current parent folder.
*/
QMailFolderId QMailMessageMetaData::previousParentFolderId() const
@@ -5915,7 +5916,7 @@ QMailFolderId QMailMessageMetaData::previousParentFolderId() const
}
/*!
- Sets the QMailFolderId of the folder that contained the message before it was
+ Sets the QMailFolderId of the folder that contained the message before it was
moved into the current parent folder to \a id.
*/
void QMailMessageMetaData::setPreviousParentFolderId(const QMailFolderId &id)
@@ -5926,7 +5927,7 @@ void QMailMessageMetaData::setPreviousParentFolderId(const QMailFolderId &id)
/*!
Returns the scheme used to store the content of this message.
-*/
+*/
QString QMailMessageMetaData::contentScheme() const
{
return impl(this)->_contentScheme;
@@ -5935,7 +5936,7 @@ QString QMailMessageMetaData::contentScheme() const
/*!
Sets the scheme used to store the content of this message to \a scheme, and returns
true if successful. Once set, the scheme cannot be modified.
-*/
+*/
bool QMailMessageMetaData::setContentScheme(const QString &scheme)
{
if (!impl(this)->_contentScheme.isEmpty() && (impl(this)->_contentScheme != scheme)) {
@@ -5948,7 +5949,7 @@ bool QMailMessageMetaData::setContentScheme(const QString &scheme)
/*!
Returns the identifer used to locate the content of this message.
-*/
+*/
QString QMailMessageMetaData::contentIdentifier() const
{
return impl(this)->_contentIdentifier;
@@ -5959,7 +5960,7 @@ QString QMailMessageMetaData::contentIdentifier() const
true if successful. Once set, the identifier cannot be modified.
The identifier specified should be unique within the scheme returned by contentScheme().
-*/
+*/
bool QMailMessageMetaData::setContentIdentifier(const QString &identifier)
{
impl(this)->setContentIdentifier(identifier);
@@ -5968,7 +5969,7 @@ bool QMailMessageMetaData::setContentIdentifier(const QString &identifier)
/*!
Returns the identifier of the message that this message was created in response to.
-*/
+*/
QMailMessageId QMailMessageMetaData::inResponseTo() const
{
return impl(this)->_responseId;
@@ -5986,7 +5987,7 @@ void QMailMessageMetaData::setInResponseTo(const QMailMessageId &id)
Returns the type of response that this message was created as.
\sa inResponseTo()
-*/
+*/
QMailMessageMetaData::ResponseType QMailMessageMetaData::responseType() const
{
return impl(this)->_responseType;
@@ -6032,7 +6033,7 @@ void QMailMessageMetaData::setUnmodified()
#ifndef QTOPIAMAIL_PARSING_ONLY
/*!
- Returns the status bitmask needed to test the result of QMailMessageMetaData::status()
+ Returns the status bitmask needed to test the result of QMailMessageMetaData::status()
against the QMailMessageMetaData status flag registered with the identifier \a flagName.
\sa status(), QMailStore::messageStatusMask()
@@ -6043,7 +6044,7 @@ quint64 QMailMessageMetaData::statusMask(const QString &flagName)
}
#endif
-/*!
+/*!
Returns the value recorded in the custom field named \a name.
\sa setCustomField(), customFields()
@@ -6053,7 +6054,7 @@ QString QMailMessageMetaData::customField(const QString &name) const
return d->customField(name);
}
-/*!
+/*!
Sets the value of the custom field named \a name to \a value.
\sa customField(), customFields()
@@ -6063,7 +6064,7 @@ void QMailMessageMetaData::setCustomField(const QString &name, const QString &va
d->setCustomField(name, value);
}
-/*!
+/*!
Removes the custom field named \a name.
\sa customField(), customFields()
@@ -6073,7 +6074,7 @@ void QMailMessageMetaData::removeCustomField(const QString &name)
d->removeCustomField(name);
}
-/*!
+/*!
Returns the map of custom fields stored in the message.
\sa customField(), setCustomField()
@@ -6109,11 +6110,11 @@ void QMailMessageMetaData::initStore()
}
#endif
-/*!
+/*!
\fn QMailMessageMetaData::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageMetaData::serialize(Stream &stream) const
{
impl(this)->serialize(stream);
@@ -6121,11 +6122,11 @@ void QMailMessageMetaData::serialize(Stream &stream) const
template void QMailMessageMetaData::serialize(QDataStream &) const;
-/*!
+/*!
\fn QMailMessageMetaData::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessageMetaData::deserialize(Stream &stream)
{
impl(this)->deserialize(stream);
@@ -6194,7 +6195,7 @@ void QMailMessagePrivate::setDate(const QMailTimeStamp& timeStamp)
void QMailMessagePrivate::setFrom(const QString& s)
{
updateHeaderField( "From:", s );
-}
+}
void QMailMessagePrivate::setReplyTo(const QString& s)
{
@@ -6235,7 +6236,7 @@ bool QMailMessagePrivate::hasRecipients() const
uint QMailMessagePrivate::indicativeSize() const
{
- uint size = QMailMessagePartContainerPrivate::indicativeSize();
+ uint size = QMailMessagePartContainerPrivate::indicativeSize();
// Count the message header as one size unit
return (size + 1);
@@ -6285,7 +6286,7 @@ void QMailMessagePrivate::toRfc2822(QDataStream **out, QMailMessage::EncodingFor
bool isOutgoing = (messageStatus & (QMailMessage::Outgoing | QMailMessage::Sent));
bool addTimeStamp = (format != QMailMessage::IdentityFormat);
- bool addContentHeaders = ((format != QMailMessage::IdentityFormat) &&
+ bool addContentHeaders = ((format != QMailMessage::IdentityFormat) &&
((format != QMailMessage::StorageFormat) || isOutgoing || !hasBody()));
bool includeBcc = (format != QMailMessage::TransmissionFormat);
bool excludeInternalFields = (format == QMailMessage::TransmissionFormat);
@@ -6350,13 +6351,13 @@ void QMailMessagePrivate::setUnmodified()
setDirty(false, true);
}
-template <typename Stream>
+template <typename Stream>
void QMailMessagePrivate::serialize(Stream &stream) const
{
QMailMessagePartContainerPrivate::serialize(stream);
}
-template <typename Stream>
+template <typename Stream>
void QMailMessagePrivate::deserialize(Stream &stream)
{
QMailMessagePartContainerPrivate::deserialize(stream);
@@ -6369,34 +6370,34 @@ void QMailMessagePrivate::deserialize(Stream &stream)
\class QMailMessage
\brief The QMailMessage class provides a convenient interface for working with messages.
-
+
\ingroup messaginglibrary
-
- QMailMessage supports a number of types. These include telephony types
- such as SMS and MMS, and internet email messages as defined in
- \l{http://www.ietf.org/rfc/rfc2822.txt} {RFC 2822} (Internet Message Format), and
- \l{http://www.ietf.org/rfc/rfc2045.txt} {RFC 2045} (Format of Internet Message Bodies) through
+
+ QMailMessage supports a number of types. These include telephony types
+ such as SMS and MMS, and internet email messages as defined in
+ \l{http://www.ietf.org/rfc/rfc2822.txt} {RFC 2822} (Internet Message Format), and
+ \l{http://www.ietf.org/rfc/rfc2045.txt} {RFC 2045} (Format of Internet Message Bodies) through
\l{http://www.ietf.org/rfc/rfc2049.txt} {RFC 2049} (Conformance Criteria and Examples).
-
+
The most common way to use QMailMessage is to initialize it from raw
data using QMailMessage::fromRfc2822().
-
- A QMailMessage can also be constructed piece by piece using functions such as
- setMessageType(), setFrom(), setTo(), setSubject(), and setBody() or appendPart().
+
+ A QMailMessage can also be constructed piece by piece using functions such as
+ setMessageType(), setFrom(), setTo(), setSubject(), and setBody() or appendPart().
Convenience functions such as from()/setFrom() and date()/setDate() accept and
return wrapper types, to simplify the exchange of correctly-formatted data.
- In some cases, however, it may be simpler for clients to get and set the content
+ In some cases, however, it may be simpler for clients to get and set the content
of header fields directly, using the headerField() and setHeaderField() functions inherited
from QMailMessagePartContainer.
-
- Messages can be added to the QMailStore, or retrieved from the store via their QMailMessageId
+
+ Messages can be added to the QMailStore, or retrieved from the store via their QMailMessageId
identifier. The QMailMessage object also provides access to any relevant meta data
describing the message, using the functions inherited from QMailMessageMetaData.
A message may be serialized to a QDataStream, or returned as a QByteArray using toRfc2822().
-
+
\sa QMailMessageMetaData, QMailMessagePart, QMailMessageBody, QMailStore, QMailMessageId
-*/
+*/
const char QMailMessage::CarriageReturn = '\015';
@@ -6424,7 +6425,7 @@ QMailMessage::QMailMessage(const QMailMessageId& id)
}
/*!
- Constructs a message object from data stored in the message store with the unique
+ Constructs a message object from data stored in the message store with the unique
identifier \a uid from the account with id \a accountId.
*/
QMailMessage::QMailMessage(const QString& uid, const QMailAccountId& accountId)
@@ -6537,7 +6538,7 @@ QByteArray QMailMessage::toRfc2822(EncodingFormat format) const
}
/*!
- Writes the message to the output stream \a out, in RFC 2822 format.
+ Writes the message to the output stream \a out, in RFC 2822 format.
The encoded content will vary depending on the value of \a format.
*/
void QMailMessage::toRfc2822(QDataStream& out, EncodingFormat format) const
@@ -6562,7 +6563,7 @@ struct ChunkStore
close();
}
- void close()
+ void close()
{
if (ds) {
delete ds;
@@ -6646,7 +6647,7 @@ void QMailMessage::setTo(const QMailAddress& address)
Returns a list of all the cc (carbon copy) recipients specified for the message.
\sa to(), bcc(), QMailAddress
-*/
+*/
QList<QMailAddress> QMailMessage::cc() const
{
return QMailAddress::fromStringList(headerFieldText("Cc"));
@@ -6656,7 +6657,7 @@ QList<QMailAddress> QMailMessage::cc() const
Set the list of cc (carbon copy) recipients for the message to \a ccList.
\sa setTo(), setBcc()
-*/
+*/
void QMailMessage::setCc(const QList<QMailAddress>& ccList)
{
partContainerImpl()->setCc(QMailAddress::toStringList(ccList).join(","));
@@ -6666,7 +6667,7 @@ void QMailMessage::setCc(const QList<QMailAddress>& ccList)
Returns a list of all the bcc (blind carbon copy) recipients specified for the message.
\sa to(), cc(), QMailAddress
-*/
+*/
QList<QMailAddress> QMailMessage::bcc() const
{
return QMailAddress::fromStringList(headerFieldText("Bcc"));
@@ -6676,7 +6677,7 @@ QList<QMailAddress> QMailMessage::bcc() const
Set the list of bcc (blind carbon copy) recipients for the message to \a bccList.
\sa setTo(), setCc()
-*/
+*/
void QMailMessage::setBcc(const QList<QMailAddress>& bccList)
{
partContainerImpl()->setBcc(QMailAddress::toStringList(bccList).join(","));
@@ -6684,7 +6685,7 @@ void QMailMessage::setBcc(const QList<QMailAddress>& bccList)
/*!
Returns the address specified by the RFC 2822 'Reply-To' field for the message, if present.
-*/
+*/
QMailAddress QMailMessage::replyTo() const
{
return QMailAddress(headerFieldText("Reply-To"));
@@ -6692,7 +6693,7 @@ QMailAddress QMailMessage::replyTo() const
/*!
Sets the RFC 2822 'Reply-To' address of the message to \a address.
-*/
+*/
void QMailMessage::setReplyTo(const QMailAddress &address)
{
partContainerImpl()->setReplyTo(address.toString());
@@ -6700,7 +6701,7 @@ void QMailMessage::setReplyTo(const QMailAddress &address)
/*!
Returns the message ID specified by the RFC 2822 'In-Reply-To' field for the message, if present.
-*/
+*/
QString QMailMessage::inReplyTo() const
{
return headerFieldText("In-Reply-To");
@@ -6718,7 +6719,7 @@ void QMailMessage::setInReplyTo(const QString &messageId)
Returns a list of all the recipients specified for the message, either as To, CC, or BCC addresses.
\sa to(), cc(), bcc(), hasRecipients()
-*/
+*/
QList<QMailAddress> QMailMessage::recipients() const
{
QList<QMailAddress> addresses;
@@ -6739,15 +6740,15 @@ QList<QMailAddress> QMailMessage::recipients() const
}
/*!
- Returns true if there are any recipients (either To, CC or BCC addresses)
+ Returns true if there are any recipients (either To, CC or BCC addresses)
defined for this message; otherwise returns false.
-*/
+*/
bool QMailMessage::hasRecipients() const
{
return partContainerImpl()->hasRecipients();
}
-/*! \reimp */
+/*! \reimp */
uint QMailMessage::indicativeSize() const
{
// Count the message header as one size unit
@@ -6756,7 +6757,7 @@ uint QMailMessage::indicativeSize() const
/*!
Returns the size of the message content excluding any meta data, in bytes.
-*/
+*/
uint QMailMessage::contentSize() const
{
return customField("qtopiamail-content-size").toUInt();
@@ -6772,7 +6773,7 @@ void QMailMessage::setContentSize(uint size)
/*!
Returns a value by which the external location of the message can be referenced, if available.
-*/
+*/
QString QMailMessage::externalLocationReference() const
{
return customField("qtopiamail-external-location-reference");
@@ -6800,30 +6801,30 @@ bool QMailMessage::partialContentAvailable() const
// The QMMMetaData half of this object is implemented in a QMailMessageMetaDataPrivate object
/*! \internal */
-QMailMessageMetaDataPrivate* QMailMessage::metaDataImpl()
-{
- return QMailMessageMetaData::impl<QMailMessageMetaDataPrivate>();
+QMailMessageMetaDataPrivate* QMailMessage::metaDataImpl()
+{
+ return QMailMessageMetaData::impl<QMailMessageMetaDataPrivate>();
}
/*! \internal */
-const QMailMessageMetaDataPrivate* QMailMessage::metaDataImpl() const
-{
- return QMailMessageMetaData::impl<const QMailMessageMetaDataPrivate>();
+const QMailMessageMetaDataPrivate* QMailMessage::metaDataImpl() const
+{
+ return QMailMessageMetaData::impl<const QMailMessageMetaDataPrivate>();
}
// The QMMPartContainer half of this object is implemented in a QMailMessagePrivate object
/*! \internal */
-QMailMessagePrivate* QMailMessage::partContainerImpl()
-{
- return QMailMessagePartContainer::impl<QMailMessagePrivate>();
+QMailMessagePrivate* QMailMessage::partContainerImpl()
+{
+ return QMailMessagePartContainer::impl<QMailMessagePrivate>();
}
/*! \internal */
-const QMailMessagePrivate* QMailMessage::partContainerImpl() const
-{
- return QMailMessagePartContainer::impl<const QMailMessagePrivate>();
+const QMailMessagePrivate* QMailMessage::partContainerImpl() const
+{
+ return QMailMessagePartContainer::impl<const QMailMessagePrivate>();
}
-
+
/*! \internal */
bool QMailMessage::contentModified() const
{
@@ -6899,11 +6900,11 @@ QMailMessage QMailMessage::fromRfc2822(LongString& ls)
return mail;
}
-/*!
+/*!
\fn QMailMessage::serialize(Stream&) const
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessage::serialize(Stream &stream) const
{
metaDataImpl()->serialize(stream);
@@ -6912,11 +6913,11 @@ void QMailMessage::serialize(Stream &stream) const
template void QMailMessage::serialize(QDataStream &) const;
-/*!
+/*!
\fn QMailMessage::deserialize(Stream&)
- \internal
+ \internal
*/
-template <typename Stream>
+template <typename Stream>
void QMailMessage::deserialize(Stream &stream)
{
metaDataImpl()->deserialize(stream);
diff --git a/src/messaging/win32wce/qmailmessagefwd.cpp b/src/messaging/win32wce/qmailmessagefwd.cpp
index a77111c4c9..3fc53a0bc4 100644
--- a/src/messaging/win32wce/qmailmessagefwd.cpp
+++ b/src/messaging/win32wce/qmailmessagefwd.cpp
@@ -42,14 +42,15 @@
/*!
\class QMailMessageHeaderFieldFwd
\brief The QMailMessageHeaderFieldFwd class declares enumerations used by QMailMessageHeaderField
-
- QMailMessageHeaderFieldFwd allows QMailMessageHeaderField::FieldType
+ \since 1.1
+
+ QMailMessageHeaderFieldFwd allows QMailMessageHeaderField::FieldType
to be used without including all of \c qmailmessage.h.
*/
/*!
\enum QMailMessageHeaderFieldFwd::FieldType
-
+
This enum type is used to describe the formatting of field content.
\value StructuredField The field content should be parsed assuming it is structured according to the specification for RFC 2045 'Content-Type' fields.
@@ -59,14 +60,14 @@
/*!
\class QMailMessageContentDispositionFwd
\brief The QMailMessageContentDispositionFwd class declares enumerations used by QMailMessageContentDisposition
-
- QMailMessageContentDispositionFwd allows QMailMessageContentDisposition::DispositionType
+
+ QMailMessageContentDispositionFwd allows QMailMessageContentDisposition::DispositionType
to be used without including all of \c qmailmessage.h.
*/
/*!
\enum QMailMessageContentDispositionFwd::DispositionType
-
+
This enum type is used to describe the disposition of a message part.
\value Attachment The part data should be presented as an attachment.
@@ -77,16 +78,16 @@
/*!
\class QMailMessageBodyFwd
\brief The QMailMessageBodyFwd class declares enumerations used by QMailMessageBody
-
+
QMailMessageBodyFwd allows QMailMessageBody::TransferEncoding and QMailMessageBody::EncodingStatus
to be used without including all of \c qmailmessage.h.
*/
/*!
\enum QMailMessageBodyFwd::TransferEncoding
-
+
This enum type is used to describe a type of binary to text encoding.
- Encoding types used here are documented in
+ Encoding types used here are documented in
\l {http://www.ietf.org/rfc/rfc2045.txt}{RFC 2045} "Format of Internet Message Bodies"
\value NoEncoding The encoding is not specified.
@@ -101,7 +102,7 @@
/*!
\enum QMailMessageBodyFwd::EncodingStatus
-
+
This enum type is used to describe the encoding status of body data.
\value AlreadyEncoded The body data is already encoded to the necessary encoding.
@@ -110,17 +111,17 @@
/*!
\enum QMailMessageBodyFwd::EncodingFormat
-
+
This enum type is used to describe the format in which body data should be presented.
- \value Encoded The body data should be presented in encoded form.
- \value Decoded The body data should be presented in unencoded form.
+ \value Encoded The body data should be presented in encoded form.
+ \value Decoded The body data should be presented in unencoded form.
*/
/*!
\class QMailMessagePartContainerFwd
\brief The QMailMessagePartContainerFwd class declares enumerations used by QMailMessagePartContainer
-
+
QMailMessagePartContainerFwd allows QMailMessagePartContainerFwd::MultipartType
to be used without including all of \c qmailmessage.h.
*/
@@ -143,9 +144,9 @@
*/
/*!
- \class QMailMessagePartFwd
+ \class QMailMessagePartFwd
\brief The QMailMessagePartFwd class declares enumerations used by QMailMessagePart
-
+
QMailMessagePartFwd allows QMailMessagePartFwd::ReferenceType
to be used without including all of \c qmailmessage.h.
*/
@@ -163,7 +164,7 @@
/*!
\class QMailMessageMetaDataFwd
\brief The QMailMessageMetaDataFwd class declares enumerations used by QMailMessageMetaData
-
+
QMailMessageMetaDataFwd allows QMailMessageMetaData::MessageType, QMailMessageMetaData::ContentType and QMailMessageMetaData::ResponseType
to be used without including all of \c qmailmessage.h.
*/
@@ -222,7 +223,7 @@
/*!
\class QMailMessageFwd
\brief The QMailMessageFwd class declares enumerations used by QMailMessage
-
+
QMailMessageFwd allows QMailMessage::AttachmentsAction and QMailMessage::EncodingFormat
to be used without including all of \c qmailmessage.h.
*/
@@ -230,14 +231,14 @@
/*!
\enum QMailMessageFwd::AttachmentsAction
- This enum type is used to describe the action that should be performed on
+ This enum type is used to describe the action that should be performed on
each message attachment.
- \value LinkToAttachments Add a part to the message containing a link to the
- supplied attachment. If the document is removed, the
+ \value LinkToAttachments Add a part to the message containing a link to the
+ supplied attachment. If the document is removed, the
message will no longer have access to the data.
\value CopyAttachments Add a part to the message containing a copy of the
- data in the supplied attachment. If the document is
+ data in the supplied attachment. If the document is
removed, the message will still contain the data.
\value CopyAndDeleteAttachments Add a part to the message containing a copy of the
data in the supplied attachment, then delete the
@@ -246,7 +247,7 @@
/*!
\enum QMailMessageFwd::EncodingFormat
-
+
This enum type is used to describe the format in which a message should be serialized.
\value HeaderOnlyFormat Only the header portion of the message is serialized, to RFC 2822 form.
@@ -257,7 +258,7 @@
/*!
\enum QMailMessageFwd::ChunkType
-
+
This enum type is used to denote the content of a single chunk in a partitioned output sequence.
\value Text The chunk contains verbatim output text.
diff --git a/src/messaging/win32wce/qmailtimestamp.cpp b/src/messaging/win32wce/qmailtimestamp.cpp
index d4fa5da66b..298e11591a 100644
--- a/src/messaging/win32wce/qmailtimestamp.cpp
+++ b/src/messaging/win32wce/qmailtimestamp.cpp
@@ -153,7 +153,7 @@ QMailTimeStampPrivate::QMailTimeStampPrivate(const QString& timeText)
year = value;
if ( year < 100 ) {
year += ( year <= 49 ? 2000 : 1900 );
- }
+ }
else if ( year < 1000 ) {
year += 1900;
}
@@ -172,10 +172,10 @@ QMailTimeStampPrivate::QMailTimeStampPrivate(const QString& timeText)
QTime timeComponent;
QTime parsedTime;
- if ( timeStr.length() == 8 ) {
+ if ( timeStr.length() == 8 ) {
parsedTime = QTime::fromString( timeStr, "hh:mm:ss" );
}
- else if ( timeStr.length() == 5 ) {
+ else if ( timeStr.length() == 5 ) {
// Is this legal? Either way, it seems desirable for robustness...
parsedTime = QTime::fromString( timeStr, "hh:mm" );
}
@@ -228,7 +228,7 @@ QMailTimeStampPrivate::QMailTimeStampPrivate(const QDateTime& dateTime)
}
QMailTimeStampPrivate::QMailTimeStampPrivate(const QMailTimeStampPrivate& other)
- : QSharedData(other)
+ : QSharedData(other)
{
this->operator=(other);
}
@@ -339,10 +339,11 @@ bool QMailTimeStampPrivate::operator>= (const QMailTimeStampPrivate& other) cons
\brief The QMailTimeStamp class manages message time stamps.
\ingroup messaginglibrary
+ \since 1.1
QMailTimeStamp provides functions for creating and manipulating the time stamps of messages.
- QMailTimeStamp can be created from time stamp strings, or from QDateTime objects. The
- time stamp information can be extracted in UTC time, local time, or as a formatted
+ QMailTimeStamp can be created from time stamp strings, or from QDateTime objects. The
+ time stamp information can be extracted in UTC time, local time, or as a formatted
string.
QMailTimeStamp maintains the timezone information of a time stamp, so it can be used to
@@ -353,7 +354,7 @@ bool QMailTimeStampPrivate::operator>= (const QMailTimeStampPrivate& other) cons
/*!
\enum QMailTimeStamp::OutputFormat
-
+
This enum type is used to select a format for timestamp output.
\value Rfc2822 The format used in SMTP message format; example: "Wed, 17 May 2006 20:45:00 +0100".
diff --git a/src/multimedia/audio/qaudiodeviceinfo.cpp b/src/multimedia/audio/qaudiodeviceinfo.cpp
index 8efbe5b131..c0e2ed9f16 100644
--- a/src/multimedia/audio/qaudiodeviceinfo.cpp
+++ b/src/multimedia/audio/qaudiodeviceinfo.cpp
@@ -125,8 +125,8 @@ public:
functions defaultInputDevice(), defaultOutputDevice(), and
availableDevices() let you get a list of all available
devices. Devices are fetch according to the value of mode
- this is specified by the QAudio::Mode enum.
- The QAudioDeviceInfo returned are only valid for the QAudio::Mode.
+ this is specified by the \l {QAudio}::Mode enum.
+ The QAudioDeviceInfo returned are only valid for the \l {QAudio}::Mode.
For instance:
@@ -213,7 +213,7 @@ bool QAudioDeviceInfo::isFormatSupported(const QAudioFormat &settings) const
These settings are provided by the platform/audio plugin being used.
- They also are dependent on the QAudio::Mode being used.
+ They also are dependent on the \l {QAudio}::Mode being used.
A typical audio system would provide something like:
\list
@@ -232,7 +232,7 @@ QAudioFormat QAudioDeviceInfo::preferredFormat() const
These settings are provided by the platform/audio plugin being used.
- They also are dependent on the QAudio::Mode being used.
+ They also are dependent on the \l {QAudio}::Mode being used.
*/
QAudioFormat QAudioDeviceInfo::nearestFormat(const QAudioFormat &settings) const
diff --git a/src/multimedia/audio/qaudiosystem.cpp b/src/multimedia/audio/qaudiosystem.cpp
index 1fd0a80418..2eb3bf6f27 100644
--- a/src/multimedia/audio/qaudiosystem.cpp
+++ b/src/multimedia/audio/qaudiosystem.cpp
@@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE
\ingroup multimedia
\inmodule QtMultimediaKit
\internal
+ \since 1.0
This class implements the audio functionality for
QAudioDeviceInfo, i.e., QAudioDeviceInfo keeps a
diff --git a/src/multimedia/effects/qsamplecache_p.cpp b/src/multimedia/effects/qsamplecache_p.cpp
index e72cc31820..dff9bc87b5 100644
--- a/src/multimedia/effects/qsamplecache_p.cpp
+++ b/src/multimedia/effects/qsamplecache_p.cpp
@@ -53,6 +53,8 @@ QT_BEGIN_NAMESPACE
When you want to get a sound sample data, you need to request the QSample reference from QSampleCache.
+ \since 1.1
+
\code
QSample *m_sample; // class member.
diff --git a/src/multimedia/qaudiocapturesource.cpp b/src/multimedia/qaudiocapturesource.cpp
index 5981ee365b..1d70bbe764 100644
--- a/src/multimedia/qaudiocapturesource.cpp
+++ b/src/multimedia/qaudiocapturesource.cpp
@@ -50,8 +50,9 @@ QT_BEGIN_NAMESPACE
\brief The QAudioCaptureSource class provides an interface to query and select an audio input endpoint.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
QAudioCaptureSource provides access to the audio inputs available on your system.
diff --git a/src/multimedia/qaudioencodercontrol.cpp b/src/multimedia/qaudioencodercontrol.cpp
index 515156f7ce..fd3bc21f03 100644
--- a/src/multimedia/qaudioencodercontrol.cpp
+++ b/src/multimedia/qaudioencodercontrol.cpp
@@ -49,8 +49,9 @@ QT_BEGIN_NAMESPACE
\class QAudioEncoderControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QAudioEncoderControl class provides access to the settings of a
media service that performs audio encoding.
diff --git a/src/multimedia/qaudioendpointselector.cpp b/src/multimedia/qaudioendpointselector.cpp
index 1796e80939..cad0b30cb2 100644
--- a/src/multimedia/qaudioendpointselector.cpp
+++ b/src/multimedia/qaudioendpointselector.cpp
@@ -45,10 +45,11 @@ QT_BEGIN_NAMESPACE
/*!
\class QAudioEndpointSelector
-
+
\brief The QAudioEndpointSelector class provides an audio endpoint selector media control.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
The QAudioEndpointSelector class provides descriptions of the audio
endpoints available on a system and allows one to be selected as the audio
diff --git a/src/multimedia/qaudionamespace.qdoc b/src/multimedia/qaudionamespace.qdoc
new file mode 100644
index 0000000000..32ceb5c6ca
--- /dev/null
+++ b/src/multimedia/qaudionamespace.qdoc
@@ -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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 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$
+**
+****************************************************************************/
+
+
+
+/*!
+ \namespace QAudio
+ \brief The QAudio namespace contains enums used by the audio classes.
+ \inmodule QtMultimediaKit
+ \ingroup multimedia
+*/
+
+/*
+ \enum QAudio::Error
+
+ Error states
+
+ \value NoError No errors have occurred
+ \value OpenError An error opening the audio device
+ \value IOError An error occurred during read/write of audio device
+ \value UnderrunError Audio data is not being fed to the audio device at a fast enough rate
+ \value FatalError A non-recoverable error has occurred, the audio device is not usable at this time.
+*/
+
+/*
+ \enum QAudio::State
+
+ Audio processing states
+
+ \value ActiveState Audio data is being processed, this state is set after start() is called
+ and while audio data is available to be processed.
+ \value SuspendedState The audio device is in a suspended state, this state will only be entered
+ after suspend() is called.
+ \value StoppedState The audio device is closed, not processing any audio data
+ \value IdleState The QIODevice passed in has no data and audio system's buffer is empty, this state
+ is set after start() is called and while no audio data is available to be processed.
+*/
+
+/*
+ \enum QAudio::Mode
+
+ Audio I/O modes
+
+ \value AudioOutput audio output device
+ \value AudioInput audio input device
+*/
diff --git a/src/multimedia/qcamera.cpp b/src/multimedia/qcamera.cpp
index f942b88f6a..ed526bef05 100644
--- a/src/multimedia/qcamera.cpp
+++ b/src/multimedia/qcamera.cpp
@@ -68,6 +68,7 @@ public:
qRegisterMetaType<QCamera::Error>("QCamera::Error");
qRegisterMetaType<QCamera::State>("QCamera::State");
qRegisterMetaType<QCamera::Status>("QCamera::Status");
+ qRegisterMetaType<QCamera::CaptureMode>("QCamera::CaptureMode");
qRegisterMetaType<QCamera::LockType>("QCamera::LockType");
qRegisterMetaType<QCamera::LockStatus>("QCamera::LockStatus");
qRegisterMetaType<QCamera::LockChangeReason>("QCamera::LockChangeReason");
@@ -84,6 +85,7 @@ public:
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
QCamera can be used with QVideoWidget for viewfinder display,
QMediaRecorder for video recording and QCameraImageCapture for image taking.
diff --git a/src/multimedia/qcameracontrol.cpp b/src/multimedia/qcameracontrol.cpp
index 5a8856b5f7..431a4fe68b 100644
--- a/src/multimedia/qcameracontrol.cpp
+++ b/src/multimedia/qcameracontrol.cpp
@@ -54,6 +54,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
This service is provided by a QMediaService object via
QMediaService::control(). It is used by QCamera.
diff --git a/src/multimedia/qcameraexposure.cpp b/src/multimedia/qcameraexposure.cpp
index c31fa46f8d..34e02395f3 100644
--- a/src/multimedia/qcameraexposure.cpp
+++ b/src/multimedia/qcameraexposure.cpp
@@ -59,6 +59,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
*/
diff --git a/src/multimedia/qcameraexposurecontrol.cpp b/src/multimedia/qcameraexposurecontrol.cpp
index bb89d4ea7b..2ce98dc895 100644
--- a/src/multimedia/qcameraexposurecontrol.cpp
+++ b/src/multimedia/qcameraexposurecontrol.cpp
@@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
The interface name of QCameraExposureControl is \c com.nokia.Qt.QCameraExposureControl/1.0 as
defined in QCameraExposureControl_iid.
diff --git a/src/multimedia/qcameraflashcontrol.cpp b/src/multimedia/qcameraflashcontrol.cpp
index a35d0d16e5..0b548b1a9e 100644
--- a/src/multimedia/qcameraflashcontrol.cpp
+++ b/src/multimedia/qcameraflashcontrol.cpp
@@ -52,6 +52,7 @@ QT_BEGIN_NAMESPACE
\ingroup camera
\inmodule QtMultimediaKit
+ \since 1.1
The interface name of QCameraFlashControl is \c com.nokia.Qt.QCameraFlashControl/1.0 as
defined in QCameraFlashControl_iid.
diff --git a/src/multimedia/qcamerafocus.cpp b/src/multimedia/qcamerafocus.cpp
index 65a48db624..a67b372333 100644
--- a/src/multimedia/qcamerafocus.cpp
+++ b/src/multimedia/qcamerafocus.cpp
@@ -172,6 +172,7 @@ void QCameraFocusZone::setStatus(QCameraFocusZone::FocusZoneStatus status)
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
*/
diff --git a/src/multimedia/qcamerafocuscontrol.cpp b/src/multimedia/qcamerafocuscontrol.cpp
index dc3f900b4a..9ee1720297 100644
--- a/src/multimedia/qcamerafocuscontrol.cpp
+++ b/src/multimedia/qcamerafocuscontrol.cpp
@@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
The interface name of QCameraFocusControl is \c com.nokia.Qt.QCameraFocusControl/1.0 as
defined in QCameraFocusControl_iid.
diff --git a/src/multimedia/qcameraimagecapture.cpp b/src/multimedia/qcameraimagecapture.cpp
index fe9bc8d348..0f43adaaf2 100644
--- a/src/multimedia/qcameraimagecapture.cpp
+++ b/src/multimedia/qcameraimagecapture.cpp
@@ -60,8 +60,9 @@ QT_BEGIN_NAMESPACE
\class QCameraImageCapture
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.1
+
-
\brief The QCameraImageCapture class is used for the recording of media content.
The QCameraImageCapture class is a high level images recording class.
diff --git a/src/multimedia/qcameraimagecapturecontrol.cpp b/src/multimedia/qcameraimagecapturecontrol.cpp
index cf673a41ec..7d40bb1238 100644
--- a/src/multimedia/qcameraimagecapturecontrol.cpp
+++ b/src/multimedia/qcameraimagecapturecontrol.cpp
@@ -52,6 +52,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
diff --git a/src/multimedia/qcameraimageprocessing.cpp b/src/multimedia/qcameraimageprocessing.cpp
index df1b17c39c..212425fb44 100644
--- a/src/multimedia/qcameraimageprocessing.cpp
+++ b/src/multimedia/qcameraimageprocessing.cpp
@@ -63,6 +63,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
*/
diff --git a/src/multimedia/qcameraimageprocessingcontrol.cpp b/src/multimedia/qcameraimageprocessingcontrol.cpp
index d79fa374e8..18b3581807 100644
--- a/src/multimedia/qcameraimageprocessingcontrol.cpp
+++ b/src/multimedia/qcameraimageprocessingcontrol.cpp
@@ -48,6 +48,7 @@ QT_BEGIN_NAMESPACE
\class QCameraImageProcessingControl
\inmodule QtMultimediaKit
\ingroup multimedia-serv
+ \since 1.1
\brief The QCameraImageProcessingControl class provides an abstract class
diff --git a/src/multimedia/qcameralockscontrol.cpp b/src/multimedia/qcameralockscontrol.cpp
index fd2683fe14..bf00d07cdd 100644
--- a/src/multimedia/qcameralockscontrol.cpp
+++ b/src/multimedia/qcameralockscontrol.cpp
@@ -54,6 +54,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
This service is provided by a QMediaService object via
QMediaService::control(). It is used by QCamera.
diff --git a/src/multimedia/qcameraviewfinder.cpp b/src/multimedia/qcameraviewfinder.cpp
index 5707e1a0c4..121f05b9cc 100644
--- a/src/multimedia/qcameraviewfinder.cpp
+++ b/src/multimedia/qcameraviewfinder.cpp
@@ -58,6 +58,7 @@ QT_USE_NAMESPACE
\inmodule QtMultimediaKit
\ingroup camera
+ \since 1.1
\snippet doc/src/snippets/multimedia-snippets/camera.cpp Camera
diff --git a/src/multimedia/qgraphicsvideoitem.cpp b/src/multimedia/qgraphicsvideoitem.cpp
index ba34f39013..46f0fe7661 100644
--- a/src/multimedia/qgraphicsvideoitem.cpp
+++ b/src/multimedia/qgraphicsvideoitem.cpp
@@ -178,6 +178,7 @@ void QGraphicsVideoItemPrivate::_q_serviceDestroyed()
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
Attaching a QGraphicsVideoItem to a QMediaObject allows it to display
the video or image output of that media object. A QGraphicsVideoItem
diff --git a/src/multimedia/qimageencodercontrol.cpp b/src/multimedia/qimageencodercontrol.cpp
index ee449dce8c..6442bfdcea 100644
--- a/src/multimedia/qimageencodercontrol.cpp
+++ b/src/multimedia/qimageencodercontrol.cpp
@@ -46,9 +46,10 @@ QT_BEGIN_NAMESPACE
/*!
\class QImageEncoderControl
-
+
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
\brief The QImageEncoderControl class provides access to the settings of a media service that
performs image encoding.
diff --git a/src/multimedia/qmediabindableinterface.cpp b/src/multimedia/qmediabindableinterface.cpp
index 6f048a9900..56ad751b5c 100644
--- a/src/multimedia/qmediabindableinterface.cpp
+++ b/src/multimedia/qmediabindableinterface.cpp
@@ -47,8 +47,9 @@ QT_BEGIN_NAMESPACE
\class QMediaBindableInterface
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaBindableInterface class is the base class for objects extending media objects functionality.
\sa
diff --git a/src/multimedia/qmediacontainercontrol.cpp b/src/multimedia/qmediacontainercontrol.cpp
index e3348a2f2e..3fa4cadb71 100644
--- a/src/multimedia/qmediacontainercontrol.cpp
+++ b/src/multimedia/qmediacontainercontrol.cpp
@@ -46,11 +46,12 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaContainerControl
-
+
\brief The QMediaContainerControl class provides access to the output container format of a QMediaService
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
If a QMediaService supports writing encoded data it will implement
QMediaContainerControl. This control provides information about the output
diff --git a/src/multimedia/qmediacontent.cpp b/src/multimedia/qmediacontent.cpp
index 96f15a73d8..c0516c62bb 100644
--- a/src/multimedia/qmediacontent.cpp
+++ b/src/multimedia/qmediacontent.cpp
@@ -72,11 +72,12 @@ private:
/*!
\class QMediaContent
-
+
\brief The QMediaContent class provides access to the resources relating to a media content.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
QMediaContent is used within the multimedia framework as the logical handle
to media content. A QMediaContent object is composed of one or more
diff --git a/src/multimedia/qmediacontrol.cpp b/src/multimedia/qmediacontrol.cpp
index 8a62801c73..55f6e131d8 100644
--- a/src/multimedia/qmediacontrol.cpp
+++ b/src/multimedia/qmediacontrol.cpp
@@ -53,8 +53,9 @@ QT_BEGIN_NAMESPACE
\class QMediaControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaControl class provides a base interface for media service controls.
Media controls provide an interface to individual features provided by a
diff --git a/src/multimedia/qmediaencodersettings.cpp b/src/multimedia/qmediaencodersettings.cpp
index 5efd076a75..11aef00a14 100644
--- a/src/multimedia/qmediaencodersettings.cpp
+++ b/src/multimedia/qmediaencodersettings.cpp
@@ -87,6 +87,7 @@ private:
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
A audio encoder settings object is used to specify the audio encoder
settings used by QMediaRecorder. Audio encoder settings are selected by
diff --git a/src/multimedia/qmediaimageviewer.cpp b/src/multimedia/qmediaimageviewer.cpp
index 386aca567a..83aa166133 100644
--- a/src/multimedia/qmediaimageviewer.cpp
+++ b/src/multimedia/qmediaimageviewer.cpp
@@ -139,7 +139,8 @@ void QMediaImageViewerPrivate::_q_playlistDestroyed()
\brief The QMediaImageViewer class provides a means of viewing image media.
\inmodule QtMultimediaKit
\ingroup multimedia
-
+ \since 1.0
+
QMediaImageViewer is used together with a media display object such as
QVideoWidget to present an image. A display object is attached to the
diff --git a/src/multimedia/qmediaimageviewerservice.cpp b/src/multimedia/qmediaimageviewerservice.cpp
index 5aa2cee230..7a374e7125 100644
--- a/src/multimedia/qmediaimageviewerservice.cpp
+++ b/src/multimedia/qmediaimageviewerservice.cpp
@@ -176,6 +176,7 @@ void QMediaImageViewerServicePrivate::clear()
/*!
\class QMediaImageViewerService
+ \since 1.0
\internal
*/
diff --git a/src/multimedia/qmedianetworkaccesscontrol.cpp b/src/multimedia/qmedianetworkaccesscontrol.cpp
index 2275a69484..847819358d 100644
--- a/src/multimedia/qmedianetworkaccesscontrol.cpp
+++ b/src/multimedia/qmedianetworkaccesscontrol.cpp
@@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE
\brief The QMediaNetworkAccessControl class allows the setting of the Network Access Point for media related activities.
\ingroup multimedia
\inmodule QtMultimediaKit
+ \since 1.2
The functionality provided by this control allows the
setting of a Network Access Point.
diff --git a/src/multimedia/qmediaobject.cpp b/src/multimedia/qmediaobject.cpp
index 41787d89bd..0dedabcfec 100644
--- a/src/multimedia/qmediaobject.cpp
+++ b/src/multimedia/qmediaobject.cpp
@@ -67,11 +67,12 @@ void QMediaObjectPrivate::_q_notify()
/*!
\class QMediaObject
-
+
\brief The QMediaObject class provides a common base for multimedia objects.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
QMediaObject derived classes provide access to the functionality of a
QMediaService. Each media object hosts a QMediaService and uses the
diff --git a/src/multimedia/qmediaplayer.cpp b/src/multimedia/qmediaplayer.cpp
index 1828d07926..8d9a42a937 100644
--- a/src/multimedia/qmediaplayer.cpp
+++ b/src/multimedia/qmediaplayer.cpp
@@ -67,8 +67,9 @@ QT_BEGIN_NAMESPACE
\brief The QMediaPlayer class allows the playing of a media source.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
The QMediaPlayer class is a high level media playback class. It can be used
to playback such content as songs, movies and internet radio. The content
diff --git a/src/multimedia/qmediaplayercontrol.cpp b/src/multimedia/qmediaplayercontrol.cpp
index 5d0a7bace2..69592d9d9f 100644
--- a/src/multimedia/qmediaplayercontrol.cpp
+++ b/src/multimedia/qmediaplayercontrol.cpp
@@ -50,8 +50,9 @@ QT_BEGIN_NAMESPACE
\class QMediaPlayerControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaPlayerControl class provides access to the media playing
functionality of a QMediaService.
diff --git a/src/multimedia/qmediaplaylist.cpp b/src/multimedia/qmediaplaylist.cpp
index 94f303c2f4..8ea66f765b 100644
--- a/src/multimedia/qmediaplaylist.cpp
+++ b/src/multimedia/qmediaplaylist.cpp
@@ -66,8 +66,9 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMediaPluginLoader, playlistIOLoader,
\class QMediaPlaylist
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaPlaylist class provides a list of media content to play.
QMediaPlaylist is intended to be used with other media objects,
@@ -105,7 +106,7 @@ Q_GLOBAL_STATIC_WITH_ARGS(QMediaPluginLoader, playlistIOLoader,
/*!
- Create a new playlist object for with the given \a parent.
+ Create a new playlist object for with the given \a parent.
*/
QMediaPlaylist::QMediaPlaylist(QObject *parent)
diff --git a/src/multimedia/qmediaplaylistcontrol.cpp b/src/multimedia/qmediaplaylistcontrol.cpp
index 21823e5597..e39222ca11 100644
--- a/src/multimedia/qmediaplaylistcontrol.cpp
+++ b/src/multimedia/qmediaplaylistcontrol.cpp
@@ -49,8 +49,9 @@ QT_BEGIN_NAMESPACE
\class QMediaPlaylistControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaPlaylistControl class provides access to the playlist
functionality of a QMediaService.
diff --git a/src/multimedia/qmediaplaylistioplugin.cpp b/src/multimedia/qmediaplaylistioplugin.cpp
index 9d4fcc9861..2b91ab823f 100644
--- a/src/multimedia/qmediaplaylistioplugin.cpp
+++ b/src/multimedia/qmediaplaylistioplugin.cpp
@@ -48,6 +48,7 @@ QT_BEGIN_NAMESPACE
\brief The QMediaPlaylistReader class provides an interface for reading a playlist file.
\inmodule QtMultimediaKit
+ \since 1.0
\sa QMediaPlaylistIOPlugin
*/
diff --git a/src/multimedia/qmediaplaylistnavigator.cpp b/src/multimedia/qmediaplaylistnavigator.cpp
index 3d5fe0c664..a66b04e307 100644
--- a/src/multimedia/qmediaplaylistnavigator.cpp
+++ b/src/multimedia/qmediaplaylistnavigator.cpp
@@ -192,9 +192,11 @@ int QMediaPlaylistNavigatorPrivate::previousItemPos(int steps) const
/*!
\class QMediaPlaylistNavigator
-
+
\brief The QMediaPlaylistNavigator class provides navigation for a media playlist.
\inmodule QtMultimediaKit
+ \ingroup multimedia
+ \since 1.0
\sa QMediaPlaylist, QMediaPlaylistProvider
*/
diff --git a/src/multimedia/qmediaplaylistprovider.cpp b/src/multimedia/qmediaplaylistprovider.cpp
index 1564b3e9a7..8b821d3854 100644
--- a/src/multimedia/qmediaplaylistprovider.cpp
+++ b/src/multimedia/qmediaplaylistprovider.cpp
@@ -48,9 +48,10 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaPlaylistProvider
-
+
\brief The QMediaPlaylistProvider class provides an abstract list of media.
\inmodule QtMultimediaKit
+ \since 1.0
\sa QMediaPlaylist
*/
diff --git a/src/multimedia/qmediaplaylistsourcecontrol.cpp b/src/multimedia/qmediaplaylistsourcecontrol.cpp
index 2db83a88c6..24028d34e4 100644
--- a/src/multimedia/qmediaplaylistsourcecontrol.cpp
+++ b/src/multimedia/qmediaplaylistsourcecontrol.cpp
@@ -49,8 +49,9 @@ QT_BEGIN_NAMESPACE
\class QMediaPlaylistSourceControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaPlaylistSourceControl class provides access to the playlist playback
functionality of a QMediaService.
diff --git a/src/multimedia/qmediarecorder.cpp b/src/multimedia/qmediarecorder.cpp
index 51918f3eca..d9edffd416 100644
--- a/src/multimedia/qmediarecorder.cpp
+++ b/src/multimedia/qmediarecorder.cpp
@@ -65,8 +65,9 @@ QT_BEGIN_NAMESPACE
\class QMediaRecorder
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaRecorder class is used for the recording of media content.
The QMediaRecorder class is a high level media recording class. It's not
@@ -320,7 +321,7 @@ bool QMediaRecorder::setMediaObject(QMediaObject *object)
connect(service, SIGNAL(destroyed()), this, SLOT(_q_serviceDestroyed()));
-
+
return true;
}
}
diff --git a/src/multimedia/qmediarecordercontrol.cpp b/src/multimedia/qmediarecordercontrol.cpp
index 0f6c60fafb..57306e110e 100644
--- a/src/multimedia/qmediarecordercontrol.cpp
+++ b/src/multimedia/qmediarecordercontrol.cpp
@@ -48,8 +48,9 @@ QT_BEGIN_NAMESPACE
\class QMediaRecorderControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMediaRecorderControl class provides access to the recording
functionality of a QMediaService.
diff --git a/src/multimedia/qmediaresource.cpp b/src/multimedia/qmediaresource.cpp
index 22163d251c..c907a6047d 100644
--- a/src/multimedia/qmediaresource.cpp
+++ b/src/multimedia/qmediaresource.cpp
@@ -49,10 +49,11 @@ QT_BEGIN_NAMESPACE
/*!
\class QMediaResource
-
+
\brief The QMediaResource class provides a description of a media resource.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
A media resource is composed of a \l {url()}{URL} containing the
location of the resource and a set of properties that describe the
diff --git a/src/multimedia/qmediaservice.cpp b/src/multimedia/qmediaservice.cpp
index fedabddcb0..22eb8a93ee 100644
--- a/src/multimedia/qmediaservice.cpp
+++ b/src/multimedia/qmediaservice.cpp
@@ -55,7 +55,8 @@ QT_BEGIN_NAMESPACE
service implementations.
\inmodule QtMultimediaKit
\ingroup multimedia
-
+ \since 1.0
+
Media services provide implementations of the functionality promised
by media objects, and allow multiple providers to implement a QMediaObject.
diff --git a/src/multimedia/qmediaserviceprovider.cpp b/src/multimedia/qmediaserviceprovider.cpp
index 1e87750b0b..12389102f3 100644
--- a/src/multimedia/qmediaserviceprovider.cpp
+++ b/src/multimedia/qmediaserviceprovider.cpp
@@ -81,11 +81,12 @@ public:
/*!
\class QMediaServiceProviderHint
-
+
\brief The QMediaServiceProviderHint class describes what is required of a QMediaService.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
The QMediaServiceProvider class uses hints to select an appropriate media service.
*/
@@ -523,7 +524,7 @@ Q_GLOBAL_STATIC(QPluginServiceProvider, pluginProvider);
/*!
\class QMediaServiceProvider
-
+
\brief The QMediaServiceProvider class provides an abstract allocator for media services.
*/
@@ -637,7 +638,7 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider()
/*!
\class QMediaServiceProviderPlugin
-
+
\brief The QMediaServiceProviderPlugin class interface provides an interface for QMediaService
plug-ins.
diff --git a/src/multimedia/qmediastreamscontrol.cpp b/src/multimedia/qmediastreamscontrol.cpp
index aa0efd71eb..7b0c0a04a5 100644
--- a/src/multimedia/qmediastreamscontrol.cpp
+++ b/src/multimedia/qmediastreamscontrol.cpp
@@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE
\brief The QMediaStreamsControl class provides a media stream selection control.
\ingroup multimedia
+ \since 1.0
The QMediaStreamsControl class provides descriptions of the available media streams
and allows individual streams to be activated and deactivated.
diff --git a/src/multimedia/qmediatimerange.cpp b/src/multimedia/qmediatimerange.cpp
index dd5cb4ce6f..8ff7d0c190 100644
--- a/src/multimedia/qmediatimerange.cpp
+++ b/src/multimedia/qmediatimerange.cpp
@@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE
\brief The QMediaTimeInterval class represents a time interval with integer precision.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
An interval is specified by an inclusive start() and end() time. These
must be set in the constructor, as this is an immutable class. The
@@ -240,7 +241,7 @@ QMediaTimeRangePrivate::QMediaTimeRangePrivate(const QMediaTimeInterval &interva
}
void QMediaTimeRangePrivate::addInterval(const QMediaTimeInterval &interval)
-{
+{
// Handle normalized intervals only
if(!interval.isNormal())
return;
diff --git a/src/multimedia/qmetadatareadercontrol.cpp b/src/multimedia/qmetadatareadercontrol.cpp
index 70d06d20fb..cfc3bf8ac8 100644
--- a/src/multimedia/qmetadatareadercontrol.cpp
+++ b/src/multimedia/qmetadatareadercontrol.cpp
@@ -49,8 +49,9 @@ QT_BEGIN_NAMESPACE
\class QMetaDataReaderControl
\inmodule QtMultimediaKit
\ingroup multimedia-serv
+ \since 1.0
+
-
\brief The QMetaDataReaderControl class provides read access to the
meta-data of a QMediaService's media.
diff --git a/src/multimedia/qmetadatawritercontrol.cpp b/src/multimedia/qmetadatawritercontrol.cpp
index 812a9d0a88..6b9acde710 100644
--- a/src/multimedia/qmetadatawritercontrol.cpp
+++ b/src/multimedia/qmetadatawritercontrol.cpp
@@ -49,8 +49,9 @@ QT_BEGIN_NAMESPACE
\class QMetaDataWriterControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QMetaDataWriterControl class provides write access to the
meta-data of a QMediaService's media.
diff --git a/src/multimedia/qpaintervideosurface.cpp b/src/multimedia/qpaintervideosurface.cpp
index 6212d0ecbd..275259512d 100644
--- a/src/multimedia/qpaintervideosurface.cpp
+++ b/src/multimedia/qpaintervideosurface.cpp
@@ -1280,6 +1280,7 @@ QAbstractVideoSurface::Error QVideoSurfaceGlslPainter::paint(
/*!
\class QPainterVideoSurface
+ \since 1.0
\internal
*/
@@ -1387,7 +1388,7 @@ bool QPainterVideoSurface::present(const QVideoFrame &frame)
if (!m_ready) {
if (!isActive())
setError(StoppedError);
- } else if (frame.isValid()
+ } else if (frame.isValid()
&& (frame.pixelFormat() != m_pixelFormat || frame.size() != m_frameSize)) {
setError(IncorrectFormatError);
diff --git a/src/multimedia/qradiotuner.cpp b/src/multimedia/qradiotuner.cpp
index 0b9e91b277..24954c6dcc 100644
--- a/src/multimedia/qradiotuner.cpp
+++ b/src/multimedia/qradiotuner.cpp
@@ -55,6 +55,7 @@ QT_BEGIN_NAMESPACE
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
You can control the systems analog radio device using this interface, for example:
diff --git a/src/multimedia/qradiotunercontrol.cpp b/src/multimedia/qradiotunercontrol.cpp
index 06d0c38c24..3361443382 100644
--- a/src/multimedia/qradiotunercontrol.cpp
+++ b/src/multimedia/qradiotunercontrol.cpp
@@ -50,8 +50,9 @@ QT_BEGIN_NAMESPACE
\class QRadioTunerControl
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
+
-
\brief The QRadioTunerControl class provides access to the radio tuning
functionality of a QMediaService.
diff --git a/src/multimedia/qvideodevicecontrol.cpp b/src/multimedia/qvideodevicecontrol.cpp
index c46cae1104..1d2b185b9b 100644
--- a/src/multimedia/qvideodevicecontrol.cpp
+++ b/src/multimedia/qvideodevicecontrol.cpp
@@ -45,10 +45,11 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoDeviceControl
-
+
\brief The QVideoDeviceControl class provides an video device selector media control.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
The QVideoDeviceControl class provides descriptions of the video devices
available on a system and allows one to be selected as the endpoint of a
diff --git a/src/multimedia/qvideoencodercontrol.cpp b/src/multimedia/qvideoencodercontrol.cpp
index 97ae4b2329..ef999e8d67 100644
--- a/src/multimedia/qvideoencodercontrol.cpp
+++ b/src/multimedia/qvideoencodercontrol.cpp
@@ -47,9 +47,10 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoEncoderControl
-
+
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
\brief The QVideoEncoderControl class provides access to the settings
of a media service that performs video encoding.
diff --git a/src/multimedia/qvideorenderercontrol.cpp b/src/multimedia/qvideorenderercontrol.cpp
index 10f41539b5..4f6e7a51e5 100644
--- a/src/multimedia/qvideorenderercontrol.cpp
+++ b/src/multimedia/qvideorenderercontrol.cpp
@@ -47,13 +47,14 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoRendererControl
-
+
\brief The QVideoRendererControl class provides a control for rendering
to a video surface.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
Using the surface() property of QVideoRendererControl a
QAbstractVideoSurface may be set as the video render target of a
diff --git a/src/multimedia/qvideowidget.cpp b/src/multimedia/qvideowidget.cpp
index a738d39f87..6056b774a5 100644
--- a/src/multimedia/qvideowidget.cpp
+++ b/src/multimedia/qvideowidget.cpp
@@ -591,6 +591,7 @@ void QVideoWidgetPrivate::_q_dimensionsChanged()
produced by a media object.
\ingroup multimedia
\inmodule QtMultimediaKit
+ \since 1.0
Attaching a QVideoWidget to a QMediaObject allows it to display the
video or image output of that media object. A QVideoWidget is attached
diff --git a/src/multimedia/qvideowidgetcontrol.cpp b/src/multimedia/qvideowidgetcontrol.cpp
index 0e6a96b2cd..f40a7960ae 100644
--- a/src/multimedia/qvideowidgetcontrol.cpp
+++ b/src/multimedia/qvideowidgetcontrol.cpp
@@ -46,13 +46,14 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoWidgetControl
-
+
\brief The QVideoWidgetControl class provides a media control which
implements a video widget.
\inmodule QtMultimediaKit
\ingroup multimedia
+ \since 1.0
The videoWidget() property of QVideoWidgetControl provides a pointer to a
video widget implemented by the control's media service. This widget is
diff --git a/src/multimedia/qvideowindowcontrol.cpp b/src/multimedia/qvideowindowcontrol.cpp
index cdc2b8934a..7c1202b614 100644
--- a/src/multimedia/qvideowindowcontrol.cpp
+++ b/src/multimedia/qvideowindowcontrol.cpp
@@ -45,10 +45,11 @@ QT_BEGIN_NAMESPACE
/*!
\class QVideoWindowControl
-
+
\inmodule QtMultimediaKit
\ingroup multimedia
\brief The QVideoWindowControl class provides a media control for rendering video to a window.
+ \since 1.0
The winId() property QVideoWindowControl allows a platform specific window
diff --git a/src/multimedia/video/qmemoryvideobuffer.cpp b/src/multimedia/video/qmemoryvideobuffer.cpp
index 983d31ac94..242d1d05d1 100644
--- a/src/multimedia/video/qmemoryvideobuffer.cpp
+++ b/src/multimedia/video/qmemoryvideobuffer.cpp
@@ -64,6 +64,7 @@ public:
\class QMemoryVideoBuffer
\brief The QMemoryVideoBuffer class provides a system memory allocated video data buffer.
\internal
+ \since QtMobility 1.0
QMemoryVideoBuffer is the default video buffer for allocating system memory. It may be used to
allocate memory for a QVideoFrame without implementing your own QAbstractVideoBuffer.
diff --git a/src/organizer/details/qorganizeritemdetails.cpp b/src/organizer/details/qorganizeritemdetails.cpp
index 4eb2180a39..8e9f23b21e 100644
--- a/src/organizer/details/qorganizeritemdetails.cpp
+++ b/src/organizer/details/qorganizeritemdetails.cpp
@@ -57,6 +57,7 @@ QTM_BEGIN_NAMESPACE
\brief The QOrganizerItemDescription class contains some arbitrary information which is relevant to the organizer item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -95,6 +96,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemDescription::FieldDescription, "Descripti
\brief The QOrganizerItemDisplayLabel class contains the backend-synthesized display label of the organizer item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -151,6 +153,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemDisplayLabel::FieldLabel, "Label");
or occurrence of an event.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -238,6 +241,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerEventTime::FieldAllDay, "AllDay");
\brief The QOrganizerItemGuid class contains the globally unique identifier of the organizer item, which can be used for synchronization purposes.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -276,6 +280,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemGuid::FieldGuid, "Guid");
\brief The QOrganizerItemParent class contains information about the event or todo that generated this item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -332,6 +337,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemParent::FieldOriginalDate, "OriginalDate"
the date and time for which a journal entry has been created.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -367,6 +373,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerJournalTime::FieldEntryDateTime, "EntryDateTi
\brief The QOrganizerItemLocation class contains information about a location which is related to the organizer item in some manner.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
@@ -454,6 +461,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemLocation::FieldLabel, "Label");
\brief The QOrganizerItemComment class contains some arbitrary information which is relevant to the organizer item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -503,6 +511,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemComment::FieldComment, "Comment");
\brief The QOrganizerItemPriority class contains the priority of the organizer item, which may be used to resolve scheduling conflicts.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -719,6 +728,7 @@ void QOrganizerItemRecurrence::setExceptionDates(const QSet<QDate>& xdates)
\brief The QOrganizerItemReminder class contains information about when and how the user wants to reminded of the item
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
Note that the Organizer API does not enforce that the user is reminded of the item;
rather, it simply allows clients to store and manipulate data which might be used
@@ -863,6 +873,7 @@ QOrganizerItemReminder::ReminderType QOrganizerItemReminder::reminderType() cons
\brief The QOrganizerItemAudibleReminder class contains information about an audible reminder of an item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
An audible reminder is a reminder which alerts the user about the item, with sound.
Note that the Organizer API does not enforce that the sound data is played,
@@ -903,6 +914,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemAudibleReminder::FieldDataUrl, "DataUrl")
\brief The QOrganizerItemEmailReminder class contains information about an email reminder of an item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
An email reminder is a reminder which alerts the user (or other users) about the item,
by sending an email.
@@ -986,6 +998,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemEmailReminder::FieldRecipients, "Recipien
\brief The QOrganizerItemVisualReminder class contains information about a visual reminder of an item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
A visual reminder is a reminder which alerts the user about the item, with a message, image or video.
Note that the Organizer API does not enforce that the visual data is displayed,
@@ -1043,6 +1056,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemVisualReminder::FieldDataUrl, "DataUrl");
\brief The QOrganizerItemTag class contains some arbitrary tag which is relevant to the organizer item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -1088,9 +1102,11 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemTag::FieldTag, "Tag");
/* ==================== QOrganizerItemTimestamp ======================= */
/*!
\class QOrganizerItemTimestamp
- \brief The QOrganizerItemTimestamp class contains the creation and last-modified timestamp associated with the organizer item. XXX TODO: what about last accessed?
+ \brief The QOrganizerItemTimestamp class contains the creation and last-modified timestamp associated with the organizer item.
+ XXX TODO: what about last accessed?
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -1147,6 +1163,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerItemTimestamp::FieldCreationTimestamp, "Creat
\brief The QOrganizerTodoProgress class contains information about the progress of a todo item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -1222,6 +1239,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerTodoProgress::FieldFinishedDateTime, "Finishe
\brief The QOrganizerTodoTime class contains information about the time range of a todo item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
@@ -1298,6 +1316,7 @@ Q_DEFINE_LATIN1_CONSTANT(QOrganizerTodoTime::FieldAllDay, "AllDay");
\brief The QOrganizerItemType class describes the type of the organizer item. This detail may be automatically synthesized by the backend depending on other details in the organizer item.
\inmodule QtOrganizer
\ingroup organizer-details
+ \since 1.1
*/
/*!
diff --git a/src/organizer/qorganizerabstractrequest.cpp b/src/organizer/qorganizerabstractrequest.cpp
index 553652a91c..5253dcbb3e 100644
--- a/src/organizer/qorganizerabstractrequest.cpp
+++ b/src/organizer/qorganizerabstractrequest.cpp
@@ -58,6 +58,7 @@ QTM_BEGIN_NAMESPACE
asynchronous requests to be made of a manager if it supports them.
\inmodule QtOrganizer
+ \since 1.1
\ingroup organizer-main
diff --git a/src/organizer/qorganizeritem.cpp b/src/organizer/qorganizeritem.cpp
index f28a056f4b..0d7ca7f18b 100644
--- a/src/organizer/qorganizeritem.cpp
+++ b/src/organizer/qorganizeritem.cpp
@@ -74,6 +74,7 @@ QTM_BEGIN_NAMESPACE
\brief The QOrganizerItem class represents an event, todo, note, or journal entry
\inmodule QtOrganizer
+ \since 1.1
\ingroup organizer-main
@@ -645,9 +646,15 @@ bool QOrganizerItem::removeDetail(QOrganizerItemDetail* detail)
/*! Returns true if this organizer item is equal to the \a other organizer item, false if either the id, collection id or stored details are not the same */
bool QOrganizerItem::operator==(const QOrganizerItem& other) const
{
+ // work around, as this function is "const" that we can't sort m_details
+ QList<QOrganizerItemDetail> myDetails = d->m_details;
+ QList<QOrganizerItemDetail> otherDetails = other.d->m_details;
+ qSort(myDetails.begin(), myDetails.end(), compareOrganizerItemDetail);
+ qSort(otherDetails.begin(), otherDetails.end(), compareOrganizerItemDetail);
+
return other.d->m_id == d->m_id &&
other.d->m_collectionId == d->m_collectionId &&
- other.d->m_details == d->m_details;
+ otherDetails == myDetails;
}
/*!
diff --git a/src/organizer/qorganizeritemdetail.cpp b/src/organizer/qorganizeritemdetail.cpp
index 93e41d947c..cf02ed3b44 100644
--- a/src/organizer/qorganizeritemdetail.cpp
+++ b/src/organizer/qorganizeritemdetail.cpp
@@ -75,6 +75,7 @@ Q_DESTRUCTOR_FUNCTION(qClearAllocatedStringHash)
\brief The QOrganizerItemDetail class represents a single, complete detail about an organizer item.
\inmodule QtOrganizer
\ingroup organizer-main
+ \since 1.1
All of the information for an organizer item is stored in one or more QOrganizerItemDetail objects.
@@ -330,6 +331,11 @@ bool QOrganizerItemDetail::operator==(const QOrganizerItemDetail& other) const
return true;
}
+bool compareOrganizerItemDetail(const QOrganizerItemDetail &one, const QOrganizerItemDetail &other)
+{
+ return (one.definitionName() < other.definitionName());
+}
+
uint qHash(const QOrganizerItemStringHolder& key)
{
if (!key.m_str)
diff --git a/src/organizer/qorganizeritemdetail_p.h b/src/organizer/qorganizeritemdetail_p.h
index 8ee60bcd1f..c09929a71e 100644
--- a/src/organizer/qorganizeritemdetail_p.h
+++ b/src/organizer/qorganizeritemdetail_p.h
@@ -154,6 +154,7 @@ public:
};
uint qHash(const QOrganizerItemStringHolder& key);
+bool compareOrganizerItemDetail(const QOrganizerItemDetail &one, const QOrganizerItemDetail &other);
class QOrganizerItemDetailPrivate : public QSharedData
{
diff --git a/src/organizer/qorganizermanagerengine.cpp b/src/organizer/qorganizermanagerengine.cpp
index 3036e8134c..2711a1a1b7 100644
--- a/src/organizer/qorganizermanagerengine.cpp
+++ b/src/organizer/qorganizermanagerengine.cpp
@@ -67,6 +67,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtOrganizer
\ingroup organizer-backends
+ \since 1.1
Instances of this class are usually provided by a
\l QOrganizerManagerEngineFactory, which is loaded from a plugin.
@@ -2593,7 +2594,7 @@ const QOrganizerCollectionEngineId* QOrganizerManagerEngine::engineCollectionId(
\o it can't reliably access any properties of the request pointer any more. The pointer will
be invalid once this function returns.
\endlist
-
+
This means that if there is a worker thread, the engine needs to let that thread know that the
request object is not valid and block until that thread acknowledges it. One way to do this is to
have a QSet<QOrganizerAbstractRequest*> (or QMap<QOrganizerAbstractRequest,
@@ -2614,13 +2615,13 @@ void QOrganizerManagerEngine::requestDestroyed(QOrganizerAbstractRequest* req)
Generally, the engine queues the request and processes it at some later time (probably in another
thread).
-
+
Once a request is started, the engine should call the updateRequestState and/or the specific
updateXXXXXRequest functions to mark it in the active state.
-
+
If the engine is particularly fast, or the operation involves only in memory data, the request can
be processed and completed without queueing it.
-
+
Note that when the client is threaded, and the request might live on a different thread, the
engine needs to be careful with locking. In particular, the request might be deleted while the
engine is still working on it. In this case, the requestDestroyed function will be called while
diff --git a/src/organizer/requests/qorganizeritemsaverequest.cpp b/src/organizer/requests/qorganizeritemsaverequest.cpp
index 32461b076a..f2c80e19be 100644
--- a/src/organizer/requests/qorganizeritemsaverequest.cpp
+++ b/src/organizer/requests/qorganizeritemsaverequest.cpp
@@ -56,6 +56,7 @@ QTM_BEGIN_NAMESPACE
the overall operation error (which may be retrieved by calling error()) is updated.
\ingroup organizer-requests
+ \since 1.1
*/
/*! Constructs a new organizer item save request whose parent is the specified \a parent */
diff --git a/src/publishsubscribe/qmallocpool.cpp b/src/publishsubscribe/qmallocpool.cpp
index ac56af559e..b31f9dec37 100644
--- a/src/publishsubscribe/qmallocpool.cpp
+++ b/src/publishsubscribe/qmallocpool.cpp
@@ -150,6 +150,7 @@ struct QMallocPtr
\internal
\inmodule QtPublishSubscribe
\ingroup publishsubscribe
+ \since 1.0
\brief The QMallocPool class allows management of allocations within a
designated memory region.
@@ -193,7 +194,7 @@ struct QMallocPtr
Shared pool type.
The malloc pool bookkeeping data contains absolute pointers. As such, if
- multiple processes intend to allocate into the malloc pool, is is essential
+ multiple processes intend to allocate into the malloc pool, is is essential
that they map the memory region to the same virtual address location.
\value Shared
The bookkeeping data is stored in the managed region, and has previously been
@@ -201,7 +202,7 @@ struct QMallocPtr
pool type.
The malloc pool bookkeeping data contains absolute pointers. As such, if
- multiple processes intend to allocate into the malloc pool, is is essential
+ multiple processes intend to allocate into the malloc pool, is is essential
that they map the memory region to the same virtual address location.
*/
diff --git a/src/publishsubscribe/qpacketprotocol.cpp b/src/publishsubscribe/qpacketprotocol.cpp
index 18eb4f6dc4..08f16a619b 100644
--- a/src/publishsubscribe/qpacketprotocol.cpp
+++ b/src/publishsubscribe/qpacketprotocol.cpp
@@ -51,11 +51,12 @@ QTM_BEGIN_NAMESPACE
\internal
\inmodule QtPublishSubscribe
\ingroup publishsubscribe
+ \since 1.0
\brief The QPacketProtocol class encapsulates communicating discrete packets
across fragmented IO channels, such as TCP sockets.
- QPacketProtocol makes it simple to send arbitrary sized data "packets" across
+ QPacketProtocol makes it simple to send arbitrary sized data "packets" across
fragmented transports such as TCP and UDP.
As transmission boundaries are not respected, sending packets over protocols
@@ -146,7 +147,7 @@ public slots:
void bytesWritten(qint64 bytes)
{
Q_ASSERT(!sendingPackets.isEmpty());
-
+
while(bytes) {
if(sendingPackets.at(0) > bytes) {
sendingPackets[0] -= bytes;
@@ -233,8 +234,8 @@ QPacketProtocol::~QPacketProtocol()
/*!
Returns the maximum packet size allowed. By default this is
- 2,147,483,647 bytes.
-
+ 2,147,483,647 bytes.
+
If a packet claiming to be larger than the maximum packet size is received,
the QPacketProtocol::invalidPacket() signal is emitted.
@@ -264,7 +265,7 @@ qint32 QPacketProtocol::setMaximumPacketSize(qint32 max)
protocol.send() << "Hello world" << 123;
\endcode
- will send a packet containing "Hello world" and 123. To construct more
+ will send a packet containing "Hello world" and 123. To construct more
complex packets, explicitly construct a QPacket instance.
*/
QPacketAutoSend QPacketProtocol::send()
@@ -389,8 +390,8 @@ QIODevice * QPacketProtocol::device()
\endcode
Only packets returned from QPacketProtocol::read() may be read from. QPacket
- instances constructed by directly by applications are for transmission only
- and are considered "write only". Attempting to read data from them will
+ instances constructed by directly by applications are for transmission only
+ and are considered "write only". Attempting to read data from them will
result in undefined behavior.
\sa QPacketProtocol
diff --git a/src/publishsubscribe/qvaluespace.cpp b/src/publishsubscribe/qvaluespace.cpp
index a3dee2d041..243340428d 100644
--- a/src/publishsubscribe/qvaluespace.cpp
+++ b/src/publishsubscribe/qvaluespace.cpp
@@ -64,6 +64,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtPublishSubscribe
\ingroup publishsubscribe
\internal
+ \since 1.0
To create a new layer in the Value Space subclass this class and reimplement all of the virtual
functions. The new layer is installed by either calling QValueSpace::installLayer() or by
diff --git a/src/publishsubscribe/qvaluespacepublisher.cpp b/src/publishsubscribe/qvaluespacepublisher.cpp
index 9fbb22b342..648759bfd4 100644
--- a/src/publishsubscribe/qvaluespacepublisher.cpp
+++ b/src/publishsubscribe/qvaluespacepublisher.cpp
@@ -57,6 +57,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtPublishSubscribe
\ingroup publishsubscribe
+ \since 1.0
When multiple Value Space layers are available QValueSpacePublisher only publishes values to
the layer with the highest order. The layers that QValueSpacePublisher can access can be
diff --git a/src/publishsubscribe/qvaluespacesubscriber.cpp b/src/publishsubscribe/qvaluespacesubscriber.cpp
index 502aec5fe9..95add53391 100644
--- a/src/publishsubscribe/qvaluespacesubscriber.cpp
+++ b/src/publishsubscribe/qvaluespacesubscriber.cpp
@@ -59,6 +59,7 @@ QTM_BEGIN_NAMESPACE
\inmodule QtPublishSubscribe
\ingroup publishsubscribe
+ \since 1.0
By default QValueSpaceSubscriber can read values from and report change notifications for all
available Value Space layers. Only data from the layer with the highest order and that
diff --git a/src/s60installs/bwins/QtConnectivityu.def b/src/s60installs/bwins/QtConnectivityu.def
index 31e3c0a4eb..0b1ffb98d2 100644
--- a/src/s60installs/bwins/QtConnectivityu.def
+++ b/src/s60installs/bwins/QtConnectivityu.def
@@ -6,635 +6,636 @@ EXPORTS
?minimumSize@QBluetoothUuid@QtMobility@@QBEHXZ @ 5 NONAME ; int QtMobility::QBluetoothUuid::minimumSize(void) const
?error@QBluetoothLocalDevice@QtMobility@@IAEXW4Error@12@@Z @ 6 NONAME ; void QtMobility::QBluetoothLocalDevice::error(enum QtMobility::QBluetoothLocalDevice::Error)
??_EQBluetoothTransferReply@QtMobility@@UAE@I@Z @ 7 NONAME ; QtMobility::QBluetoothTransferReply::~QBluetoothTransferReply(unsigned int)
- ?serverAddress@QRfcommServer@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 8 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QRfcommServer::serverAddress(void) const
- ??1QBluetoothTransferManager@QtMobility@@UAE@XZ @ 9 NONAME ; QtMobility::QBluetoothTransferManager::~QBluetoothTransferManager(void)
- ?toUInt128@QBluetoothUuid@QtMobility@@QBE?AUquint128@2@XZ @ 10 NONAME ; struct QtMobility::quint128 QtMobility::QBluetoothUuid::toUInt128(void) const
- ?metaObject@QNearFieldTagType2@QtMobility@@UBEPBUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType2::metaObject(void) const
- ?writeServiceData@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@GABVQByteArray@@@Z @ 12 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::writeServiceData(unsigned short, class QByteArray const &)
- ?trUtf8@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString QtMobility::QBluetoothSocket::trUtf8(char const *, char const *)
- ?services@QNearFieldTagType3@QtMobility@@QAE?AV?$QList@G@@XZ @ 14 NONAME ; class QList<unsigned short> QtMobility::QNearFieldTagType3::services(void)
- ?readBlock@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 15 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::readBlock(unsigned char)
- ??1QBluetoothUuid@QtMobility@@QAE@XZ @ 16 NONAME ; QtMobility::QBluetoothUuid::~QBluetoothUuid(void)
- ?d_func@QBluetoothServiceInfo@QtMobility@@ABEPBVQBluetoothServiceInfoPrivate@2@XZ @ 17 NONAME ; class QtMobility::QBluetoothServiceInfoPrivate const * QtMobility::QBluetoothServiceInfo::d_func(void) const
- ??1QNearFieldTarget@QtMobility@@UAE@XZ @ 18 NONAME ; QtMobility::QNearFieldTarget::~QNearFieldTarget(void)
- ?setSecurityFlags@QL2capServer@QtMobility@@QAEXV?$QFlags@W4Security@QBluetooth@QtMobility@@@@@Z @ 19 NONAME ; void QtMobility::QL2capServer::setSecurityFlags(class QFlags<enum QtMobility::QBluetooth::Security>)
- ??_EQNdefMessage@QtMobility@@QAE@I@Z @ 20 NONAME ; QtMobility::QNdefMessage::~QNdefMessage(unsigned int)
- ?readDatagram@QLlcpSocket@QtMobility@@QAE_JPAD_JPAPAVQNearFieldTarget@2@PAE@Z @ 21 NONAME ; long long QtMobility::QLlcpSocket::readDatagram(char *, long long, class QtMobility::QNearFieldTarget * *, unsigned char *)
- ?d_func@QBluetoothAddress@QtMobility@@ABEPBVQBluetoothAddressPrivate@2@XZ @ 22 NONAME ; class QtMobility::QBluetoothAddressPrivate const * QtMobility::QBluetoothAddress::d_func(void) const
- ?getAddress@QBluetoothHostInfo@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 23 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothHostInfo::getAddress(void) const
- ?d_func@QBluetoothSocket@QtMobility@@AAEPAVQBluetoothSocketPrivate@2@XZ @ 24 NONAME ; class QtMobility::QBluetoothSocketPrivate * QtMobility::QBluetoothSocket::d_func(void)
- ??_EQBluetoothTransferReplyPrivate@QtMobility@@QAE@I@Z @ 25 NONAME ; QtMobility::QBluetoothTransferReplyPrivate::~QBluetoothTransferReplyPrivate(unsigned int)
- ??0QNearFieldManager@QtMobility@@QAE@PAVQObject@@@Z @ 26 NONAME ; QtMobility::QNearFieldManager::QNearFieldManager(class QObject *)
- ?setLocale@QNdefNfcTextRecord@QtMobility@@QAEXABVQString@@@Z @ 27 NONAME ; void QtMobility::QNdefNfcTextRecord::setLocale(class QString const &)
- ?connected@QLlcpSocket@QtMobility@@IAEXXZ @ 28 NONAME ; void QtMobility::QLlcpSocket::connected(void)
- ?writeData@QBluetoothSocket@QtMobility@@MAE_JPBD_J@Z @ 29 NONAME ; long long QtMobility::QBluetoothSocket::writeData(char const *, long long)
- ?type@QNearFieldTagType4@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 30 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType4::type(void) const
- ?tr@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString QtMobility::QNearFieldTagType2::tr(char const *, char const *, int)
- ?setPayload@QNdefRecord@QtMobility@@QAEXABVQByteArray@@@Z @ 32 NONAME ; void QtMobility::QNdefRecord::setPayload(class QByteArray const &)
- ?staticMetaObject@QNearFieldTagType3@QtMobility@@2UQMetaObject@@B @ 33 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType3::staticMetaObject
- ?d_func@QBluetoothDeviceDiscoveryAgent@QtMobility@@AAEPAVQBluetoothDeviceDiscoveryAgentPrivate@2@XZ @ 34 NONAME ; class QtMobility::QBluetoothDeviceDiscoveryAgentPrivate * QtMobility::QBluetoothDeviceDiscoveryAgent::d_func(void)
- ?trUtf8@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 35 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::trUtf8(char const *, char const *, int)
- ?pairingConfirmation@QBluetoothLocalDevice@QtMobility@@QAEX_N@Z @ 36 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingConfirmation(bool)
- ?hasPendingConnections@QLlcpServer@QtMobility@@UBE_NXZ @ 37 NONAME ; bool QtMobility::QLlcpServer::hasPendingConnections(void) const
- ?handleResponse@QNearFieldTagType2@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 38 NONAME ; bool QtMobility::QNearFieldTagType2::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
- ??1QBluetoothSocket@QtMobility@@UAE@XZ @ 39 NONAME ; QtMobility::QBluetoothSocket::~QBluetoothSocket(void)
- ?tr@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0@Z @ 40 NONAME ; class QString QtMobility::QBluetoothTransferReply::tr(char const *, char const *)
- ?writeBlock@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@EABVQByteArray@@@Z @ 41 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::writeBlock(unsigned char, class QByteArray const &)
- ??_EQNearFieldTagType2@QtMobility@@UAE@I@Z @ 42 NONAME ; QtMobility::QNearFieldTagType2::~QNearFieldTagType2(unsigned int)
- ??4RequestId@QNearFieldTarget@QtMobility@@QAEAAV012@ABV012@@Z @ 43 NONAME ; class QtMobility::QNearFieldTarget::RequestId & QtMobility::QNearFieldTarget::RequestId::operator=(class QtMobility::QNearFieldTarget::RequestId const &)
- ?recordCount@QNdefFilter@QtMobility@@QBEHXZ @ 44 NONAME ; int QtMobility::QNdefFilter::recordCount(void) const
- ?setAddress@QBluetoothHostInfo@QtMobility@@QAEXABVQBluetoothAddress@2@@Z @ 45 NONAME ; void QtMobility::QBluetoothHostInfo::setAddress(class QtMobility::QBluetoothAddress const &)
- ?metaObject@QLlcpSocket@QtMobility@@UBEPBUQMetaObject@@XZ @ 46 NONAME ; struct QMetaObject const * QtMobility::QLlcpSocket::metaObject(void) const
- ?staticMetaObject@QLlcpServer@QtMobility@@2UQMetaObject@@B @ 47 NONAME ; struct QMetaObject const QtMobility::QLlcpServer::staticMetaObject
- ?hasPendingDatagrams@QLlcpSocket@QtMobility@@QBE_NXZ @ 48 NONAME ; bool QtMobility::QLlcpSocket::hasPendingDatagrams(void) const
- ?stop@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXXZ @ 49 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::stop(void)
- ??0RequestId@QNearFieldTarget@QtMobility@@QAE@ABV012@@Z @ 50 NONAME ; QtMobility::QNearFieldTarget::RequestId::RequestId(class QtMobility::QNearFieldTarget::RequestId const &)
- ??1QNearFieldTagType4@QtMobility@@UAE@XZ @ 51 NONAME ; QtMobility::QNearFieldTagType4::~QNearFieldTagType4(void)
- ?waitForRequestCompleted@QNearFieldTarget@QtMobility@@UAE_NABVRequestId@12@H@Z @ 52 NONAME ; bool QtMobility::QNearFieldTarget::waitForRequestCompleted(class QtMobility::QNearFieldTarget::RequestId const &, int)
- ?uploadProgress@QBluetoothTransferReply@QtMobility@@IAEX_J0@Z @ 53 NONAME ; void QtMobility::QBluetoothTransferReply::uploadProgress(long long, long long)
- ?errorString@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AVQString@@XZ @ 54 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::errorString(void) const
- ?writeNdefMessages@QNearFieldTarget@QtMobility@@UAEXABV?$QList@VQNdefMessage@QtMobility@@@@@Z @ 55 NONAME ; void QtMobility::QNearFieldTarget::writeNdefMessages(class QList<class QtMobility::QNdefMessage> const &)
- ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JABVQByteArray@@PAVQNearFieldTarget@2@E@Z @ 56 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(class QByteArray const &, class QtMobility::QNearFieldTarget *, unsigned char)
- ??0QBluetoothTransferRequest@QtMobility@@QAE@ABV01@@Z @ 57 NONAME ; QtMobility::QBluetoothTransferRequest::QBluetoothTransferRequest(class QtMobility::QBluetoothTransferRequest const &)
- ?selectSector@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 58 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::selectSector(unsigned char)
- ?getStaticMetaObject@QBluetoothTransferManager@QtMobility@@SAABUQMetaObject@@XZ @ 59 NONAME ; struct QMetaObject const & QtMobility::QBluetoothTransferManager::getStaticMetaObject(void)
- ?getStaticMetaObject@QNearFieldTagType4@QtMobility@@SAABUQMetaObject@@XZ @ 60 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType4::getStaticMetaObject(void)
- ?close@QLlcpSocket@QtMobility@@UAEXXZ @ 61 NONAME ; void QtMobility::QLlcpSocket::close(void)
- ?setSocketError@QBluetoothSocket@QtMobility@@IAEXW4SocketError@12@@Z @ 62 NONAME ; void QtMobility::QBluetoothSocket::setSocketError(enum QtMobility::QBluetoothSocket::SocketError)
- ?appendRecord@QNdefFilter@QtMobility@@QAEXABURecord@12@@Z @ 63 NONAME ; void QtMobility::QNdefFilter::appendRecord(struct QtMobility::QNdefFilter::Record const &)
- ?connectToService@QLlcpSocket@QtMobility@@QAEXPAVQNearFieldTarget@2@ABVQString@@@Z @ 64 NONAME ; void QtMobility::QLlcpSocket::connectToService(class QtMobility::QNearFieldTarget *, class QString const &)
- ?attribute@QBluetoothTransferReply@QtMobility@@QBE?AVQVariant@@W4Attribute@QBluetoothTransferRequest@2@@Z @ 65 NONAME ; class QVariant QtMobility::QBluetoothTransferReply::attribute(enum QtMobility::QBluetoothTransferRequest::Attribute) const
- ?toString@QBluetoothAddress@QtMobility@@QBE?AVQString@@XZ @ 66 NONAME ; class QString QtMobility::QBluetoothAddress::toString(void) const
- ?error@QBluetoothSocket@QtMobility@@QBE?AW4SocketError@12@XZ @ 67 NONAME ; enum QtMobility::QBluetoothSocket::SocketError QtMobility::QBluetoothSocket::error(void) const
- ?readData@QBluetoothSocket@QtMobility@@MAE_JPAD_J@Z @ 68 NONAME ; long long QtMobility::QBluetoothSocket::readData(char *, long long)
- ?trUtf8@QL2capServer@QtMobility@@SA?AVQString@@PBD0@Z @ 69 NONAME ; class QString QtMobility::QL2capServer::trUtf8(char const *, char const *)
- ?close@QL2capServer@QtMobility@@QAEXXZ @ 70 NONAME ; void QtMobility::QL2capServer::close(void)
- ?setServiceUuids@QBluetoothDeviceInfo@QtMobility@@QAEXABV?$QList@VQBluetoothUuid@QtMobility@@@@W4DataCompleteness@12@@Z @ 71 NONAME ; void QtMobility::QBluetoothDeviceInfo::setServiceUuids(class QList<class QtMobility::QBluetoothUuid> const &, enum QtMobility::QBluetoothDeviceInfo::DataCompleteness)
- ?nextPendingConnection@QLlcpServer@QtMobility@@UAEPAVQLlcpSocket@2@XZ @ 72 NONAME ; class QtMobility::QLlcpSocket * QtMobility::QLlcpServer::nextPendingConnection(void)
- ??0QL2capServer@QtMobility@@QAE@PAVQObject@@@Z @ 73 NONAME ; QtMobility::QL2capServer::QL2capServer(class QObject *)
- ?registerService@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 74 NONAME ; bool QtMobility::QBluetoothServiceInfo::registerService(void) const
- ?errorString@QBluetoothSocket@QtMobility@@QBE?AVQString@@XZ @ 75 NONAME ; class QString QtMobility::QBluetoothSocket::errorString(void) const
- ?maxPendingConnections@QL2capServer@QtMobility@@QBEHXZ @ 76 NONAME ; int QtMobility::QL2capServer::maxPendingConnections(void) const
- ?id@QNdefRecord@QtMobility@@QBE?AVQByteArray@@XZ @ 77 NONAME ; class QByteArray QtMobility::QNdefRecord::id(void) const
- ?d_func@QBluetoothTransferRequest@QtMobility@@AAEPAVQBluetoothTransferRequestPrivate@2@XZ @ 78 NONAME ; class QtMobility::QBluetoothTransferRequestPrivate * QtMobility::QBluetoothTransferRequest::d_func(void)
- ?trUtf8@QRfcommServer@QtMobility@@SA?AVQString@@PBD0@Z @ 79 NONAME ; class QString QtMobility::QRfcommServer::trUtf8(char const *, char const *)
- ?trUtf8@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 80 NONAME ; class QString QtMobility::QNearFieldManager::trUtf8(char const *, char const *, int)
- ??0QBluetoothDeviceInfo@QtMobility@@QAE@XZ @ 81 NONAME ; QtMobility::QBluetoothDeviceInfo::QBluetoothDeviceInfo(void)
- ?serviceDiscovered@QBluetoothSocket@QtMobility@@AAEXABVQBluetoothServiceInfo@2@@Z @ 82 NONAME ; void QtMobility::QBluetoothSocket::serviceDiscovered(class QtMobility::QBluetoothServiceInfo const &)
- ?tr@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 83 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::tr(char const *, char const *, int)
- ?tr@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0@Z @ 84 NONAME ; class QString QtMobility::QNearFieldManager::tr(char const *, char const *)
- ?bytesAvailable@QBluetoothSocket@QtMobility@@UBE_JXZ @ 85 NONAME ; long long QtMobility::QBluetoothSocket::bytesAvailable(void) const
- ??_EQBluetoothServiceDiscoveryAgent@QtMobility@@UAE@I@Z @ 86 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::~QBluetoothServiceDiscoveryAgent(unsigned int)
- ??1QBluetoothServiceDiscoveryAgent@QtMobility@@UAE@XZ @ 87 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::~QBluetoothServiceDiscoveryAgent(void)
- ??0QNdefRecord@QtMobility@@QAE@ABV01@@Z @ 88 NONAME ; QtMobility::QNdefRecord::QNdefRecord(class QtMobility::QNdefRecord const &)
- ??0QNdefFilter@QtMobility@@QAE@ABV01@@Z @ 89 NONAME ; QtMobility::QNdefFilter::QNdefFilter(class QtMobility::QNdefFilter const &)
- ?qt_metacast@QNearFieldTagType1@QtMobility@@UAEPAXPBD@Z @ 90 NONAME ; void * QtMobility::QNearFieldTagType1::qt_metacast(char const *)
- ??1QNearFieldTagType3@QtMobility@@UAE@XZ @ 91 NONAME ; QtMobility::QNearFieldTagType3::~QNearFieldTagType3(void)
- ?tr@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 92 NONAME ; class QString QtMobility::QBluetoothSocket::tr(char const *, char const *)
- ?ndefMessageRead@QNearFieldTarget@QtMobility@@IAEXABVQNdefMessage@2@@Z @ 93 NONAME ; void QtMobility::QNearFieldTarget::ndefMessageRead(class QtMobility::QNdefMessage const &)
- ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVSequence@12@@Z @ 94 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QtMobility::QBluetoothServiceInfo::Sequence const &)
- ?qt_metacast@QNearFieldTarget@QtMobility@@UAEPAXPBD@Z @ 95 NONAME ; void * QtMobility::QNearFieldTarget::qt_metacast(char const *)
- ?staticMetaObject@QLlcpSocket@QtMobility@@2UQMetaObject@@B @ 96 NONAME ; struct QMetaObject const QtMobility::QLlcpSocket::staticMetaObject
- ?d_func@QNearFieldManager@QtMobility@@AAEPAVQNearFieldManagerPrivate@2@XZ @ 97 NONAME ; class QtMobility::QNearFieldManagerPrivate * QtMobility::QNearFieldManager::d_func(void)
- ?qt_metacast@QBluetoothTransferReply@QtMobility@@UAEPAXPBD@Z @ 98 NONAME ; void * QtMobility::QBluetoothTransferReply::qt_metacast(char const *)
- ?uuidFilter@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AV?$QList@VQBluetoothUuid@QtMobility@@@@XZ @ 99 NONAME ; class QList<class QtMobility::QBluetoothUuid> QtMobility::QBluetoothServiceDiscoveryAgent::uuidFilter(void) const
- ?registerNdefMessageHandler@QNearFieldManager@QtMobility@@QAEHW4TypeNameFormat@QNdefRecord@2@ABVQByteArray@@PAVQObject@@PBD@Z @ 100 NONAME ; int QtMobility::QNearFieldManager::registerNdefMessageHandler(enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &, class QObject *, char const *)
- ?select@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@G@Z @ 101 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::select(unsigned short)
- ?pairingDisplayConfirmation@QBluetoothLocalDevice@QtMobility@@IAEXABVQBluetoothAddress@2@VQString@@@Z @ 102 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingDisplayConfirmation(class QtMobility::QBluetoothAddress const &, class QString)
- ?minorDeviceClass@QBluetoothDeviceInfo@QtMobility@@QBEEXZ @ 103 NONAME ; unsigned char QtMobility::QBluetoothDeviceInfo::minorDeviceClass(void) const
- ?qt_metacall@QNearFieldTagType1@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 104 NONAME ; int QtMobility::QNearFieldTagType1::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?trUtf8@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0H@Z @ 105 NONAME ; class QString QtMobility::QBluetoothTransferReply::trUtf8(char const *, char const *, int)
- ?maxPendingConnections@QRfcommServer@QtMobility@@QBEHXZ @ 106 NONAME ; int QtMobility::QRfcommServer::maxPendingConnections(void) const
- ??0QNdefNfcTextRecord@QtMobility@@QAE@XZ @ 107 NONAME ; QtMobility::QNdefNfcTextRecord::QNdefNfcTextRecord(void)
- ?sendCommand@QNearFieldTarget@QtMobility@@UAE?AVRequestId@12@ABVQByteArray@@@Z @ 108 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTarget::sendCommand(class QByteArray const &)
- ??0QNearFieldTarget@QtMobility@@QAE@PAVQObject@@@Z @ 109 NONAME ; QtMobility::QNearFieldTarget::QNearFieldTarget(class QObject *)
- ??1QNearFieldTagType2@QtMobility@@UAE@XZ @ 110 NONAME ; QtMobility::QNearFieldTagType2::~QNearFieldTagType2(void)
- ?writeNdefMessages@QNearFieldTagType1@QtMobility@@UAEXABV?$QList@VQNdefMessage@QtMobility@@@@@Z @ 111 NONAME ; void QtMobility::QNearFieldTagType1::writeNdefMessages(class QList<class QtMobility::QNdefMessage> const &)
- ?newConnection@QLlcpServer@QtMobility@@IAEXXZ @ 112 NONAME ; void QtMobility::QLlcpServer::newConnection(void)
- ?device@QBluetoothServiceInfo@QtMobility@@QBE?AVQBluetoothDeviceInfo@2@XZ @ 113 NONAME ; class QtMobility::QBluetoothDeviceInfo QtMobility::QBluetoothServiceInfo::device(void) const
- ?qt_metacall@QBluetoothServiceDiscoveryAgent@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 114 NONAME ; int QtMobility::QBluetoothServiceDiscoveryAgent::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??1QLlcpServer@QtMobility@@UAE@XZ @ 115 NONAME ; QtMobility::QLlcpServer::~QLlcpServer(void)
- ?setText@QNdefNfcTextRecord@QtMobility@@QAEXVQString@@@Z @ 116 NONAME ; void QtMobility::QNdefNfcTextRecord::setText(class QString)
- ??0QBluetoothServiceDiscoveryAgent@QtMobility@@QAE@ABVQBluetoothAddress@1@PAVQObject@@@Z @ 117 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::QBluetoothServiceDiscoveryAgent(class QtMobility::QBluetoothAddress const &, class QObject *)
- ?tr@QL2capServer@QtMobility@@SA?AVQString@@PBD0@Z @ 118 NONAME ; class QString QtMobility::QL2capServer::tr(char const *, char const *)
- ?qt_metacall@QL2capServer@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 119 NONAME ; int QtMobility::QL2capServer::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??0RequestId@QNearFieldTarget@QtMobility@@QAE@XZ @ 120 NONAME ; QtMobility::QNearFieldTarget::RequestId::RequestId(void)
- ?tr@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 121 NONAME ; class QString QtMobility::QBluetoothSocket::tr(char const *, char const *, int)
- ?serviceUuid@QBluetoothServiceInfo@QtMobility@@QBE?AVQBluetoothUuid@2@XZ @ 122 NONAME ; class QtMobility::QBluetoothUuid QtMobility::QBluetoothServiceInfo::serviceUuid(void) const
- ?tr@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0H@Z @ 123 NONAME ; class QString QtMobility::QBluetoothLocalDevice::tr(char const *, char const *, int)
- ?d_func@QBluetoothSocket@QtMobility@@ABEPBVQBluetoothSocketPrivate@2@XZ @ 124 NONAME ; class QtMobility::QBluetoothSocketPrivate const * QtMobility::QBluetoothSocket::d_func(void) const
- ?allDevices@QBluetoothLocalDevice@QtMobility@@SA?AV?$QList@VQBluetoothHostInfo@QtMobility@@@@XZ @ 125 NONAME ; class QList<class QtMobility::QBluetoothHostInfo> QtMobility::QBluetoothLocalDevice::allDevices(void)
- ?readByte@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 126 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readByte(unsigned char)
- ?d_func@QBluetoothDeviceInfo@QtMobility@@ABEPBVQBluetoothDeviceInfoPrivate@2@XZ @ 127 NONAME ; class QtMobility::QBluetoothDeviceInfoPrivate const * QtMobility::QBluetoothDeviceInfo::d_func(void) const
- ?abort@QBluetoothTransferReply@QtMobility@@QAEXXZ @ 128 NONAME ; void QtMobility::QBluetoothTransferReply::abort(void)
- ?ndefMessagesWritten@QNearFieldTarget@QtMobility@@IAEXXZ @ 129 NONAME ; void QtMobility::QNearFieldTarget::ndefMessagesWritten(void)
- ?localPort@QBluetoothSocket@QtMobility@@QBEGXZ @ 130 NONAME ; unsigned short QtMobility::QBluetoothSocket::localPort(void) const
- ?trUtf8@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0H@Z @ 131 NONAME ; class QString QtMobility::QNearFieldTagType2::trUtf8(char const *, char const *, int)
- ?staticMetaObject@QBluetoothLocalDevice@QtMobility@@2UQMetaObject@@B @ 132 NONAME ; struct QMetaObject const QtMobility::QBluetoothLocalDevice::staticMetaObject
- ??0QBluetoothAddress@QtMobility@@QAE@XZ @ 133 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(void)
- ??1QNearFieldTagType1@QtMobility@@UAE@XZ @ 134 NONAME ; QtMobility::QNearFieldTagType1::~QNearFieldTagType1(void)
- ?write@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABVQByteArray@@G@Z @ 135 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::write(class QByteArray const &, unsigned short)
- ?type@QNearFieldTagType3@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 136 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType3::type(void) const
- ?hasNdefMessage@QNearFieldTagType1@QtMobility@@UAE_NXZ @ 137 NONAME ; bool QtMobility::QNearFieldTagType1::hasNdefMessage(void)
- ?setType@QNdefRecord@QtMobility@@QAEXABVQByteArray@@@Z @ 138 NONAME ; void QtMobility::QNdefRecord::setType(class QByteArray const &)
- ??0QBluetoothHostInfo@QtMobility@@QAE@ABV01@@Z @ 139 NONAME ; QtMobility::QBluetoothHostInfo::QBluetoothHostInfo(class QtMobility::QBluetoothHostInfo const &)
- ?staticMetaObject@QBluetoothSocket@QtMobility@@2UQMetaObject@@B @ 140 NONAME ; struct QMetaObject const QtMobility::QBluetoothSocket::staticMetaObject
- ?d_func@QBluetoothTransferReply@QtMobility@@AAEPAVQBluetoothTransferReplyPrivate@2@XZ @ 141 NONAME ; class QtMobility::QBluetoothTransferReplyPrivate * QtMobility::QBluetoothTransferReply::d_func(void)
- ??8QNdefMessage@QtMobility@@QBE_NABV01@@Z @ 142 NONAME ; bool QtMobility::QNdefMessage::operator==(class QtMobility::QNdefMessage const &) const
- ??0QBluetoothAddress@QtMobility@@QAE@_K@Z @ 143 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(unsigned long long)
- ??_EQNearFieldTagType4@QtMobility@@UAE@I@Z @ 144 NONAME ; QtMobility::QNearFieldTagType4::~QNearFieldTagType4(unsigned int)
- ?trUtf8@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 145 NONAME ; class QString QtMobility::QLlcpSocket::trUtf8(char const *, char const *)
- ??0QNdefNfcUriRecord@QtMobility@@QAE@ABVQNdefRecord@1@@Z @ 146 NONAME ; QtMobility::QNdefNfcUriRecord::QNdefNfcUriRecord(class QtMobility::QNdefRecord const &)
- ?setId@QNdefRecord@QtMobility@@QAEXABVQByteArray@@@Z @ 147 NONAME ; void QtMobility::QNdefRecord::setId(class QByteArray const &)
- ??4QNdefFilter@QtMobility@@QAEAAV01@ABV01@@Z @ 148 NONAME ; class QtMobility::QNdefFilter & QtMobility::QNdefFilter::operator=(class QtMobility::QNdefFilter const &)
- ??0QLlcpServer@QtMobility@@QAE@PAVQObject@@@Z @ 149 NONAME ; QtMobility::QLlcpServer::QLlcpServer(class QObject *)
- ?waitForConnected@QLlcpSocket@QtMobility@@UAE_NH@Z @ 150 NONAME ; bool QtMobility::QLlcpSocket::waitForConnected(int)
- ?setAttribute@QBluetoothTransferRequest@QtMobility@@QAEXW4Attribute@12@ABVQVariant@@@Z @ 151 NONAME ; void QtMobility::QBluetoothTransferRequest::setAttribute(enum QtMobility::QBluetoothTransferRequest::Attribute, class QVariant const &)
- ??0QRfcommServer@QtMobility@@QAE@PAVQObject@@@Z @ 152 NONAME ; QtMobility::QRfcommServer::QRfcommServer(class QObject *)
- ??0QBluetoothSocket@QtMobility@@QAE@W4SocketType@01@PAVQObject@@@Z @ 153 NONAME ; QtMobility::QBluetoothSocket::QBluetoothSocket(enum QtMobility::QBluetoothSocket::SocketType, class QObject *)
- ?startTargetDetection@QNearFieldManager@QtMobility@@QAE_NW4Type@QNearFieldTarget@2@@Z @ 154 NONAME ; bool QtMobility::QNearFieldManager::startTargetDetection(enum QtMobility::QNearFieldTarget::Type)
- ?tr@QLlcpServer@QtMobility@@SA?AVQString@@PBD0@Z @ 155 NONAME ; class QString QtMobility::QLlcpServer::tr(char const *, char const *)
- ?tr@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0@Z @ 156 NONAME ; class QString QtMobility::QNearFieldTagType2::tr(char const *, char const *)
- ?getStaticMetaObject@QBluetoothTransferReply@QtMobility@@SAABUQMetaObject@@XZ @ 157 NONAME ; struct QMetaObject const & QtMobility::QBluetoothTransferReply::getStaticMetaObject(void)
- ?transactionDetected@QNearFieldManager@QtMobility@@IAEXABVQByteArray@@@Z @ 158 NONAME ; void QtMobility::QNearFieldManager::transactionDetected(class QByteArray const &)
- ?metaObject@QBluetoothDeviceDiscoveryAgent@QtMobility@@UBEPBUQMetaObject@@XZ @ 159 NONAME ; struct QMetaObject const * QtMobility::QBluetoothDeviceDiscoveryAgent::metaObject(void) const
- ?qt_metacast@QLlcpSocket@QtMobility@@UAEPAXPBD@Z @ 160 NONAME ; void * QtMobility::QLlcpSocket::qt_metacast(char const *)
- ?setResponseForRequest@QNearFieldTarget@QtMobility@@QAEXABVRequestId@12@ABVQVariant@@_N@Z @ 161 NONAME ; void QtMobility::QNearFieldTarget::setResponseForRequest(class QtMobility::QNearFieldTarget::RequestId const &, class QVariant const &, bool)
- ?d_func@QBluetoothTransferRequest@QtMobility@@ABEPBVQBluetoothTransferRequestPrivate@2@XZ @ 162 NONAME ; class QtMobility::QBluetoothTransferRequestPrivate const * QtMobility::QBluetoothTransferRequest::d_func(void) const
- ?staticMetaObject@QBluetoothServiceDiscoveryAgent@QtMobility@@2UQMetaObject@@B @ 163 NONAME ; struct QMetaObject const QtMobility::QBluetoothServiceDiscoveryAgent::staticMetaObject
- ?setServiceUuid@QBluetoothServiceInfo@QtMobility@@QAEXABVQBluetoothUuid@2@@Z @ 164 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceUuid(class QtMobility::QBluetoothUuid const &)
- ??0QBluetoothAddress@QtMobility@@QAE@ABVQString@@@Z @ 165 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(class QString const &)
- ?trUtf8@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0@Z @ 166 NONAME ; class QString QtMobility::QBluetoothLocalDevice::trUtf8(char const *, char const *)
- ?setServiceDescription@QBluetoothServiceInfo@QtMobility@@QAEXABVQString@@@Z @ 167 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceDescription(class QString const &)
- ??0QBluetoothTransferManager@QtMobility@@QAE@PAVQObject@@@Z @ 168 NONAME ; QtMobility::QBluetoothTransferManager::QBluetoothTransferManager(class QObject *)
- ?d_func@QNearFieldManager@QtMobility@@ABEPBVQNearFieldManagerPrivate@2@XZ @ 169 NONAME ; class QtMobility::QNearFieldManagerPrivate const * QtMobility::QNearFieldManager::d_func(void) const
- ?stopTargetDetection@QNearFieldManager@QtMobility@@QAEXXZ @ 170 NONAME ; void QtMobility::QNearFieldManager::stopTargetDetection(void)
- ??0QNdefRecord@QtMobility@@IAE@ABV01@W4TypeNameFormat@01@ABVQByteArray@@@Z @ 171 NONAME ; QtMobility::QNdefRecord::QNdefRecord(class QtMobility::QNdefRecord const &, enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &)
- ?pairingFinished@QBluetoothLocalDevice@QtMobility@@IAEXABVQBluetoothAddress@2@W4Pairing@12@@Z @ 172 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingFinished(class QtMobility::QBluetoothAddress const &, enum QtMobility::QBluetoothLocalDevice::Pairing)
- ?disconnectFromService@QLlcpSocket@QtMobility@@QAEXXZ @ 173 NONAME ; void QtMobility::QLlcpSocket::disconnectFromService(void)
- ?metaObject@QNearFieldTagType4@QtMobility@@UBEPBUQMetaObject@@XZ @ 174 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType4::metaObject(void) const
- ??1QBluetoothServiceInfo@QtMobility@@QAE@XZ @ 175 NONAME ; QtMobility::QBluetoothServiceInfo::~QBluetoothServiceInfo(void)
- ?doDeviceDiscovery@QBluetoothSocket@QtMobility@@IAEXABVQBluetoothServiceInfo@2@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 176 NONAME ; void QtMobility::QBluetoothSocket::doDeviceDiscovery(class QtMobility::QBluetoothServiceInfo const &, class QFlags<enum QIODevice::OpenModeFlag>)
- ??_EQBluetoothHostInfo@QtMobility@@QAE@I@Z @ 177 NONAME ; QtMobility::QBluetoothHostInfo::~QBluetoothHostInfo(unsigned int)
- ?setEncoding@QNdefNfcTextRecord@QtMobility@@QAEXW4Encoding@12@@Z @ 178 NONAME ; void QtMobility::QNdefNfcTextRecord::setEncoding(enum QtMobility::QNdefNfcTextRecord::Encoding)
- ??0QBluetoothDeviceInfo@QtMobility@@QAE@ABV01@@Z @ 179 NONAME ; QtMobility::QBluetoothDeviceInfo::QBluetoothDeviceInfo(class QtMobility::QBluetoothDeviceInfo const &)
- ?readNdefMessages@QNearFieldTarget@QtMobility@@UAEXXZ @ 180 NONAME ; void QtMobility::QNearFieldTarget::readNdefMessages(void)
- ?toUInt64@QBluetoothAddress@QtMobility@@QBE_KXZ @ 181 NONAME ; unsigned long long QtMobility::QBluetoothAddress::toUInt64(void) const
- ?localAddress@QBluetoothSocket@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 182 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothSocket::localAddress(void) const
- ?clear@QNdefFilter@QtMobility@@QAEXXZ @ 183 NONAME ; void QtMobility::QNdefFilter::clear(void)
- ?tr@QRfcommServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 184 NONAME ; class QString QtMobility::QRfcommServer::tr(char const *, char const *, int)
- ?start@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXW4DiscoveryMode@12@@Z @ 185 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::start(enum QtMobility::QBluetoothServiceDiscoveryAgent::DiscoveryMode)
- ??4QBluetoothTransferRequest@QtMobility@@QAEAAV01@ABV01@@Z @ 186 NONAME ; class QtMobility::QBluetoothTransferRequest & QtMobility::QBluetoothTransferRequest::operator=(class QtMobility::QBluetoothTransferRequest const &)
- ?readData@QLlcpSocket@QtMobility@@MAE_JPAD_J@Z @ 187 NONAME ; long long QtMobility::QLlcpSocket::readData(char *, long long)
- ?setServiceName@QBluetoothServiceInfo@QtMobility@@QAEXABVQString@@@Z @ 188 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceName(class QString const &)
- ?metaObject@QLlcpServer@QtMobility@@UBEPBUQMetaObject@@XZ @ 189 NONAME ; struct QMetaObject const * QtMobility::QLlcpServer::metaObject(void) const
- ?tr@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0H@Z @ 190 NONAME ; class QString QtMobility::QNearFieldTagType4::tr(char const *, char const *, int)
- ?qt_metacast@QBluetoothSocket@QtMobility@@UAEPAXPBD@Z @ 191 NONAME ; void * QtMobility::QBluetoothSocket::qt_metacast(char const *)
- ?getStaticMetaObject@QBluetoothDeviceDiscoveryAgent@QtMobility@@SAABUQMetaObject@@XZ @ 192 NONAME ; struct QMetaObject const & QtMobility::QBluetoothDeviceDiscoveryAgent::getStaticMetaObject(void)
- ??1QNdefMessage@QtMobility@@QAE@XZ @ 193 NONAME ; QtMobility::QNdefMessage::~QNdefMessage(void)
- ?getStaticMetaObject@QLlcpServer@QtMobility@@SAABUQMetaObject@@XZ @ 194 NONAME ; struct QMetaObject const & QtMobility::QLlcpServer::getStaticMetaObject(void)
- ?attribute@QBluetoothTransferRequest@QtMobility@@QBE?AVQVariant@@W4Attribute@12@ABV3@@Z @ 195 NONAME ; class QVariant QtMobility::QBluetoothTransferRequest::attribute(enum QtMobility::QBluetoothTransferRequest::Attribute, class QVariant const &) const
- ??_ERequestId@QNearFieldTarget@QtMobility@@QAE@I@Z @ 196 NONAME ; QtMobility::QNearFieldTarget::RequestId::~RequestId(unsigned int)
- ?trUtf8@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0@Z @ 197 NONAME ; class QString QtMobility::QBluetoothTransferReply::trUtf8(char const *, char const *)
- ?handleResponse@QNearFieldTagType3@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 198 NONAME ; bool QtMobility::QNearFieldTagType3::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
- ?setUuidFilter@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXABV?$QList@VQBluetoothUuid@QtMobility@@@@@Z @ 199 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::setUuidFilter(class QList<class QtMobility::QBluetoothUuid> const &)
- ??0QBluetoothAddress@QtMobility@@QAE@ABV01@@Z @ 200 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(class QtMobility::QBluetoothAddress const &)
- ??0QNdefMessage@QtMobility@@QAE@ABV?$QList@VQNdefRecord@QtMobility@@@@@Z @ 201 NONAME ; QtMobility::QNdefMessage::QNdefMessage(class QList<class QtMobility::QNdefRecord> const &)
- ??_EQRfcommServer@QtMobility@@UAE@I@Z @ 202 NONAME ; QtMobility::QRfcommServer::~QRfcommServer(unsigned int)
- ?disconnected@QLlcpSocket@QtMobility@@IAEXXZ @ 203 NONAME ; void QtMobility::QLlcpSocket::disconnected(void)
- ?localName@QBluetoothSocket@QtMobility@@QBE?AVQString@@XZ @ 204 NONAME ; class QString QtMobility::QBluetoothSocket::localName(void) const
- ?qt_metacast@QNearFieldTagType4@QtMobility@@UAEPAXPBD@Z @ 205 NONAME ; void * QtMobility::QNearFieldTagType4::qt_metacast(char const *)
- ?qt_metacall@QNearFieldTagType4@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 206 NONAME ; int QtMobility::QNearFieldTagType4::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?toUInt16@QBluetoothUuid@QtMobility@@QBEGPA_N@Z @ 207 NONAME ; unsigned short QtMobility::QBluetoothUuid::toUInt16(bool *) const
- ?trUtf8@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0@Z @ 208 NONAME ; class QString QtMobility::QBluetoothTransferManager::trUtf8(char const *, char const *)
- ??1QNdefRecord@QtMobility@@QAE@XZ @ 209 NONAME ; QtMobility::QNdefRecord::~QNdefRecord(void)
- ?getStaticMetaObject@QL2capServer@QtMobility@@SAABUQMetaObject@@XZ @ 210 NONAME ; struct QMetaObject const & QtMobility::QL2capServer::getStaticMetaObject(void)
- ?metaObject@QBluetoothTransferReply@QtMobility@@UBEPBUQMetaObject@@XZ @ 211 NONAME ; struct QMetaObject const * QtMobility::QBluetoothTransferReply::metaObject(void) const
- ?start@QBluetoothDeviceDiscoveryAgent@QtMobility@@QAEXXZ @ 212 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::start(void)
- ??0QBluetoothUuid@QtMobility@@QAE@W4ProtocolUuid@01@@Z @ 213 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(enum QtMobility::QBluetoothUuid::ProtocolUuid)
- ?serverAddress@QL2capServer@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 214 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QL2capServer::serverAddress(void) const
- ?serverPort@QRfcommServer@QtMobility@@QBEGXZ @ 215 NONAME ; unsigned short QtMobility::QRfcommServer::serverPort(void) const
- ?targetAccessModes@QNearFieldManager@QtMobility@@QBE?AV?$QFlags@W4TargetAccessMode@QNearFieldManager@QtMobility@@@@XZ @ 216 NONAME ; class QFlags<enum QtMobility::QNearFieldManager::TargetAccessMode> QtMobility::QNearFieldManager::targetAccessModes(void) const
- ?error@QLlcpSocket@QtMobility@@QBE?AW4SocketError@12@XZ @ 217 NONAME ; enum QtMobility::QLlcpSocket::SocketError QtMobility::QLlcpSocket::error(void) const
- ?trUtf8@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 218 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::trUtf8(char const *, char const *, int)
- ??9QBluetoothAddress@QtMobility@@QBE_NABV01@@Z @ 219 NONAME ; bool QtMobility::QBluetoothAddress::operator!=(class QtMobility::QBluetoothAddress const &) const
- ?d_func@QL2capServer@QtMobility@@ABEPBVQL2capServerPrivate@2@XZ @ 220 NONAME ; class QtMobility::QL2capServerPrivate const * QtMobility::QL2capServer::d_func(void) const
- ?setMaxPendingConnections@QRfcommServer@QtMobility@@QAEXH@Z @ 221 NONAME ; void QtMobility::QRfcommServer::setMaxPendingConnections(int)
- ??8RequestId@QNearFieldTarget@QtMobility@@QBE_NABV012@@Z @ 222 NONAME ; bool QtMobility::QNearFieldTarget::RequestId::operator==(class QtMobility::QNearFieldTarget::RequestId const &) const
- ?finished@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXXZ @ 223 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::finished(void)
- ?tr@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0@Z @ 224 NONAME ; class QString QtMobility::QNearFieldTagType4::tr(char const *, char const *)
- ?trUtf8@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0H@Z @ 225 NONAME ; class QString QtMobility::QNearFieldTarget::trUtf8(char const *, char const *, int)
- ?close@QLlcpServer@QtMobility@@QAEXXZ @ 226 NONAME ; void QtMobility::QLlcpServer::close(void)
- ??_EQBluetoothDeviceDiscoveryAgent@QtMobility@@UAE@I@Z @ 227 NONAME ; QtMobility::QBluetoothDeviceDiscoveryAgent::~QBluetoothDeviceDiscoveryAgent(unsigned int)
- ?serviceClasses@QBluetoothDeviceInfo@QtMobility@@QBE?AV?$QFlags@W4ServiceClass@QBluetoothDeviceInfo@QtMobility@@@@XZ @ 228 NONAME ; class QFlags<enum QtMobility::QBluetoothDeviceInfo::ServiceClass> QtMobility::QBluetoothDeviceInfo::serviceClasses(void) const
- ?d_func@QNearFieldTarget@QtMobility@@AAEPAVQNearFieldTargetPrivate@2@XZ @ 229 NONAME ; class QtMobility::QNearFieldTargetPrivate * QtMobility::QNearFieldTarget::d_func(void)
- ?staticMetaObject@QNearFieldManager@QtMobility@@2UQMetaObject@@B @ 230 NONAME ; struct QMetaObject const QtMobility::QNearFieldManager::staticMetaObject
- ?isValid@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 231 NONAME ; bool QtMobility::QBluetoothServiceInfo::isValid(void) const
- ?setHostMode@QBluetoothLocalDevice@QtMobility@@QAEXW4HostMode@12@@Z @ 232 NONAME ; void QtMobility::QBluetoothLocalDevice::setHostMode(enum QtMobility::QBluetoothLocalDevice::HostMode)
- ?type@QNearFieldTagType2@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 233 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType2::type(void) const
- ?setManufacturerSpecificData@QBluetoothDeviceInfo@QtMobility@@QAEXABVQByteArray@@@Z @ 234 NONAME ; void QtMobility::QBluetoothDeviceInfo::setManufacturerSpecificData(class QByteArray const &)
- ??0QBluetoothUuid@QtMobility@@QAE@Uquint128@1@@Z @ 235 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(struct QtMobility::quint128)
- ?metaObject@QNearFieldTagType1@QtMobility@@UBEPBUQMetaObject@@XZ @ 236 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType1::metaObject(void) const
- ?trUtf8@QL2capServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 237 NONAME ; class QString QtMobility::QL2capServer::trUtf8(char const *, char const *, int)
- ?d_func@QBluetoothServiceInfo@QtMobility@@AAEPAVQBluetoothServiceInfoPrivate@2@XZ @ 238 NONAME ; class QtMobility::QBluetoothServiceInfoPrivate * QtMobility::QBluetoothServiceInfo::d_func(void)
- ?getStaticMetaObject@QNearFieldTagType1@QtMobility@@SAABUQMetaObject@@XZ @ 239 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType1::getStaticMetaObject(void)
- ?typeNameFormat@QNdefRecord@QtMobility@@QBE?AW4TypeNameFormat@12@XZ @ 240 NONAME ; enum QtMobility::QNdefRecord::TypeNameFormat QtMobility::QNdefRecord::typeNameFormat(void) const
- ?setUuidFilter@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXABVQBluetoothUuid@2@@Z @ 241 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::setUuidFilter(class QtMobility::QBluetoothUuid const &)
- ?handleResponse@QNearFieldTarget@QtMobility@@MAE_NABVRequestId@12@ABVQByteArray@@@Z @ 242 NONAME ; bool QtMobility::QNearFieldTarget::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
- ??0QNearFieldTagType1@QtMobility@@QAE@PAVQObject@@@Z @ 243 NONAME ; QtMobility::QNearFieldTagType1::QNearFieldTagType1(class QObject *)
- ?tr@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0H@Z @ 244 NONAME ; class QString QtMobility::QNearFieldTagType1::tr(char const *, char const *, int)
- ??1QNearFieldManager@QtMobility@@UAE@XZ @ 245 NONAME ; QtMobility::QNearFieldManager::~QNearFieldManager(void)
- ?finished@QBluetoothTransferManager@QtMobility@@IAEXPAVQBluetoothTransferReply@2@@Z @ 246 NONAME ; void QtMobility::QBluetoothTransferManager::finished(class QtMobility::QBluetoothTransferReply *)
- ?serviceClassUuids@QBluetoothServiceInfo@QtMobility@@QBE?AV?$QList@VQBluetoothUuid@QtMobility@@@@XZ @ 247 NONAME ; class QList<class QtMobility::QBluetoothUuid> QtMobility::QBluetoothServiceInfo::serviceClassUuids(void) const
- ?memorySize@QNearFieldTagType1@QtMobility@@UAEHXZ @ 248 NONAME ; int QtMobility::QNearFieldTagType1::memorySize(void)
- ??1QRfcommServer@QtMobility@@UAE@XZ @ 249 NONAME ; QtMobility::QRfcommServer::~QRfcommServer(void)
- ?isListening@QRfcommServer@QtMobility@@QBE_NXZ @ 250 NONAME ; bool QtMobility::QRfcommServer::isListening(void) const
- ?isSequential@QBluetoothSocket@QtMobility@@UBE_NXZ @ 251 NONAME ; bool QtMobility::QBluetoothSocket::isSequential(void) const
- ??0QNdefMessage@QtMobility@@QAE@ABVQNdefRecord@1@@Z @ 252 NONAME ; QtMobility::QNdefMessage::QNdefMessage(class QtMobility::QNdefRecord const &)
- ?staticMetaObject@QNearFieldTagType2@QtMobility@@2UQMetaObject@@B @ 253 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType2::staticMetaObject
- ?setDevice@QBluetoothServiceInfo@QtMobility@@QAEXABVQBluetoothDeviceInfo@2@@Z @ 254 NONAME ; void QtMobility::QBluetoothServiceInfo::setDevice(class QtMobility::QBluetoothDeviceInfo const &)
- ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVQVariant@@@Z @ 255 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QVariant const &)
- ?setServiceProvider@QBluetoothServiceInfo@QtMobility@@QAEXABVQString@@@Z @ 256 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceProvider(class QString const &)
- ?payload@QNdefRecord@QtMobility@@QBE?AVQByteArray@@XZ @ 257 NONAME ; class QByteArray QtMobility::QNdefRecord::payload(void) const
- ?trUtf8@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0@Z @ 258 NONAME ; class QString QtMobility::QNearFieldTagType2::trUtf8(char const *, char const *)
- ?refCount@RequestId@QNearFieldTarget@QtMobility@@QBEHXZ @ 259 NONAME ; int QtMobility::QNearFieldTarget::RequestId::refCount(void) const
- ??0QBluetoothUuid@QtMobility@@QAE@ABUQUuid@@@Z @ 260 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(struct QUuid const &)
- ?text@QNdefNfcTextRecord@QtMobility@@QBE?AVQString@@XZ @ 261 NONAME ; class QString QtMobility::QNdefNfcTextRecord::text(void) const
- ?qt_metacall@QLlcpSocket@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 262 NONAME ; int QtMobility::QLlcpSocket::qt_metacall(enum QMetaObject::Call, int, void * *)
- ??1QBluetoothTransferReply@QtMobility@@UAE@XZ @ 263 NONAME ; QtMobility::QBluetoothTransferReply::~QBluetoothTransferReply(void)
- ??6QtMobility@@YA?AVQDebug@@V1@W4SocketState@QBluetoothSocket@0@@Z @ 264 NONAME ; class QDebug QtMobility::operator<<(class QDebug, enum QtMobility::QBluetoothSocket::SocketState)
- ?isValid@QBluetoothDeviceInfo@QtMobility@@QBE_NXZ @ 265 NONAME ; bool QtMobility::QBluetoothDeviceInfo::isValid(void) const
- ?stop@QBluetoothDeviceDiscoveryAgent@QtMobility@@QAEXXZ @ 266 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::stop(void)
- ?peerPort@QBluetoothSocket@QtMobility@@QBEGXZ @ 267 NONAME ; unsigned short QtMobility::QBluetoothSocket::peerPort(void) const
- ?tr@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 268 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::tr(char const *, char const *)
- ?trUtf8@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0H@Z @ 269 NONAME ; class QString QtMobility::QNearFieldTagType4::trUtf8(char const *, char const *, int)
- ??0QBluetoothUuid@QtMobility@@QAE@XZ @ 270 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(void)
- ?socketType@QBluetoothSocket@QtMobility@@QBE?AW4SocketType@12@XZ @ 271 NONAME ; enum QtMobility::QBluetoothSocket::SocketType QtMobility::QBluetoothSocket::socketType(void) const
- ??MQBluetoothAddress@QtMobility@@QBE_NABV01@@Z @ 272 NONAME ; bool QtMobility::QBluetoothAddress::operator<(class QtMobility::QBluetoothAddress const &) const
- ?serviceAvailability@QBluetoothServiceInfo@QtMobility@@QBEEXZ @ 273 NONAME ; unsigned char QtMobility::QBluetoothServiceInfo::serviceAvailability(void) const
- ?securityFlags@QRfcommServer@QtMobility@@QBE?AV?$QFlags@W4Security@QBluetooth@QtMobility@@@@XZ @ 274 NONAME ; class QFlags<enum QtMobility::QBluetooth::Security> QtMobility::QRfcommServer::securityFlags(void) const
- ?d_func@QL2capServer@QtMobility@@AAEPAVQL2capServerPrivate@2@XZ @ 275 NONAME ; class QtMobility::QL2capServerPrivate * QtMobility::QL2capServer::d_func(void)
- ?staticMetaObject@QBluetoothTransferManager@QtMobility@@2UQMetaObject@@B @ 276 NONAME ; struct QMetaObject const QtMobility::QBluetoothTransferManager::staticMetaObject
- ?registerNdefMessageHandler@QNearFieldManager@QtMobility@@QAEHABVQNdefFilter@2@PAVQObject@@PBD@Z @ 277 NONAME ; int QtMobility::QNearFieldManager::registerNdefMessageHandler(class QtMobility::QNdefFilter const &, class QObject *, char const *)
- ?memorySize@QNearFieldTagType2@QtMobility@@QAEHXZ @ 278 NONAME ; int QtMobility::QNearFieldTagType2::memorySize(void)
- ?setTargetAccessModes@QNearFieldManager@QtMobility@@QAEXV?$QFlags@W4TargetAccessMode@QNearFieldManager@QtMobility@@@@@Z @ 279 NONAME ; void QtMobility::QNearFieldManager::setTargetAccessModes(class QFlags<enum QtMobility::QNearFieldManager::TargetAccessMode>)
- ??0QNearFieldTagType3@QtMobility@@QAE@PAVQObject@@@Z @ 280 NONAME ; QtMobility::QNearFieldTagType3::QNearFieldTagType3(class QObject *)
- ?address@QBluetoothTransferRequest@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 281 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothTransferRequest::address(void) const
- ??_EQNearFieldTagType1@QtMobility@@UAE@I@Z @ 282 NONAME ; QtMobility::QNearFieldTagType1::~QNearFieldTagType1(unsigned int)
- ?serviceDescription@QBluetoothServiceInfo@QtMobility@@QBE?AVQString@@XZ @ 283 NONAME ; class QString QtMobility::QBluetoothServiceInfo::serviceDescription(void) const
- ?d_func@QBluetoothDeviceDiscoveryAgent@QtMobility@@ABEPBVQBluetoothDeviceDiscoveryAgentPrivate@2@XZ @ 284 NONAME ; class QtMobility::QBluetoothDeviceDiscoveryAgentPrivate const * QtMobility::QBluetoothDeviceDiscoveryAgent::d_func(void) const
- ?fromByteArray@QNdefMessage@QtMobility@@SA?AV12@ABVQByteArray@@@Z @ 285 NONAME ; class QtMobility::QNdefMessage QtMobility::QNdefMessage::fromByteArray(class QByteArray const &)
- ??0QBluetoothSocket@QtMobility@@QAE@PAVQObject@@@Z @ 286 NONAME ; QtMobility::QBluetoothSocket::QBluetoothSocket(class QObject *)
- ?d_func@QBluetoothTransferReply@QtMobility@@ABEPBVQBluetoothTransferReplyPrivate@2@XZ @ 287 NONAME ; class QtMobility::QBluetoothTransferReplyPrivate const * QtMobility::QBluetoothTransferReply::d_func(void) const
- ?stateChanged@QBluetoothSocket@QtMobility@@IAEXW4SocketState@12@@Z @ 288 NONAME ; void QtMobility::QBluetoothSocket::stateChanged(enum QtMobility::QBluetoothSocket::SocketState)
- ?readSegment@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 289 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readSegment(unsigned char)
- ?setOrderMatch@QNdefFilter@QtMobility@@QAEX_N@Z @ 290 NONAME ; void QtMobility::QNdefFilter::setOrderMatch(bool)
- ?tr@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0@Z @ 291 NONAME ; class QString QtMobility::QBluetoothLocalDevice::tr(char const *, char const *)
- ?getStaticMetaObject@QBluetoothLocalDevice@QtMobility@@SAABUQMetaObject@@XZ @ 292 NONAME ; struct QMetaObject const & QtMobility::QBluetoothLocalDevice::getStaticMetaObject(void)
- ?metaObject@QRfcommServer@QtMobility@@UBEPBUQMetaObject@@XZ @ 293 NONAME ; struct QMetaObject const * QtMobility::QRfcommServer::metaObject(void) const
- ?d_func@QBluetoothServiceDiscoveryAgent@QtMobility@@AAEPAVQBluetoothServiceDiscoveryAgentPrivate@2@XZ @ 294 NONAME ; class QtMobility::QBluetoothServiceDiscoveryAgentPrivate * QtMobility::QBluetoothServiceDiscoveryAgent::d_func(void)
- ?name@QBluetoothLocalDevice@QtMobility@@QBE?AVQString@@XZ @ 295 NONAME ; class QString QtMobility::QBluetoothLocalDevice::name(void) const
- ?qNfcChecksum@QtMobility@@YAGPBDI@Z @ 296 NONAME ; unsigned short QtMobility::qNfcChecksum(char const *, unsigned int)
- ?attributes@QBluetoothServiceInfo@QtMobility@@QBE?AV?$QList@G@@XZ @ 297 NONAME ; class QList<unsigned short> QtMobility::QBluetoothServiceInfo::attributes(void) const
- ?getStaticMetaObject@QNearFieldTarget@QtMobility@@SAABUQMetaObject@@XZ @ 298 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTarget::getStaticMetaObject(void)
- ?qt_metacall@QBluetoothLocalDevice@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 299 NONAME ; int QtMobility::QBluetoothLocalDevice::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?peerAddress@QBluetoothSocket@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 300 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothSocket::peerAddress(void) const
- ??0QBluetoothServiceInfo@QtMobility@@QAE@ABV01@@Z @ 301 NONAME ; QtMobility::QBluetoothServiceInfo::QBluetoothServiceInfo(class QtMobility::QBluetoothServiceInfo const &)
- ?listen@QLlcpServer@QtMobility@@QAE_NABVQString@@@Z @ 302 NONAME ; bool QtMobility::QLlcpServer::listen(class QString const &)
- ?uri@QNdefNfcUriRecord@QtMobility@@QBE?AVQUrl@@XZ @ 303 NONAME ; class QUrl QtMobility::QNdefNfcUriRecord::uri(void) const
- ??8QBluetoothTransferRequest@QtMobility@@QBE_NABV01@@Z @ 304 NONAME ; bool QtMobility::QBluetoothTransferRequest::operator==(class QtMobility::QBluetoothTransferRequest const &) const
- ?d_func@QBluetoothLocalDevice@QtMobility@@ABEPBVQBluetoothLocalDevicePrivate@2@XZ @ 305 NONAME ; class QtMobility::QBluetoothLocalDevicePrivate const * QtMobility::QBluetoothLocalDevice::d_func(void) const
- ?d_func@QNearFieldTagType2@QtMobility@@AAEPAVQNearFieldTagType2Private@2@XZ @ 306 NONAME ; class QtMobility::QNearFieldTagType2Private * QtMobility::QNearFieldTagType2::d_func(void)
- ??1QNdefFilter@QtMobility@@QAE@XZ @ 307 NONAME ; QtMobility::QNdefFilter::~QNdefFilter(void)
- ?inquiryType@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AW4InquiryType@12@XZ @ 308 NONAME ; enum QtMobility::QBluetoothDeviceDiscoveryAgent::InquiryType QtMobility::QBluetoothDeviceDiscoveryAgent::inquiryType(void) const
- ?errorString@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AVQString@@XZ @ 309 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::errorString(void) const
- ?isValid@RequestId@QNearFieldTarget@QtMobility@@QBE_NXZ @ 310 NONAME ; bool QtMobility::QNearFieldTarget::RequestId::isValid(void) const
- ?setOperation@QBluetoothTransferReply@QtMobility@@IAEXW4Operation@QBluetoothTransferManager@2@@Z @ 311 NONAME ; void QtMobility::QBluetoothTransferReply::setOperation(enum QtMobility::QBluetoothTransferManager::Operation)
- ?setManager@QBluetoothTransferReply@QtMobility@@IAEXPAVQBluetoothTransferManager@2@@Z @ 312 NONAME ; void QtMobility::QBluetoothTransferReply::setManager(class QtMobility::QBluetoothTransferManager *)
- ?pairingStatus@QBluetoothLocalDevice@QtMobility@@QBE?AW4Pairing@12@ABVQBluetoothAddress@2@@Z @ 313 NONAME ; enum QtMobility::QBluetoothLocalDevice::Pairing QtMobility::QBluetoothLocalDevice::pairingStatus(class QtMobility::QBluetoothAddress const &) const
- ?qt_metacast@QNearFieldTagType2@QtMobility@@UAEPAXPBD@Z @ 314 NONAME ; void * QtMobility::QNearFieldTagType2::qt_metacast(char const *)
- ?tr@QRfcommServer@QtMobility@@SA?AVQString@@PBD0@Z @ 315 NONAME ; class QString QtMobility::QRfcommServer::tr(char const *, char const *)
- ?trUtf8@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 316 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::trUtf8(char const *, char const *)
- ??1QBluetoothDeviceInfo@QtMobility@@QAE@XZ @ 317 NONAME ; QtMobility::QBluetoothDeviceInfo::~QBluetoothDeviceInfo(void)
- ?getStaticMetaObject@QNearFieldTagType3@QtMobility@@SAABUQMetaObject@@XZ @ 318 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType3::getStaticMetaObject(void)
- ?manager@QBluetoothTransferReply@QtMobility@@QBEPAVQBluetoothTransferManager@2@XZ @ 319 NONAME ; class QtMobility::QBluetoothTransferManager * QtMobility::QBluetoothTransferReply::manager(void) const
- ??0QBluetoothHostInfo@QtMobility@@QAE@XZ @ 320 NONAME ; QtMobility::QBluetoothHostInfo::QBluetoothHostInfo(void)
- ?d_func@QNearFieldTarget@QtMobility@@ABEPBVQNearFieldTargetPrivate@2@XZ @ 321 NONAME ; class QtMobility::QNearFieldTargetPrivate const * QtMobility::QNearFieldTarget::d_func(void) const
- ?getStaticMetaObject@QBluetoothServiceDiscoveryAgent@QtMobility@@SAABUQMetaObject@@XZ @ 322 NONAME ; struct QMetaObject const & QtMobility::QBluetoothServiceDiscoveryAgent::getStaticMetaObject(void)
- ?error@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXW4Error@12@@Z @ 323 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::error(enum QtMobility::QBluetoothServiceDiscoveryAgent::Error)
- ?metaObject@QBluetoothServiceDiscoveryAgent@QtMobility@@UBEPBUQMetaObject@@XZ @ 324 NONAME ; struct QMetaObject const * QtMobility::QBluetoothServiceDiscoveryAgent::metaObject(void) const
- ?readBlock@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 325 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readBlock(unsigned char)
- ??1QBluetoothHostInfo@QtMobility@@QAE@XZ @ 326 NONAME ; QtMobility::QBluetoothHostInfo::~QBluetoothHostInfo(void)
- ?attribute@QBluetoothServiceInfo@QtMobility@@QBE?AVQVariant@@G@Z @ 327 NONAME ; class QVariant QtMobility::QBluetoothServiceInfo::attribute(unsigned short) const
- ?select@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 328 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::select(class QByteArray const &)
- ?serviceData@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@G@Z @ 329 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::serviceData(unsigned short)
- ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JABVQByteArray@@@Z @ 330 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(class QByteArray const &)
- ?qt_metacall@QNearFieldTagType2@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 331 NONAME ; int QtMobility::QNearFieldTagType2::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?error@QNearFieldTarget@QtMobility@@IAEXW4Error@12@ABVRequestId@12@@Z @ 332 NONAME ; void QtMobility::QNearFieldTarget::error(enum QtMobility::QNearFieldTarget::Error, class QtMobility::QNearFieldTarget::RequestId const &)
- ?requestPairing@QBluetoothLocalDevice@QtMobility@@QAEXABVQBluetoothAddress@2@W4Pairing@12@@Z @ 333 NONAME ; void QtMobility::QBluetoothLocalDevice::requestPairing(class QtMobility::QBluetoothAddress const &, enum QtMobility::QBluetoothLocalDevice::Pairing)
- ?trUtf8@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0@Z @ 334 NONAME ; class QString QtMobility::QNearFieldManager::trUtf8(char const *, char const *)
- ?qt_metacast@QBluetoothLocalDevice@QtMobility@@UAEPAXPBD@Z @ 335 NONAME ; void * QtMobility::QBluetoothLocalDevice::qt_metacast(char const *)
- ?isActive@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE_NXZ @ 336 NONAME ; bool QtMobility::QBluetoothServiceDiscoveryAgent::isActive(void) const
- ?writeBlock@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@EABVQByteArray@@W4WriteMode@12@@Z @ 337 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::writeBlock(unsigned char, class QByteArray const &, enum QtMobility::QNearFieldTagType1::WriteMode)
- ?state@QBluetoothSocket@QtMobility@@QBE?AW4SocketState@12@XZ @ 338 NONAME ; enum QtMobility::QBluetoothSocket::SocketState QtMobility::QBluetoothSocket::state(void) const
- ?type@QNearFieldTagType1@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 339 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType1::type(void) const
- ?trUtf8@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0@Z @ 340 NONAME ; class QString QtMobility::QNearFieldTagType4::trUtf8(char const *, char const *)
- ?metaObject@QNearFieldTarget@QtMobility@@UBEPBUQMetaObject@@XZ @ 341 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTarget::metaObject(void) const
- ?handleResponse@QNearFieldTagType4@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 342 NONAME ; bool QtMobility::QNearFieldTagType4::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
- ?setCached@QBluetoothDeviceInfo@QtMobility@@QAEX_N@Z @ 343 NONAME ; void QtMobility::QBluetoothDeviceInfo::setCached(bool)
- ??4QBluetoothDeviceInfo@QtMobility@@QAEAAV01@ABV01@@Z @ 344 NONAME ; class QtMobility::QBluetoothDeviceInfo & QtMobility::QBluetoothDeviceInfo::operator=(class QtMobility::QBluetoothDeviceInfo const &)
- ??1RequestId@QNearFieldTarget@QtMobility@@QAE@XZ @ 345 NONAME ; QtMobility::QNearFieldTarget::RequestId::~RequestId(void)
- ?qt_metacast@QL2capServer@QtMobility@@UAEPAXPBD@Z @ 346 NONAME ; void * QtMobility::QL2capServer::qt_metacast(char const *)
- ??MRequestId@QNearFieldTarget@QtMobility@@QBE_NABV012@@Z @ 347 NONAME ; bool QtMobility::QNearFieldTarget::RequestId::operator<(class QtMobility::QNearFieldTarget::RequestId const &) const
- ?staticMetaObject@QRfcommServer@QtMobility@@2UQMetaObject@@B @ 348 NONAME ; struct QMetaObject const QtMobility::QRfcommServer::staticMetaObject
- ?recordAt@QNdefFilter@QtMobility@@QBE?AURecord@12@H@Z @ 349 NONAME ; struct QtMobility::QNdefFilter::Record QtMobility::QNdefFilter::recordAt(int) const
- ?trUtf8@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0H@Z @ 350 NONAME ; class QString QtMobility::QNearFieldTagType1::trUtf8(char const *, char const *, int)
- ?check@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABV?$QMap@GV?$QList@G@@@@@Z @ 351 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::check(class QMap<unsigned short, class QList<unsigned short> > const &)
- ?hostMode@QBluetoothLocalDevice@QtMobility@@QBE?AW4HostMode@12@XZ @ 352 NONAME ; enum QtMobility::QBluetoothLocalDevice::HostMode QtMobility::QBluetoothLocalDevice::hostMode(void) const
- ?discoveredServices@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AV?$QList@VQBluetoothServiceInfo@QtMobility@@@@XZ @ 353 NONAME ; class QList<class QtMobility::QBluetoothServiceInfo> QtMobility::QBluetoothServiceDiscoveryAgent::discoveredServices(void) const
- ??8QBluetoothDeviceInfo@QtMobility@@QBE_NABV01@@Z @ 354 NONAME ; bool QtMobility::QBluetoothDeviceInfo::operator==(class QtMobility::QBluetoothDeviceInfo const &) const
- ?unregisterService@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 355 NONAME ; bool QtMobility::QBluetoothServiceInfo::unregisterService(void) const
- ??0QNearFieldManager@QtMobility@@QAE@PAVQNearFieldManagerPrivate@1@PAVQObject@@@Z @ 356 NONAME ; QtMobility::QNearFieldManager::QNearFieldManager(class QtMobility::QNearFieldManagerPrivate *, class QObject *)
- ?readNdefMessages@QNearFieldTagType2@QtMobility@@UAEXXZ @ 357 NONAME ; void QtMobility::QNearFieldTagType2::readNdefMessages(void)
- ?trUtf8@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0H@Z @ 358 NONAME ; class QString QtMobility::QBluetoothLocalDevice::trUtf8(char const *, char const *, int)
- ?d_func@QRfcommServer@QtMobility@@ABEPBVQRfcommServerPrivate@2@XZ @ 359 NONAME ; class QtMobility::QRfcommServerPrivate const * QtMobility::QRfcommServer::d_func(void) const
- ?close@QBluetoothSocket@QtMobility@@UAEXXZ @ 360 NONAME ; void QtMobility::QBluetoothSocket::close(void)
- ?tr@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 361 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::tr(char const *, char const *)
- ?qt_metacall@QLlcpServer@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 362 NONAME ; int QtMobility::QLlcpServer::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?serverPort@QL2capServer@QtMobility@@QBEGXZ @ 363 NONAME ; unsigned short QtMobility::QL2capServer::serverPort(void) const
- ?qt_metacast@QNearFieldManager@QtMobility@@UAEPAXPBD@Z @ 364 NONAME ; void * QtMobility::QNearFieldManager::qt_metacast(char const *)
- ?tr@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 365 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::tr(char const *, char const *, int)
- ?appendRecord@QNdefFilter@QtMobility@@QAEXW4TypeNameFormat@QNdefRecord@2@ABVQByteArray@@II@Z @ 366 NONAME ; void QtMobility::QNdefFilter::appendRecord(enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &, unsigned int, unsigned int)
- ?put@QBluetoothTransferManager@QtMobility@@QAEPAVQBluetoothTransferReply@2@ABVQBluetoothTransferRequest@2@PAVQIODevice@@@Z @ 367 NONAME ; class QtMobility::QBluetoothTransferReply * QtMobility::QBluetoothTransferManager::put(class QtMobility::QBluetoothTransferRequest const &, class QIODevice *)
- ?tr@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 368 NONAME ; class QString QtMobility::QBluetoothTransferManager::tr(char const *, char const *, int)
- ?disconnected@QNearFieldTarget@QtMobility@@IAEXXZ @ 369 NONAME ; void QtMobility::QNearFieldTarget::disconnected(void)
- ?d_func@QLlcpSocket@QtMobility@@AAEPAVQLlcpSocketPrivate@2@XZ @ 370 NONAME ; class QtMobility::QLlcpSocketPrivate * QtMobility::QLlcpSocket::d_func(void)
- ??0QBluetoothLocalDevice@QtMobility@@QAE@PAVQObject@@@Z @ 371 NONAME ; QtMobility::QBluetoothLocalDevice::QBluetoothLocalDevice(class QObject *)
- ?qt_metacall@QBluetoothTransferReply@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 372 NONAME ; int QtMobility::QBluetoothTransferReply::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?update@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABV?$QMap@GV?$QList@G@@@@ABVQByteArray@@@Z @ 373 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::update(class QMap<unsigned short, class QList<unsigned short> > const &, class QByteArray const &)
- ?trUtf8@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 374 NONAME ; class QString QtMobility::QBluetoothSocket::trUtf8(char const *, char const *, int)
- ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JPBD_JPAVQNearFieldTarget@2@E@Z @ 375 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(char const *, long long, class QtMobility::QNearFieldTarget *, unsigned char)
- ??0QBluetoothServiceInfo@QtMobility@@QAE@XZ @ 376 NONAME ; QtMobility::QBluetoothServiceInfo::QBluetoothServiceInfo(void)
- ??_EQBluetoothUuid@QtMobility@@QAE@I@Z @ 377 NONAME ; QtMobility::QBluetoothUuid::~QBluetoothUuid(unsigned int)
- ?unregisterNdefMessageHandler@QNearFieldManager@QtMobility@@QAE_NH@Z @ 378 NONAME ; bool QtMobility::QNearFieldManager::unregisterNdefMessageHandler(int)
- ?connected@QBluetoothSocket@QtMobility@@IAEXXZ @ 379 NONAME ; void QtMobility::QBluetoothSocket::connected(void)
- ??_EQNearFieldManager@QtMobility@@UAE@I@Z @ 380 NONAME ; QtMobility::QNearFieldManager::~QNearFieldManager(unsigned int)
- ?d_func@QLlcpServer@QtMobility@@AAEPAVQLlcpServerPrivate@2@XZ @ 381 NONAME ; class QtMobility::QLlcpServerPrivate * QtMobility::QLlcpServer::d_func(void)
- ??0QBluetoothTransferReplyPrivate@QtMobility@@QAE@XZ @ 382 NONAME ; QtMobility::QBluetoothTransferReplyPrivate::QBluetoothTransferReplyPrivate(void)
- ??0QBluetoothServiceDiscoveryAgent@QtMobility@@QAE@PAVQObject@@@Z @ 383 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::QBluetoothServiceDiscoveryAgent(class QObject *)
- ?systemCode@QNearFieldTagType3@QtMobility@@QAEGXZ @ 384 NONAME ; unsigned short QtMobility::QNearFieldTagType3::systemCode(void)
- ?newConnection@QRfcommServer@QtMobility@@IAEXXZ @ 385 NONAME ; void QtMobility::QRfcommServer::newConnection(void)
- ?qt_metacast@QRfcommServer@QtMobility@@UAEPAXPBD@Z @ 386 NONAME ; void * QtMobility::QRfcommServer::qt_metacast(char const *)
- ?setUri@QNdefNfcUriRecord@QtMobility@@QAEXABVQUrl@@@Z @ 387 NONAME ; void QtMobility::QNdefNfcUriRecord::setUri(class QUrl const &)
- ??_EQBluetoothTransferManager@QtMobility@@UAE@I@Z @ 388 NONAME ; QtMobility::QBluetoothTransferManager::~QBluetoothTransferManager(unsigned int)
- ?close@QRfcommServer@QtMobility@@QAEXXZ @ 389 NONAME ; void QtMobility::QRfcommServer::close(void)
- ?readNdefMessages@QNearFieldTagType1@QtMobility@@UAEXXZ @ 390 NONAME ; void QtMobility::QNearFieldTagType1::readNdefMessages(void)
- ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVQBluetoothUuid@2@@Z @ 391 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QtMobility::QBluetoothUuid const &)
- ??0QBluetoothUuid@QtMobility@@QAE@W4ServiceClassUuid@01@@Z @ 392 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(enum QtMobility::QBluetoothUuid::ServiceClassUuid)
- ??0QBluetoothUuid@QtMobility@@QAE@ABV01@@Z @ 393 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(class QtMobility::QBluetoothUuid const &)
- ??0QBluetoothDeviceDiscoveryAgent@QtMobility@@QAE@PAVQObject@@@Z @ 394 NONAME ; QtMobility::QBluetoothDeviceDiscoveryAgent::QBluetoothDeviceDiscoveryAgent(class QObject *)
- ?disconnected@QBluetoothSocket@QtMobility@@IAEXXZ @ 395 NONAME ; void QtMobility::QBluetoothSocket::disconnected(void)
- ?serverPort@QLlcpServer@QtMobility@@QBEEXZ @ 396 NONAME ; unsigned char QtMobility::QLlcpServer::serverPort(void) const
- ?setMaxPendingConnections@QL2capServer@QtMobility@@QAEXH@Z @ 397 NONAME ; void QtMobility::QL2capServer::setMaxPendingConnections(int)
- ?setSecurityFlags@QRfcommServer@QtMobility@@QAEXV?$QFlags@W4Security@QBluetooth@QtMobility@@@@@Z @ 398 NONAME ; void QtMobility::QRfcommServer::setSecurityFlags(class QFlags<enum QtMobility::QBluetooth::Security>)
- ??8QNdefRecord@QtMobility@@QBE_NABV01@@Z @ 399 NONAME ; bool QtMobility::QNdefRecord::operator==(class QtMobility::QNdefRecord const &) const
- ??0QBluetoothTransferRequest@QtMobility@@QAE@ABVQBluetoothAddress@1@@Z @ 400 NONAME ; QtMobility::QBluetoothTransferRequest::QBluetoothTransferRequest(class QtMobility::QBluetoothAddress const &)
- ?qt_metacall@QRfcommServer@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 401 NONAME ; int QtMobility::QRfcommServer::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?setInquiryType@QBluetoothDeviceDiscoveryAgent@QtMobility@@QAEXW4InquiryType@12@@Z @ 402 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::setInquiryType(enum QtMobility::QBluetoothDeviceDiscoveryAgent::InquiryType)
- ??_EQNearFieldTagType3@QtMobility@@UAE@I@Z @ 403 NONAME ; QtMobility::QNearFieldTagType3::~QNearFieldTagType3(unsigned int)
- ?listen@QL2capServer@QtMobility@@QAE_NABVQBluetoothAddress@2@G@Z @ 404 NONAME ; bool QtMobility::QL2capServer::listen(class QtMobility::QBluetoothAddress const &, unsigned short)
- ?metaObject@QNearFieldTagType3@QtMobility@@UBEPBUQMetaObject@@XZ @ 405 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType3::metaObject(void) const
- ??9QNdefRecord@QtMobility@@QBE_NABV01@@Z @ 406 NONAME ; bool QtMobility::QNdefRecord::operator!=(class QtMobility::QNdefRecord const &) const
- ?isValid@QBluetoothLocalDevice@QtMobility@@QBE_NXZ @ 407 NONAME ; bool QtMobility::QBluetoothLocalDevice::isValid(void) const
- ?setSocketDescriptor@QBluetoothSocket@QtMobility@@QAE_NHW4SocketType@12@W4SocketState@12@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 408 NONAME ; bool QtMobility::QBluetoothSocket::setSocketDescriptor(int, enum QtMobility::QBluetoothSocket::SocketType, enum QtMobility::QBluetoothSocket::SocketState, class QFlags<enum QIODevice::OpenModeFlag>)
- ?bytesToWrite@QBluetoothSocket@QtMobility@@UBE_JXZ @ 409 NONAME ; long long QtMobility::QBluetoothSocket::bytesToWrite(void) const
- ?waitForRequestCompleted@QNearFieldTagType2@QtMobility@@UAE_NABVRequestId@QNearFieldTarget@2@H@Z @ 410 NONAME ; bool QtMobility::QNearFieldTagType2::waitForRequestCompleted(class QtMobility::QNearFieldTarget::RequestId const &, int)
- ?trUtf8@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 411 NONAME ; class QString QtMobility::QLlcpSocket::trUtf8(char const *, char const *, int)
- ?getStaticMetaObject@QBluetoothSocket@QtMobility@@SAABUQMetaObject@@XZ @ 412 NONAME ; struct QMetaObject const & QtMobility::QBluetoothSocket::getStaticMetaObject(void)
- ?listen@QRfcommServer@QtMobility@@QAE_NABVQBluetoothAddress@2@G@Z @ 413 NONAME ; bool QtMobility::QRfcommServer::listen(class QtMobility::QBluetoothAddress const &, unsigned short)
- ?d_func@QNearFieldTagType2@QtMobility@@ABEPBVQNearFieldTagType2Private@2@XZ @ 414 NONAME ; class QtMobility::QNearFieldTagType2Private const * QtMobility::QNearFieldTagType2::d_func(void) const
- ?staticMetaObject@QNearFieldTagType4@QtMobility@@2UQMetaObject@@B @ 415 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType4::staticMetaObject
- ?tr@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0H@Z @ 416 NONAME ; class QString QtMobility::QNearFieldTagType3::tr(char const *, char const *, int)
- ??0QLlcpSocket@QtMobility@@AAE@PAVQLlcpSocketPrivate@1@PAVQObject@@@Z @ 417 NONAME ; QtMobility::QLlcpSocket::QLlcpSocket(class QtMobility::QLlcpSocketPrivate *, class QObject *)
- ?serviceMemorySize@QNearFieldTagType3@QtMobility@@QAEHG@Z @ 418 NONAME ; int QtMobility::QNearFieldTagType3::serviceMemorySize(unsigned short)
- ?rssi@QBluetoothDeviceInfo@QtMobility@@QBEFXZ @ 419 NONAME ; short QtMobility::QBluetoothDeviceInfo::rssi(void) const
- ?tr@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0@Z @ 420 NONAME ; class QString QtMobility::QNearFieldTagType1::tr(char const *, char const *)
- ?canceled@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXXZ @ 421 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::canceled(void)
- ?canReadLine@QBluetoothSocket@QtMobility@@UBE_NXZ @ 422 NONAME ; bool QtMobility::QBluetoothSocket::canReadLine(void) const
- ?bind@QLlcpSocket@QtMobility@@QAE_NE@Z @ 423 NONAME ; bool QtMobility::QLlcpSocket::bind(unsigned char)
- ??_EQL2capServer@QtMobility@@UAE@I@Z @ 424 NONAME ; QtMobility::QL2capServer::~QL2capServer(unsigned int)
- ?error@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AW4Error@12@XZ @ 425 NONAME ; enum QtMobility::QBluetoothServiceDiscoveryAgent::Error QtMobility::QBluetoothServiceDiscoveryAgent::error(void) const
- ?writeNdefMessages@QNearFieldTagType2@QtMobility@@UAEXABV?$QList@VQNdefMessage@QtMobility@@@@@Z @ 426 NONAME ; void QtMobility::QNearFieldTagType2::writeNdefMessages(class QList<class QtMobility::QNdefMessage> const &)
- ??_EQLlcpServer@QtMobility@@UAE@I@Z @ 427 NONAME ; QtMobility::QLlcpServer::~QLlcpServer(unsigned int)
- ??4QNdefRecord@QtMobility@@QAEAAV01@ABV01@@Z @ 428 NONAME ; class QtMobility::QNdefRecord & QtMobility::QNdefRecord::operator=(class QtMobility::QNdefRecord const &)
- ?metaObject@QL2capServer@QtMobility@@UBEPBUQMetaObject@@XZ @ 429 NONAME ; struct QMetaObject const * QtMobility::QL2capServer::metaObject(void) const
- ?toUInt32@QBluetoothUuid@QtMobility@@QBEIPA_N@Z @ 430 NONAME ; unsigned int QtMobility::QBluetoothUuid::toUInt32(bool *) const
- ??0QBluetoothDeviceInfo@QtMobility@@QAE@ABVQBluetoothAddress@1@ABVQString@@I@Z @ 431 NONAME ; QtMobility::QBluetoothDeviceInfo::QBluetoothDeviceInfo(class QtMobility::QBluetoothAddress const &, class QString const &, unsigned int)
- ?connectToService@QBluetoothSocket@QtMobility@@QAEXABVQBluetoothServiceInfo@2@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 432 NONAME ; void QtMobility::QBluetoothSocket::connectToService(class QtMobility::QBluetoothServiceInfo const &, class QFlags<enum QIODevice::OpenModeFlag>)
- ?timerEvent@QNearFieldTagType2@QtMobility@@UAEXPAVQTimerEvent@@@Z @ 433 NONAME ; void QtMobility::QNearFieldTagType2::timerEvent(class QTimerEvent *)
- ?tr@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0@Z @ 434 NONAME ; class QString QtMobility::QBluetoothTransferManager::tr(char const *, char const *)
- ?trUtf8@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 435 NONAME ; class QString QtMobility::QBluetoothTransferManager::trUtf8(char const *, char const *, int)
- ?setSocketState@QBluetoothSocket@QtMobility@@IAEXW4SocketState@12@@Z @ 436 NONAME ; void QtMobility::QBluetoothSocket::setSocketState(enum QtMobility::QBluetoothSocket::SocketState)
- ?getName@QBluetoothHostInfo@QtMobility@@QBE?AVQString@@XZ @ 437 NONAME ; class QString QtMobility::QBluetoothHostInfo::getName(void) const
- ?version@QNearFieldTagType4@QtMobility@@QAEEXZ @ 438 NONAME ; unsigned char QtMobility::QNearFieldTagType4::version(void)
- ?requestCompleted@QNearFieldTarget@QtMobility@@IAEXABVRequestId@12@@Z @ 439 NONAME ; void QtMobility::QNearFieldTarget::requestCompleted(class QtMobility::QNearFieldTarget::RequestId const &)
- ?trUtf8@QLlcpServer@QtMobility@@SA?AVQString@@PBD0@Z @ 440 NONAME ; class QString QtMobility::QLlcpServer::trUtf8(char const *, char const *)
- ?setTypeNameFormat@QNdefRecord@QtMobility@@QAEXW4TypeNameFormat@12@@Z @ 441 NONAME ; void QtMobility::QNdefRecord::setTypeNameFormat(enum QtMobility::QNdefRecord::TypeNameFormat)
- ?d_func@QNearFieldTagType1@QtMobility@@AAEPAVQNearFieldTagType1Private@2@XZ @ 442 NONAME ; class QtMobility::QNearFieldTagType1Private * QtMobility::QNearFieldTagType1::d_func(void)
- ?name@QBluetoothDeviceInfo@QtMobility@@QBE?AVQString@@XZ @ 443 NONAME ; class QString QtMobility::QBluetoothDeviceInfo::name(void) const
- ?serverChannel@QBluetoothServiceInfo@QtMobility@@QBEHXZ @ 444 NONAME ; int QtMobility::QBluetoothServiceInfo::serverChannel(void) const
- ?tr@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 445 NONAME ; class QString QtMobility::QLlcpSocket::tr(char const *, char const *, int)
- ??0QBluetoothUuid@QtMobility@@QAE@G@Z @ 446 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(unsigned short)
- ?waitForBytesWritten@QLlcpSocket@QtMobility@@UAE_NH@Z @ 447 NONAME ; bool QtMobility::QLlcpSocket::waitForBytesWritten(int)
- ??1QBluetoothTransferRequest@QtMobility@@QAE@XZ @ 448 NONAME ; QtMobility::QBluetoothTransferRequest::~QBluetoothTransferRequest(void)
- ?hasPendingConnections@QRfcommServer@QtMobility@@QBE_NXZ @ 449 NONAME ; bool QtMobility::QRfcommServer::hasPendingConnections(void) const
- ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JPBD_J@Z @ 450 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(char const *, long long)
- ?encoding@QNdefNfcTextRecord@QtMobility@@QBE?AW4Encoding@12@XZ @ 451 NONAME ; enum QtMobility::QNdefNfcTextRecord::Encoding QtMobility::QNdefNfcTextRecord::encoding(void) const
- ?getStaticMetaObject@QNearFieldManager@QtMobility@@SAABUQMetaObject@@XZ @ 452 NONAME ; struct QMetaObject const & QtMobility::QNearFieldManager::getStaticMetaObject(void)
- ??0QNdefRecord@QtMobility@@IAE@W4TypeNameFormat@01@ABVQByteArray@@@Z @ 453 NONAME ; QtMobility::QNdefRecord::QNdefRecord(enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &)
- ?hasPendingConnections@QL2capServer@QtMobility@@QBE_NXZ @ 454 NONAME ; bool QtMobility::QL2capServer::hasPendingConnections(void) const
- ??6QtMobility@@YA?AVQDebug@@V1@ABVQBluetoothServiceInfo@0@@Z @ 455 NONAME ; class QDebug QtMobility::operator<<(class QDebug, class QtMobility::QBluetoothServiceInfo const &)
- ?nextPendingConnection@QL2capServer@QtMobility@@QAEPAVQBluetoothSocket@2@XZ @ 456 NONAME ; class QtMobility::QBluetoothSocket * QtMobility::QL2capServer::nextPendingConnection(void)
- ?tr@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 457 NONAME ; class QString QtMobility::QLlcpSocket::tr(char const *, char const *)
- ?finished@QBluetoothTransferReply@QtMobility@@IAEXPAV12@@Z @ 458 NONAME ; void QtMobility::QBluetoothTransferReply::finished(class QtMobility::QBluetoothTransferReply *)
- ?powerOn@QBluetoothLocalDevice@QtMobility@@QAEXXZ @ 459 NONAME ; void QtMobility::QBluetoothLocalDevice::powerOn(void)
- ??8QBluetoothUuid@QtMobility@@QBE_NABV01@@Z @ 460 NONAME ; bool QtMobility::QBluetoothUuid::operator==(class QtMobility::QBluetoothUuid const &) const
- ??8QBluetoothAddress@QtMobility@@QBE_NABV01@@Z @ 461 NONAME ; bool QtMobility::QBluetoothAddress::operator==(class QtMobility::QBluetoothAddress const &) const
- ?qt_metacast@QBluetoothDeviceDiscoveryAgent@QtMobility@@UAEPAXPBD@Z @ 462 NONAME ; void * QtMobility::QBluetoothDeviceDiscoveryAgent::qt_metacast(char const *)
- ?removeAttribute@QBluetoothServiceInfo@QtMobility@@QAEXG@Z @ 463 NONAME ; void QtMobility::QBluetoothServiceInfo::removeAttribute(unsigned short)
- ?writeByte@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@EEW4WriteMode@12@@Z @ 464 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::writeByte(unsigned char, unsigned char, enum QtMobility::QNearFieldTagType1::WriteMode)
- ??0RequestId@QNearFieldTarget@QtMobility@@QAE@PAVRequestIdPrivate@12@@Z @ 465 NONAME ; QtMobility::QNearFieldTarget::RequestId::RequestId(class QtMobility::QNearFieldTarget::RequestIdPrivate *)
- ?qt_metacast@QBluetoothTransferManager@QtMobility@@UAEPAXPBD@Z @ 466 NONAME ; void * QtMobility::QBluetoothTransferManager::qt_metacast(char const *)
- ?trUtf8@QRfcommServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 467 NONAME ; class QString QtMobility::QRfcommServer::trUtf8(char const *, char const *, int)
- ?clear@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXXZ @ 468 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::clear(void)
- ??0QBluetoothLocalDevice@QtMobility@@QAE@ABVQBluetoothAddress@1@PAVQObject@@@Z @ 469 NONAME ; QtMobility::QBluetoothLocalDevice::QBluetoothLocalDevice(class QtMobility::QBluetoothAddress const &, class QObject *)
- ?orderMatch@QNdefFilter@QtMobility@@QBE_NXZ @ 470 NONAME ; bool QtMobility::QNdefFilter::orderMatch(void) const
- ?url@QNearFieldTarget@QtMobility@@UBE?AVQUrl@@XZ @ 471 NONAME ; class QUrl QtMobility::QNearFieldTarget::url(void) const
- ??0QNdefRecord@QtMobility@@QAE@XZ @ 472 NONAME ; QtMobility::QNdefRecord::QNdefRecord(void)
- ?serviceProvider@QBluetoothServiceInfo@QtMobility@@QBE?AVQString@@XZ @ 473 NONAME ; class QString QtMobility::QBluetoothServiceInfo::serviceProvider(void) const
- ??6QtMobility@@YA?AVQDebug@@V1@W4SocketError@QBluetoothSocket@0@@Z @ 474 NONAME ; class QDebug QtMobility::operator<<(class QDebug, enum QtMobility::QBluetoothSocket::SocketError)
- ??0QBluetoothUuid@QtMobility@@QAE@ABVQString@@@Z @ 475 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(class QString const &)
- ??0QNdefMessage@QtMobility@@QAE@XZ @ 476 NONAME ; QtMobility::QNdefMessage::QNdefMessage(void)
- ?d_func@QBluetoothServiceDiscoveryAgent@QtMobility@@ABEPBVQBluetoothServiceDiscoveryAgentPrivate@2@XZ @ 477 NONAME ; class QtMobility::QBluetoothServiceDiscoveryAgentPrivate const * QtMobility::QBluetoothServiceDiscoveryAgent::d_func(void) const
- ?setName@QBluetoothHostInfo@QtMobility@@QAEXABVQString@@@Z @ 478 NONAME ; void QtMobility::QBluetoothHostInfo::setName(class QString const &)
- ?getStaticMetaObject@QRfcommServer@QtMobility@@SAABUQMetaObject@@XZ @ 479 NONAME ; struct QMetaObject const & QtMobility::QRfcommServer::getStaticMetaObject(void)
- ?isComplete@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 480 NONAME ; bool QtMobility::QBluetoothServiceInfo::isComplete(void) const
- ?error@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AW4Error@12@XZ @ 481 NONAME ; enum QtMobility::QBluetoothDeviceDiscoveryAgent::Error QtMobility::QBluetoothDeviceDiscoveryAgent::error(void) const
- ?hostModeStateChanged@QBluetoothLocalDevice@QtMobility@@IAEXW4HostMode@12@@Z @ 482 NONAME ; void QtMobility::QBluetoothLocalDevice::hostModeStateChanged(enum QtMobility::QBluetoothLocalDevice::HostMode)
- ?registerNdefMessageHandler@QNearFieldManager@QtMobility@@QAEHPAVQObject@@PBD@Z @ 483 NONAME ; int QtMobility::QNearFieldManager::registerNdefMessageHandler(class QObject *, char const *)
- ?requestResponse@QNearFieldTarget@QtMobility@@QAE?AVQVariant@@ABVRequestId@12@@Z @ 484 NONAME ; class QVariant QtMobility::QNearFieldTarget::requestResponse(class QtMobility::QNearFieldTarget::RequestId const &)
- ?d_func@QBluetoothDeviceInfo@QtMobility@@AAEPAVQBluetoothDeviceInfoPrivate@2@XZ @ 485 NONAME ; class QtMobility::QBluetoothDeviceInfoPrivate * QtMobility::QBluetoothDeviceInfo::d_func(void)
- ?serverError@QLlcpServer@QtMobility@@QBE?AW4SocketError@QLlcpSocket@2@XZ @ 486 NONAME ; enum QtMobility::QLlcpSocket::SocketError QtMobility::QLlcpServer::serverError(void) const
- ?pairingDisplayPinCode@QBluetoothLocalDevice@QtMobility@@IAEXABVQBluetoothAddress@2@VQString@@@Z @ 487 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingDisplayPinCode(class QtMobility::QBluetoothAddress const &, class QString)
- ??0QBluetoothTransferReply@QtMobility@@IAE@PAVQObject@@@Z @ 488 NONAME ; QtMobility::QBluetoothTransferReply::QBluetoothTransferReply(class QObject *)
- ?qt_metacall@QBluetoothTransferManager@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 489 NONAME ; int QtMobility::QBluetoothTransferManager::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?majorDeviceClass@QBluetoothDeviceInfo@QtMobility@@QBE?AW4MajorDeviceClass@12@XZ @ 490 NONAME ; enum QtMobility::QBluetoothDeviceInfo::MajorDeviceClass QtMobility::QBluetoothDeviceInfo::majorDeviceClass(void) const
- ?trUtf8@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 491 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::trUtf8(char const *, char const *)
- ?contains@QBluetoothServiceInfo@QtMobility@@QBE_NG@Z @ 492 NONAME ; bool QtMobility::QBluetoothServiceInfo::contains(unsigned short) const
- ?securityFlags@QL2capServer@QtMobility@@QBE?AV?$QFlags@W4Security@QBluetooth@QtMobility@@@@XZ @ 493 NONAME ; class QFlags<enum QtMobility::QBluetooth::Security> QtMobility::QL2capServer::securityFlags(void) const
- ??4QBluetoothServiceInfo@QtMobility@@QAEAAV01@ABV01@@Z @ 494 NONAME ; class QtMobility::QBluetoothServiceInfo & QtMobility::QBluetoothServiceInfo::operator=(class QtMobility::QBluetoothServiceInfo const &)
- ?isCached@QBluetoothDeviceInfo@QtMobility@@QBE_NXZ @ 495 NONAME ; bool QtMobility::QBluetoothDeviceInfo::isCached(void) const
- ?metaObject@QBluetoothSocket@QtMobility@@UBEPBUQMetaObject@@XZ @ 496 NONAME ; struct QMetaObject const * QtMobility::QBluetoothSocket::metaObject(void) const
- ?isListening@QL2capServer@QtMobility@@QBE_NXZ @ 497 NONAME ; bool QtMobility::QL2capServer::isListening(void) const
- ?qt_metacall@QNearFieldManager@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 498 NONAME ; int QtMobility::QNearFieldManager::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?hasNdefMessage@QNearFieldTagType2@QtMobility@@UAE_NXZ @ 499 NONAME ; bool QtMobility::QNearFieldTagType2::hasNdefMessage(void)
- ?staticMetaObject@QNearFieldTagType1@QtMobility@@2UQMetaObject@@B @ 500 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType1::staticMetaObject
- ?tr@QL2capServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 501 NONAME ; class QString QtMobility::QL2capServer::tr(char const *, char const *, int)
- ?handleResponse@QNearFieldTagType1@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 502 NONAME ; bool QtMobility::QNearFieldTagType1::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
- ?address@QBluetoothDeviceInfo@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 503 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothDeviceInfo::address(void) const
- ?version@QNearFieldTagType2@QtMobility@@QAEEXZ @ 504 NONAME ; unsigned char QtMobility::QNearFieldTagType2::version(void)
- ?tr@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0@Z @ 505 NONAME ; class QString QtMobility::QNearFieldTagType3::tr(char const *, char const *)
- ?hasNdefMessage@QNearFieldTarget@QtMobility@@UAE_NXZ @ 506 NONAME ; bool QtMobility::QNearFieldTarget::hasNdefMessage(void)
- ?waitForReadyRead@QLlcpSocket@QtMobility@@UAE_NH@Z @ 507 NONAME ; bool QtMobility::QLlcpSocket::waitForReadyRead(int)
- ?connectToService@QBluetoothSocket@QtMobility@@QAEXABVQBluetoothAddress@2@GV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 508 NONAME ; void QtMobility::QBluetoothSocket::connectToService(class QtMobility::QBluetoothAddress const &, unsigned short, class QFlags<enum QIODevice::OpenModeFlag>)
- ?getStaticMetaObject@QLlcpSocket@QtMobility@@SAABUQMetaObject@@XZ @ 509 NONAME ; struct QMetaObject const & QtMobility::QLlcpSocket::getStaticMetaObject(void)
- ?state@QLlcpSocket@QtMobility@@QBE?AW4SocketState@12@XZ @ 510 NONAME ; enum QtMobility::QLlcpSocket::SocketState QtMobility::QLlcpSocket::state(void) const
- ??_EQBluetoothSocket@QtMobility@@UAE@I@Z @ 511 NONAME ; QtMobility::QBluetoothSocket::~QBluetoothSocket(unsigned int)
- ?metaObject@QBluetoothLocalDevice@QtMobility@@UBEPBUQMetaObject@@XZ @ 512 NONAME ; struct QMetaObject const * QtMobility::QBluetoothLocalDevice::metaObject(void) const
- ?trUtf8@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0H@Z @ 513 NONAME ; class QString QtMobility::QNearFieldTagType3::trUtf8(char const *, char const *, int)
- ?stateChanged@QLlcpSocket@QtMobility@@IAEXW4SocketState@12@@Z @ 514 NONAME ; void QtMobility::QLlcpSocket::stateChanged(enum QtMobility::QLlcpSocket::SocketState)
- ?tr@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0H@Z @ 515 NONAME ; class QString QtMobility::QBluetoothTransferReply::tr(char const *, char const *, int)
- ?qt_metacast@QLlcpServer@QtMobility@@UAEPAXPBD@Z @ 516 NONAME ; void * QtMobility::QLlcpServer::qt_metacast(char const *)
- ?readIdentification@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@XZ @ 517 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readIdentification(void)
- ??_EQNdefRecord@QtMobility@@QAE@I@Z @ 518 NONAME ; QtMobility::QNdefRecord::~QNdefRecord(unsigned int)
- ?startTargetDetection@QNearFieldManager@QtMobility@@QAE_NABV?$QList@W4Type@QNearFieldTarget@QtMobility@@@@@Z @ 519 NONAME ; bool QtMobility::QNearFieldManager::startTargetDetection(class QList<enum QtMobility::QNearFieldTarget::Type> const &)
- ??_EQNearFieldTarget@QtMobility@@UAE@I@Z @ 520 NONAME ; QtMobility::QNearFieldTarget::~QNearFieldTarget(unsigned int)
- ?waitForDisconnected@QLlcpSocket@QtMobility@@UAE_NH@Z @ 521 NONAME ; bool QtMobility::QLlcpSocket::waitForDisconnected(int)
- ?d_func@QLlcpSocket@QtMobility@@ABEPBVQLlcpSocketPrivate@2@XZ @ 522 NONAME ; class QtMobility::QLlcpSocketPrivate const * QtMobility::QLlcpSocket::d_func(void) const
- ?readAll@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@XZ @ 523 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readAll(void)
- ?isRegistered@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 524 NONAME ; bool QtMobility::QBluetoothServiceInfo::isRegistered(void) const
- ?isActive@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE_NXZ @ 525 NONAME ; bool QtMobility::QBluetoothDeviceDiscoveryAgent::isActive(void) const
- ?metaObject@QNearFieldManager@QtMobility@@UBEPBUQMetaObject@@XZ @ 526 NONAME ; struct QMetaObject const * QtMobility::QNearFieldManager::metaObject(void) const
- ?version@QNearFieldTagType1@QtMobility@@QAEEXZ @ 527 NONAME ; unsigned char QtMobility::QNearFieldTagType1::version(void)
- ?deviceDiscovered@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXABVQBluetoothDeviceInfo@2@@Z @ 528 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::deviceDiscovered(class QtMobility::QBluetoothDeviceInfo const &)
- ?d_func@QLlcpServer@QtMobility@@ABEPBVQLlcpServerPrivate@2@XZ @ 529 NONAME ; class QtMobility::QLlcpServerPrivate const * QtMobility::QLlcpServer::d_func(void) const
- ?staticMetaObject@QL2capServer@QtMobility@@2UQMetaObject@@B @ 530 NONAME ; struct QMetaObject const QtMobility::QL2capServer::staticMetaObject
- ?trUtf8@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0@Z @ 531 NONAME ; class QString QtMobility::QNearFieldTarget::trUtf8(char const *, char const *)
- ?type@QNdefRecord@QtMobility@@QBE?AVQByteArray@@XZ @ 532 NONAME ; class QByteArray QtMobility::QNdefRecord::type(void) const
- ?pendingDatagramSize@QLlcpSocket@QtMobility@@QBE_JXZ @ 533 NONAME ; long long QtMobility::QLlcpSocket::pendingDatagramSize(void) const
- ?trUtf8@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0@Z @ 534 NONAME ; class QString QtMobility::QNearFieldTagType1::trUtf8(char const *, char const *)
- ?connectToService@QBluetoothSocket@QtMobility@@QAEXABVQBluetoothAddress@2@ABVQBluetoothUuid@2@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 535 NONAME ; void QtMobility::QBluetoothSocket::connectToService(class QtMobility::QBluetoothAddress const &, class QtMobility::QBluetoothUuid const &, class QFlags<enum QIODevice::OpenModeFlag>)
- ?protocolServiceMultiplexer@QBluetoothServiceInfo@QtMobility@@QBEHXZ @ 536 NONAME ; int QtMobility::QBluetoothServiceInfo::protocolServiceMultiplexer(void) const
- ?qt_metacast@QBluetoothServiceDiscoveryAgent@QtMobility@@UAEPAXPBD@Z @ 537 NONAME ; void * QtMobility::QBluetoothServiceDiscoveryAgent::qt_metacast(char const *)
- ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVAlternative@12@@Z @ 538 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QtMobility::QBluetoothServiceInfo::Alternative const &)
- ?operation@QBluetoothTransferReply@QtMobility@@QBE?AW4Operation@QBluetoothTransferManager@2@XZ @ 539 NONAME ; enum QtMobility::QBluetoothTransferManager::Operation QtMobility::QBluetoothTransferReply::operation(void) const
- ?finished@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXXZ @ 540 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::finished(void)
- ?d_func@QBluetoothLocalDevice@QtMobility@@AAEPAVQBluetoothLocalDevicePrivate@2@XZ @ 541 NONAME ; class QtMobility::QBluetoothLocalDevicePrivate * QtMobility::QBluetoothLocalDevice::d_func(void)
- ?staticMetaObject@QBluetoothDeviceDiscoveryAgent@QtMobility@@2UQMetaObject@@B @ 542 NONAME ; struct QMetaObject const QtMobility::QBluetoothDeviceDiscoveryAgent::staticMetaObject
- ?trUtf8@QLlcpServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 543 NONAME ; class QString QtMobility::QLlcpServer::trUtf8(char const *, char const *, int)
- ?clear@QBluetoothAddress@QtMobility@@QAEXXZ @ 544 NONAME ; void QtMobility::QBluetoothAddress::clear(void)
- ??0QNdefNfcUriRecord@QtMobility@@QAE@XZ @ 545 NONAME ; QtMobility::QNdefNfcUriRecord::QNdefNfcUriRecord(void)
- ?manufacturerSpecificData@QBluetoothDeviceInfo@QtMobility@@QBE?AVQByteArray@@PA_N@Z @ 546 NONAME ; class QByteArray QtMobility::QBluetoothDeviceInfo::manufacturerSpecificData(bool *) const
- ??_EQBluetoothLocalDevice@QtMobility@@UAE@I@Z @ 547 NONAME ; QtMobility::QBluetoothLocalDevice::~QBluetoothLocalDevice(unsigned int)
- ?d_func@QNearFieldTagType1@QtMobility@@ABEPBVQNearFieldTagType1Private@2@XZ @ 548 NONAME ; class QtMobility::QNearFieldTagType1Private const * QtMobility::QNearFieldTagType1::d_func(void) const
- ?nextPendingConnection@QRfcommServer@QtMobility@@QAEPAVQBluetoothSocket@2@XZ @ 549 NONAME ; class QtMobility::QBluetoothSocket * QtMobility::QRfcommServer::nextPendingConnection(void)
- ??1QBluetoothDeviceDiscoveryAgent@QtMobility@@UAE@XZ @ 550 NONAME ; QtMobility::QBluetoothDeviceDiscoveryAgent::~QBluetoothDeviceDiscoveryAgent(void)
- ??0QLlcpSocket@QtMobility@@QAE@PAVQObject@@@Z @ 551 NONAME ; QtMobility::QLlcpSocket::QLlcpSocket(class QObject *)
- ?locale@QNdefNfcTextRecord@QtMobility@@QBE?AVQString@@XZ @ 552 NONAME ; class QString QtMobility::QNdefNfcTextRecord::locale(void) const
- ?setServiceAvailability@QBluetoothServiceInfo@QtMobility@@QAEXE@Z @ 553 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceAvailability(unsigned char)
- ?isEmpty@QNdefRecord@QtMobility@@QBE_NXZ @ 554 NONAME ; bool QtMobility::QNdefRecord::isEmpty(void) const
- ?d_func@QBluetoothAddress@QtMobility@@AAEPAVQBluetoothAddressPrivate@2@XZ @ 555 NONAME ; class QtMobility::QBluetoothAddressPrivate * QtMobility::QBluetoothAddress::d_func(void)
- ??1QBluetoothLocalDevice@QtMobility@@UAE@XZ @ 556 NONAME ; QtMobility::QBluetoothLocalDevice::~QBluetoothLocalDevice(void)
- ?isProcessingCommand@QNearFieldTarget@QtMobility@@QBE_NXZ @ 557 NONAME ; bool QtMobility::QNearFieldTarget::isProcessingCommand(void) const
- ??0QNdefMessage@QtMobility@@QAE@ABV01@@Z @ 558 NONAME ; QtMobility::QNdefMessage::QNdefMessage(class QtMobility::QNdefMessage const &)
- ?targetDetected@QNearFieldManager@QtMobility@@IAEXPAVQNearFieldTarget@2@@Z @ 559 NONAME ; void QtMobility::QNearFieldManager::targetDetected(class QtMobility::QNearFieldTarget *)
- ?downloadProgress@QBluetoothTransferReply@QtMobility@@IAEX_J0@Z @ 560 NONAME ; void QtMobility::QBluetoothTransferReply::downloadProgress(long long, long long)
- ??4QBluetoothAddress@QtMobility@@QAEAAV01@ABV01@@Z @ 561 NONAME ; class QtMobility::QBluetoothAddress & QtMobility::QBluetoothAddress::operator=(class QtMobility::QBluetoothAddress const &)
- ?address@QBluetoothLocalDevice@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 562 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothLocalDevice::address(void) const
- ??_EQLlcpSocket@QtMobility@@UAE@I@Z @ 563 NONAME ; QtMobility::QLlcpSocket::~QLlcpSocket(unsigned int)
- ?sendCommands@QNearFieldTarget@QtMobility@@UAE?AVRequestId@12@ABV?$QList@VQByteArray@@@@@Z @ 564 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTarget::sendCommands(class QList<class QByteArray> const &)
- ?setAttribute@QBluetoothTransferReply@QtMobility@@IAEXW4Attribute@QBluetoothTransferRequest@2@ABVQVariant@@@Z @ 565 NONAME ; void QtMobility::QBluetoothTransferReply::setAttribute(enum QtMobility::QBluetoothTransferRequest::Attribute, class QVariant const &)
- ??0QNdefNfcTextRecord@QtMobility@@QAE@ABVQNdefRecord@1@@Z @ 566 NONAME ; QtMobility::QNdefNfcTextRecord::QNdefNfcTextRecord(class QtMobility::QNdefRecord const &)
- ?qt_metacast@QNearFieldTagType3@QtMobility@@UAEPAXPBD@Z @ 567 NONAME ; void * QtMobility::QNearFieldTagType3::qt_metacast(char const *)
- ??0QBluetoothUuid@QtMobility@@QAE@I@Z @ 568 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(unsigned int)
- ?isNull@QBluetoothAddress@QtMobility@@QBE_NXZ @ 569 NONAME ; bool QtMobility::QBluetoothAddress::isNull(void) const
- ?tr@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 570 NONAME ; class QString QtMobility::QNearFieldManager::tr(char const *, char const *, int)
- ?qt_metacall@QNearFieldTagType3@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 571 NONAME ; int QtMobility::QNearFieldTagType3::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?staticMetaObject@QBluetoothTransferReply@QtMobility@@2UQMetaObject@@B @ 572 NONAME ; struct QMetaObject const QtMobility::QBluetoothTransferReply::staticMetaObject
- ?bytesAvailable@QLlcpSocket@QtMobility@@UBE_JXZ @ 573 NONAME ; long long QtMobility::QLlcpSocket::bytesAvailable(void) const
- ?serviceDiscovered@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXABVQBluetoothServiceInfo@2@@Z @ 574 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::serviceDiscovered(class QtMobility::QBluetoothServiceInfo const &)
- ?newConnection@QL2capServer@QtMobility@@IAEXXZ @ 575 NONAME ; void QtMobility::QL2capServer::newConnection(void)
- ??0QNearFieldTagType2@QtMobility@@QAE@PAVQObject@@@Z @ 576 NONAME ; QtMobility::QNearFieldTagType2::QNearFieldTagType2(class QObject *)
- ?tr@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0H@Z @ 577 NONAME ; class QString QtMobility::QNearFieldTarget::tr(char const *, char const *, int)
- ?abort@QBluetoothSocket@QtMobility@@QAEXXZ @ 578 NONAME ; void QtMobility::QBluetoothSocket::abort(void)
- ??1QBluetoothTransferReplyPrivate@QtMobility@@QAE@XZ @ 579 NONAME ; QtMobility::QBluetoothTransferReplyPrivate::~QBluetoothTransferReplyPrivate(void)
- ?isSequential@QLlcpSocket@QtMobility@@UBE_NXZ @ 580 NONAME ; bool QtMobility::QLlcpSocket::isSequential(void) const
- ?protocolDescriptor@QBluetoothServiceInfo@QtMobility@@QBE?AVSequence@12@W4ProtocolUuid@QBluetoothUuid@2@@Z @ 581 NONAME ; class QtMobility::QBluetoothServiceInfo::Sequence QtMobility::QBluetoothServiceInfo::protocolDescriptor(enum QtMobility::QBluetoothUuid::ProtocolUuid) const
- ?disconnectFromService@QBluetoothSocket@QtMobility@@QAEXXZ @ 582 NONAME ; void QtMobility::QBluetoothSocket::disconnectFromService(void)
- ??0QNdefFilter@QtMobility@@QAE@XZ @ 583 NONAME ; QtMobility::QNdefFilter::QNdefFilter(void)
- ?discoveryFinished@QBluetoothSocket@QtMobility@@AAEXXZ @ 584 NONAME ; void QtMobility::QBluetoothSocket::discoveryFinished(void)
- ??_EQBluetoothDeviceInfo@QtMobility@@QAE@I@Z @ 585 NONAME ; QtMobility::QBluetoothDeviceInfo::~QBluetoothDeviceInfo(unsigned int)
- ?socketDescriptor@QBluetoothSocket@QtMobility@@QBEHXZ @ 586 NONAME ; int QtMobility::QBluetoothSocket::socketDescriptor(void) const
- ?targetLost@QNearFieldManager@QtMobility@@IAEXPAVQNearFieldTarget@2@@Z @ 587 NONAME ; void QtMobility::QNearFieldManager::targetLost(class QtMobility::QNearFieldTarget *)
- ?qt_metacall@QBluetoothSocket@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 588 NONAME ; int QtMobility::QBluetoothSocket::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?tr@QLlcpServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 589 NONAME ; class QString QtMobility::QLlcpServer::tr(char const *, char const *, int)
- ?error@QLlcpSocket@QtMobility@@IAEXW4SocketError@12@@Z @ 590 NONAME ; void QtMobility::QLlcpSocket::error(enum QtMobility::QLlcpSocket::SocketError)
- ?socketProtocol@QBluetoothServiceInfo@QtMobility@@QBE?AW4Protocol@12@XZ @ 591 NONAME ; enum QtMobility::QBluetoothServiceInfo::Protocol QtMobility::QBluetoothServiceInfo::socketProtocol(void) const
- ?discoveredDevices@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AV?$QList@VQBluetoothDeviceInfo@QtMobility@@@@XZ @ 592 NONAME ; class QList<class QtMobility::QBluetoothDeviceInfo> QtMobility::QBluetoothDeviceDiscoveryAgent::discoveredDevices(void) const
- ?metaObject@QBluetoothTransferManager@QtMobility@@UBEPBUQMetaObject@@XZ @ 593 NONAME ; struct QMetaObject const * QtMobility::QBluetoothTransferManager::metaObject(void) const
- ?getStaticMetaObject@QNearFieldTagType2@QtMobility@@SAABUQMetaObject@@XZ @ 594 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType2::getStaticMetaObject(void)
- ??_EQBluetoothServiceInfo@QtMobility@@QAE@I@Z @ 595 NONAME ; QtMobility::QBluetoothServiceInfo::~QBluetoothServiceInfo(unsigned int)
- ?tr@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0@Z @ 596 NONAME ; class QString QtMobility::QNearFieldTarget::tr(char const *, char const *)
- ?d_func@QRfcommServer@QtMobility@@AAEPAVQRfcommServerPrivate@2@XZ @ 597 NONAME ; class QtMobility::QRfcommServerPrivate * QtMobility::QRfcommServer::d_func(void)
- ?writeData@QLlcpSocket@QtMobility@@MAE_JPBD_J@Z @ 598 NONAME ; long long QtMobility::QLlcpSocket::writeData(char const *, long long)
- ?read@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@GG@Z @ 599 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::read(unsigned short, unsigned short)
- ?setRssi@QBluetoothDeviceInfo@QtMobility@@QAEXF@Z @ 600 NONAME ; void QtMobility::QBluetoothDeviceInfo::setRssi(short)
- ?error@QBluetoothSocket@QtMobility@@IAEXW4SocketError@12@@Z @ 601 NONAME ; void QtMobility::QBluetoothSocket::error(enum QtMobility::QBluetoothSocket::SocketError)
- ?serviceUuids@QBluetoothDeviceInfo@QtMobility@@QBE?AV?$QList@VQBluetoothUuid@QtMobility@@@@PAW4DataCompleteness@12@@Z @ 602 NONAME ; class QList<class QtMobility::QBluetoothUuid> QtMobility::QBluetoothDeviceInfo::serviceUuids(enum QtMobility::QBluetoothDeviceInfo::DataCompleteness *) const
- ?isListening@QLlcpServer@QtMobility@@QBE_NXZ @ 603 NONAME ; bool QtMobility::QLlcpServer::isListening(void) const
- ?serviceUri@QLlcpServer@QtMobility@@QBE?AVQString@@XZ @ 604 NONAME ; class QString QtMobility::QLlcpServer::serviceUri(void) const
- ?peerName@QBluetoothSocket@QtMobility@@QBE?AVQString@@XZ @ 605 NONAME ; class QString QtMobility::QBluetoothSocket::peerName(void) const
- ?error@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXW4Error@12@@Z @ 606 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::error(enum QtMobility::QBluetoothDeviceDiscoveryAgent::Error)
- ??1QL2capServer@QtMobility@@UAE@XZ @ 607 NONAME ; QtMobility::QL2capServer::~QL2capServer(void)
- ?serviceUuidsCompleteness@QBluetoothDeviceInfo@QtMobility@@QBE?AW4DataCompleteness@12@XZ @ 608 NONAME ; enum QtMobility::QBluetoothDeviceInfo::DataCompleteness QtMobility::QBluetoothDeviceInfo::serviceUuidsCompleteness(void) const
- ?qt_metacall@QBluetoothDeviceDiscoveryAgent@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 609 NONAME ; int QtMobility::QBluetoothDeviceDiscoveryAgent::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?staticMetaObject@QNearFieldTarget@QtMobility@@2UQMetaObject@@B @ 610 NONAME ; struct QMetaObject const QtMobility::QNearFieldTarget::staticMetaObject
- ?toByteArray@QNdefMessage@QtMobility@@QBE?AVQByteArray@@XZ @ 611 NONAME ; class QByteArray QtMobility::QNdefMessage::toByteArray(void) const
- ?trUtf8@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0@Z @ 612 NONAME ; class QString QtMobility::QNearFieldTagType3::trUtf8(char const *, char const *)
- ??9QBluetoothTransferRequest@QtMobility@@QBE_NABV01@@Z @ 613 NONAME ; bool QtMobility::QBluetoothTransferRequest::operator!=(class QtMobility::QBluetoothTransferRequest const &) const
- ??1QLlcpSocket@QtMobility@@UAE@XZ @ 614 NONAME ; QtMobility::QLlcpSocket::~QLlcpSocket(void)
- ?isAvailable@QNearFieldManager@QtMobility@@QBE_NXZ @ 615 NONAME ; bool QtMobility::QNearFieldManager::isAvailable(void) const
- ?getStaticMetaObject@QDeclarativeNdefRecord@QtMobility@@SAABUQMetaObject@@XZ @ 616 NONAME ; struct QMetaObject const & QtMobility::QDeclarativeNdefRecord::getStaticMetaObject(void)
- ?qt_metacast@QDeclarativeNdefRecord@QtMobility@@UAEPAXPBD@Z @ 617 NONAME ; void * QtMobility::QDeclarativeNdefRecord::qt_metacast(char const *)
- ?qRegisterNdefRecordTypeHelper@QtMobility@@YAXPBUQMetaObject@@W4TypeNameFormat@QNdefRecord@1@ABVQByteArray@@@Z @ 618 NONAME ; void QtMobility::qRegisterNdefRecordTypeHelper(struct QMetaObject const *, enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &)
- ?tr@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0H@Z @ 619 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::tr(char const *, char const *, int)
- ??0QDeclarativeNdefRecord@QtMobility@@QAE@PAVQObject@@@Z @ 620 NONAME ; QtMobility::QDeclarativeNdefRecord::QDeclarativeNdefRecord(class QObject *)
- ?record@QDeclarativeNdefRecord@QtMobility@@QBE?AVQNdefRecord@2@XZ @ 621 NONAME ; class QtMobility::QNdefRecord QtMobility::QDeclarativeNdefRecord::record(void) const
- ?setRecord@QDeclarativeNdefRecord@QtMobility@@QAEXABVQNdefRecord@2@@Z @ 622 NONAME ; void QtMobility::QDeclarativeNdefRecord::setRecord(class QtMobility::QNdefRecord const &)
- ?qNewDeclarativeNdefRecordForNdefRecord@QtMobility@@YAPAVQDeclarativeNdefRecord@1@ABVQNdefRecord@1@@Z @ 623 NONAME ; class QtMobility::QDeclarativeNdefRecord * QtMobility::qNewDeclarativeNdefRecordForNdefRecord(class QtMobility::QNdefRecord const &)
- ??1QDeclarativeNdefRecord@QtMobility@@UAE@XZ @ 624 NONAME ; QtMobility::QDeclarativeNdefRecord::~QDeclarativeNdefRecord(void)
- ?trUtf8@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0@Z @ 625 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::trUtf8(char const *, char const *)
- ?staticMetaObject@QDeclarativeNdefRecord@QtMobility@@2UQMetaObject@@B @ 626 NONAME ; struct QMetaObject const QtMobility::QDeclarativeNdefRecord::staticMetaObject
- ?qt_metacall@QDeclarativeNdefRecord@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 627 NONAME ; int QtMobility::QDeclarativeNdefRecord::qt_metacall(enum QMetaObject::Call, int, void * *)
- ?recordTypeChanged@QDeclarativeNdefRecord@QtMobility@@IAEXXZ @ 628 NONAME ; void QtMobility::QDeclarativeNdefRecord::recordTypeChanged(void)
- ?setRecordType@QDeclarativeNdefRecord@QtMobility@@QAEXABVQString@@@Z @ 629 NONAME ; void QtMobility::QDeclarativeNdefRecord::setRecordType(class QString const &)
- ?trUtf8@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0H@Z @ 630 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::trUtf8(char const *, char const *, int)
- ??_EQDeclarativeNdefRecord@QtMobility@@UAE@I@Z @ 631 NONAME ; QtMobility::QDeclarativeNdefRecord::~QDeclarativeNdefRecord(unsigned int)
- ?recordType@QDeclarativeNdefRecord@QtMobility@@QBE?AVQString@@XZ @ 632 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::recordType(void) const
- ??0QDeclarativeNdefRecord@QtMobility@@QAE@ABVQNdefRecord@1@PAVQObject@@@Z @ 633 NONAME ; QtMobility::QDeclarativeNdefRecord::QDeclarativeNdefRecord(class QtMobility::QNdefRecord const &, class QObject *)
- ?metaObject@QDeclarativeNdefRecord@QtMobility@@UBEPBUQMetaObject@@XZ @ 634 NONAME ; struct QMetaObject const * QtMobility::QDeclarativeNdefRecord::metaObject(void) const
- ?d_func@QDeclarativeNdefRecord@QtMobility@@ABEPBVQDeclarativeNdefRecordPrivate@2@XZ @ 635 NONAME ; class QtMobility::QDeclarativeNdefRecordPrivate const * QtMobility::QDeclarativeNdefRecord::d_func(void) const
- ?tr@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0@Z @ 636 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::tr(char const *, char const *)
- ?d_func@QDeclarativeNdefRecord@QtMobility@@AAEPAVQDeclarativeNdefRecordPrivate@2@XZ @ 637 NONAME ; class QtMobility::QDeclarativeNdefRecordPrivate * QtMobility::QDeclarativeNdefRecord::d_func(void)
- ?canceled@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXXZ @ 638 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::canceled(void)
+ ?getStaticMetaObject@QDeclarativeNdefRecord@QtMobility@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & QtMobility::QDeclarativeNdefRecord::getStaticMetaObject(void)
+ ?serverAddress@QRfcommServer@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 9 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QRfcommServer::serverAddress(void) const
+ ??1QBluetoothTransferManager@QtMobility@@UAE@XZ @ 10 NONAME ; QtMobility::QBluetoothTransferManager::~QBluetoothTransferManager(void)
+ ?toUInt128@QBluetoothUuid@QtMobility@@QBE?AUquint128@2@XZ @ 11 NONAME ; struct QtMobility::quint128 QtMobility::QBluetoothUuid::toUInt128(void) const
+ ?metaObject@QNearFieldTagType2@QtMobility@@UBEPBUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType2::metaObject(void) const
+ ?writeServiceData@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@GABVQByteArray@@@Z @ 13 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::writeServiceData(unsigned short, class QByteArray const &)
+ ?trUtf8@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString QtMobility::QBluetoothSocket::trUtf8(char const *, char const *)
+ ?services@QNearFieldTagType3@QtMobility@@QAE?AV?$QList@G@@XZ @ 15 NONAME ; class QList<unsigned short> QtMobility::QNearFieldTagType3::services(void)
+ ?readBlock@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 16 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::readBlock(unsigned char)
+ ??1QBluetoothUuid@QtMobility@@QAE@XZ @ 17 NONAME ; QtMobility::QBluetoothUuid::~QBluetoothUuid(void)
+ ?d_func@QBluetoothServiceInfo@QtMobility@@ABEPBVQBluetoothServiceInfoPrivate@2@XZ @ 18 NONAME ; class QtMobility::QBluetoothServiceInfoPrivate const * QtMobility::QBluetoothServiceInfo::d_func(void) const
+ ??1QNearFieldTarget@QtMobility@@UAE@XZ @ 19 NONAME ; QtMobility::QNearFieldTarget::~QNearFieldTarget(void)
+ ?setSecurityFlags@QL2capServer@QtMobility@@QAEXV?$QFlags@W4Security@QBluetooth@QtMobility@@@@@Z @ 20 NONAME ; void QtMobility::QL2capServer::setSecurityFlags(class QFlags<enum QtMobility::QBluetooth::Security>)
+ ??_EQNdefMessage@QtMobility@@QAE@I@Z @ 21 NONAME ; QtMobility::QNdefMessage::~QNdefMessage(unsigned int)
+ ?readDatagram@QLlcpSocket@QtMobility@@QAE_JPAD_JPAPAVQNearFieldTarget@2@PAE@Z @ 22 NONAME ; long long QtMobility::QLlcpSocket::readDatagram(char *, long long, class QtMobility::QNearFieldTarget * *, unsigned char *)
+ ?d_func@QBluetoothAddress@QtMobility@@ABEPBVQBluetoothAddressPrivate@2@XZ @ 23 NONAME ; class QtMobility::QBluetoothAddressPrivate const * QtMobility::QBluetoothAddress::d_func(void) const
+ ?getAddress@QBluetoothHostInfo@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 24 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothHostInfo::getAddress(void) const
+ ?d_func@QBluetoothSocket@QtMobility@@AAEPAVQBluetoothSocketPrivate@2@XZ @ 25 NONAME ; class QtMobility::QBluetoothSocketPrivate * QtMobility::QBluetoothSocket::d_func(void)
+ ??_EQBluetoothTransferReplyPrivate@QtMobility@@QAE@I@Z @ 26 NONAME ; QtMobility::QBluetoothTransferReplyPrivate::~QBluetoothTransferReplyPrivate(unsigned int)
+ ??0QNearFieldManager@QtMobility@@QAE@PAVQObject@@@Z @ 27 NONAME ; QtMobility::QNearFieldManager::QNearFieldManager(class QObject *)
+ ?setLocale@QNdefNfcTextRecord@QtMobility@@QAEXABVQString@@@Z @ 28 NONAME ; void QtMobility::QNdefNfcTextRecord::setLocale(class QString const &)
+ ?connected@QLlcpSocket@QtMobility@@IAEXXZ @ 29 NONAME ; void QtMobility::QLlcpSocket::connected(void)
+ ?writeData@QBluetoothSocket@QtMobility@@MAE_JPBD_J@Z @ 30 NONAME ; long long QtMobility::QBluetoothSocket::writeData(char const *, long long)
+ ?type@QNearFieldTagType4@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 31 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType4::type(void) const
+ ?tr@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0H@Z @ 32 NONAME ; class QString QtMobility::QNearFieldTagType2::tr(char const *, char const *, int)
+ ?setPayload@QNdefRecord@QtMobility@@QAEXABVQByteArray@@@Z @ 33 NONAME ; void QtMobility::QNdefRecord::setPayload(class QByteArray const &)
+ ?staticMetaObject@QNearFieldTagType3@QtMobility@@2UQMetaObject@@B @ 34 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType3::staticMetaObject
+ ?qt_metacast@QDeclarativeNdefRecord@QtMobility@@UAEPAXPBD@Z @ 35 NONAME ; void * QtMobility::QDeclarativeNdefRecord::qt_metacast(char const *)
+ ?d_func@QBluetoothDeviceDiscoveryAgent@QtMobility@@AAEPAVQBluetoothDeviceDiscoveryAgentPrivate@2@XZ @ 36 NONAME ; class QtMobility::QBluetoothDeviceDiscoveryAgentPrivate * QtMobility::QBluetoothDeviceDiscoveryAgent::d_func(void)
+ ?trUtf8@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::trUtf8(char const *, char const *, int)
+ ?pairingConfirmation@QBluetoothLocalDevice@QtMobility@@QAEX_N@Z @ 38 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingConfirmation(bool)
+ ?hasPendingConnections@QLlcpServer@QtMobility@@UBE_NXZ @ 39 NONAME ; bool QtMobility::QLlcpServer::hasPendingConnections(void) const
+ ?handleResponse@QNearFieldTagType2@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 40 NONAME ; bool QtMobility::QNearFieldTagType2::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
+ ??1QBluetoothSocket@QtMobility@@UAE@XZ @ 41 NONAME ; QtMobility::QBluetoothSocket::~QBluetoothSocket(void)
+ ?tr@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0@Z @ 42 NONAME ; class QString QtMobility::QBluetoothTransferReply::tr(char const *, char const *)
+ ?writeBlock@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@EABVQByteArray@@@Z @ 43 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::writeBlock(unsigned char, class QByteArray const &)
+ ??_EQNearFieldTagType2@QtMobility@@UAE@I@Z @ 44 NONAME ; QtMobility::QNearFieldTagType2::~QNearFieldTagType2(unsigned int)
+ ??4RequestId@QNearFieldTarget@QtMobility@@QAEAAV012@ABV012@@Z @ 45 NONAME ; class QtMobility::QNearFieldTarget::RequestId & QtMobility::QNearFieldTarget::RequestId::operator=(class QtMobility::QNearFieldTarget::RequestId const &)
+ ?recordCount@QNdefFilter@QtMobility@@QBEHXZ @ 46 NONAME ; int QtMobility::QNdefFilter::recordCount(void) const
+ ?setAddress@QBluetoothHostInfo@QtMobility@@QAEXABVQBluetoothAddress@2@@Z @ 47 NONAME ; void QtMobility::QBluetoothHostInfo::setAddress(class QtMobility::QBluetoothAddress const &)
+ ?metaObject@QLlcpSocket@QtMobility@@UBEPBUQMetaObject@@XZ @ 48 NONAME ; struct QMetaObject const * QtMobility::QLlcpSocket::metaObject(void) const
+ ?staticMetaObject@QLlcpServer@QtMobility@@2UQMetaObject@@B @ 49 NONAME ; struct QMetaObject const QtMobility::QLlcpServer::staticMetaObject
+ ?hasPendingDatagrams@QLlcpSocket@QtMobility@@QBE_NXZ @ 50 NONAME ; bool QtMobility::QLlcpSocket::hasPendingDatagrams(void) const
+ ?stop@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXXZ @ 51 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::stop(void)
+ ??0RequestId@QNearFieldTarget@QtMobility@@QAE@ABV012@@Z @ 52 NONAME ; QtMobility::QNearFieldTarget::RequestId::RequestId(class QtMobility::QNearFieldTarget::RequestId const &)
+ ??1QNearFieldTagType4@QtMobility@@UAE@XZ @ 53 NONAME ; QtMobility::QNearFieldTagType4::~QNearFieldTagType4(void)
+ ?waitForRequestCompleted@QNearFieldTarget@QtMobility@@UAE_NABVRequestId@12@H@Z @ 54 NONAME ; bool QtMobility::QNearFieldTarget::waitForRequestCompleted(class QtMobility::QNearFieldTarget::RequestId const &, int)
+ ?uploadProgress@QBluetoothTransferReply@QtMobility@@IAEX_J0@Z @ 55 NONAME ; void QtMobility::QBluetoothTransferReply::uploadProgress(long long, long long)
+ ?errorString@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AVQString@@XZ @ 56 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::errorString(void) const
+ ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JABVQByteArray@@PAVQNearFieldTarget@2@E@Z @ 57 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(class QByteArray const &, class QtMobility::QNearFieldTarget *, unsigned char)
+ ??0QBluetoothTransferRequest@QtMobility@@QAE@ABV01@@Z @ 58 NONAME ; QtMobility::QBluetoothTransferRequest::QBluetoothTransferRequest(class QtMobility::QBluetoothTransferRequest const &)
+ ?selectSector@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 59 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::selectSector(unsigned char)
+ ?getStaticMetaObject@QBluetoothTransferManager@QtMobility@@SAABUQMetaObject@@XZ @ 60 NONAME ; struct QMetaObject const & QtMobility::QBluetoothTransferManager::getStaticMetaObject(void)
+ ?getStaticMetaObject@QNearFieldTagType4@QtMobility@@SAABUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType4::getStaticMetaObject(void)
+ ?close@QLlcpSocket@QtMobility@@UAEXXZ @ 62 NONAME ; void QtMobility::QLlcpSocket::close(void)
+ ?setSocketError@QBluetoothSocket@QtMobility@@IAEXW4SocketError@12@@Z @ 63 NONAME ; void QtMobility::QBluetoothSocket::setSocketError(enum QtMobility::QBluetoothSocket::SocketError)
+ ?appendRecord@QNdefFilter@QtMobility@@QAEXABURecord@12@@Z @ 64 NONAME ; void QtMobility::QNdefFilter::appendRecord(struct QtMobility::QNdefFilter::Record const &)
+ ?connectToService@QLlcpSocket@QtMobility@@QAEXPAVQNearFieldTarget@2@ABVQString@@@Z @ 65 NONAME ; void QtMobility::QLlcpSocket::connectToService(class QtMobility::QNearFieldTarget *, class QString const &)
+ ?attribute@QBluetoothTransferReply@QtMobility@@QBE?AVQVariant@@W4Attribute@QBluetoothTransferRequest@2@@Z @ 66 NONAME ; class QVariant QtMobility::QBluetoothTransferReply::attribute(enum QtMobility::QBluetoothTransferRequest::Attribute) const
+ ?toString@QBluetoothAddress@QtMobility@@QBE?AVQString@@XZ @ 67 NONAME ; class QString QtMobility::QBluetoothAddress::toString(void) const
+ ?error@QBluetoothSocket@QtMobility@@QBE?AW4SocketError@12@XZ @ 68 NONAME ; enum QtMobility::QBluetoothSocket::SocketError QtMobility::QBluetoothSocket::error(void) const
+ ?readData@QBluetoothSocket@QtMobility@@MAE_JPAD_J@Z @ 69 NONAME ; long long QtMobility::QBluetoothSocket::readData(char *, long long)
+ ?trUtf8@QL2capServer@QtMobility@@SA?AVQString@@PBD0@Z @ 70 NONAME ; class QString QtMobility::QL2capServer::trUtf8(char const *, char const *)
+ ?close@QL2capServer@QtMobility@@QAEXXZ @ 71 NONAME ; void QtMobility::QL2capServer::close(void)
+ ?setServiceUuids@QBluetoothDeviceInfo@QtMobility@@QAEXABV?$QList@VQBluetoothUuid@QtMobility@@@@W4DataCompleteness@12@@Z @ 72 NONAME ; void QtMobility::QBluetoothDeviceInfo::setServiceUuids(class QList<class QtMobility::QBluetoothUuid> const &, enum QtMobility::QBluetoothDeviceInfo::DataCompleteness)
+ ?nextPendingConnection@QLlcpServer@QtMobility@@UAEPAVQLlcpSocket@2@XZ @ 73 NONAME ; class QtMobility::QLlcpSocket * QtMobility::QLlcpServer::nextPendingConnection(void)
+ ??0QL2capServer@QtMobility@@QAE@PAVQObject@@@Z @ 74 NONAME ; QtMobility::QL2capServer::QL2capServer(class QObject *)
+ ?registerService@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 75 NONAME ; bool QtMobility::QBluetoothServiceInfo::registerService(void) const
+ ?errorString@QBluetoothSocket@QtMobility@@QBE?AVQString@@XZ @ 76 NONAME ; class QString QtMobility::QBluetoothSocket::errorString(void) const
+ ?maxPendingConnections@QL2capServer@QtMobility@@QBEHXZ @ 77 NONAME ; int QtMobility::QL2capServer::maxPendingConnections(void) const
+ ?id@QNdefRecord@QtMobility@@QBE?AVQByteArray@@XZ @ 78 NONAME ; class QByteArray QtMobility::QNdefRecord::id(void) const
+ ?d_func@QBluetoothTransferRequest@QtMobility@@AAEPAVQBluetoothTransferRequestPrivate@2@XZ @ 79 NONAME ; class QtMobility::QBluetoothTransferRequestPrivate * QtMobility::QBluetoothTransferRequest::d_func(void)
+ ?trUtf8@QRfcommServer@QtMobility@@SA?AVQString@@PBD0@Z @ 80 NONAME ; class QString QtMobility::QRfcommServer::trUtf8(char const *, char const *)
+ ?trUtf8@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 81 NONAME ; class QString QtMobility::QNearFieldManager::trUtf8(char const *, char const *, int)
+ ??0QBluetoothDeviceInfo@QtMobility@@QAE@XZ @ 82 NONAME ; QtMobility::QBluetoothDeviceInfo::QBluetoothDeviceInfo(void)
+ ?serviceDiscovered@QBluetoothSocket@QtMobility@@AAEXABVQBluetoothServiceInfo@2@@Z @ 83 NONAME ; void QtMobility::QBluetoothSocket::serviceDiscovered(class QtMobility::QBluetoothServiceInfo const &)
+ ?tr@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 84 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::tr(char const *, char const *, int)
+ ?tr@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0@Z @ 85 NONAME ; class QString QtMobility::QNearFieldManager::tr(char const *, char const *)
+ ?bytesAvailable@QBluetoothSocket@QtMobility@@UBE_JXZ @ 86 NONAME ; long long QtMobility::QBluetoothSocket::bytesAvailable(void) const
+ ??_EQBluetoothServiceDiscoveryAgent@QtMobility@@UAE@I@Z @ 87 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::~QBluetoothServiceDiscoveryAgent(unsigned int)
+ ??1QBluetoothServiceDiscoveryAgent@QtMobility@@UAE@XZ @ 88 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::~QBluetoothServiceDiscoveryAgent(void)
+ ??0QNdefRecord@QtMobility@@QAE@ABV01@@Z @ 89 NONAME ; QtMobility::QNdefRecord::QNdefRecord(class QtMobility::QNdefRecord const &)
+ ??0QNdefFilter@QtMobility@@QAE@ABV01@@Z @ 90 NONAME ; QtMobility::QNdefFilter::QNdefFilter(class QtMobility::QNdefFilter const &)
+ ?qt_metacast@QNearFieldTagType1@QtMobility@@UAEPAXPBD@Z @ 91 NONAME ; void * QtMobility::QNearFieldTagType1::qt_metacast(char const *)
+ ??1QNearFieldTagType3@QtMobility@@UAE@XZ @ 92 NONAME ; QtMobility::QNearFieldTagType3::~QNearFieldTagType3(void)
+ ?tr@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 93 NONAME ; class QString QtMobility::QBluetoothSocket::tr(char const *, char const *)
+ ?qRegisterNdefRecordTypeHelper@QtMobility@@YAXPBUQMetaObject@@W4TypeNameFormat@QNdefRecord@1@ABVQByteArray@@@Z @ 94 NONAME ; void QtMobility::qRegisterNdefRecordTypeHelper(struct QMetaObject const *, enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &)
+ ?ndefMessageRead@QNearFieldTarget@QtMobility@@IAEXABVQNdefMessage@2@@Z @ 95 NONAME ; void QtMobility::QNearFieldTarget::ndefMessageRead(class QtMobility::QNdefMessage const &)
+ ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVSequence@12@@Z @ 96 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QtMobility::QBluetoothServiceInfo::Sequence const &)
+ ?qt_metacast@QNearFieldTarget@QtMobility@@UAEPAXPBD@Z @ 97 NONAME ; void * QtMobility::QNearFieldTarget::qt_metacast(char const *)
+ ?staticMetaObject@QLlcpSocket@QtMobility@@2UQMetaObject@@B @ 98 NONAME ; struct QMetaObject const QtMobility::QLlcpSocket::staticMetaObject
+ ?d_func@QNearFieldManager@QtMobility@@AAEPAVQNearFieldManagerPrivate@2@XZ @ 99 NONAME ; class QtMobility::QNearFieldManagerPrivate * QtMobility::QNearFieldManager::d_func(void)
+ ?qt_metacast@QBluetoothTransferReply@QtMobility@@UAEPAXPBD@Z @ 100 NONAME ; void * QtMobility::QBluetoothTransferReply::qt_metacast(char const *)
+ ?uuidFilter@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AV?$QList@VQBluetoothUuid@QtMobility@@@@XZ @ 101 NONAME ; class QList<class QtMobility::QBluetoothUuid> QtMobility::QBluetoothServiceDiscoveryAgent::uuidFilter(void) const
+ ??9RequestId@QNearFieldTarget@QtMobility@@QBE_NABV012@@Z @ 102 NONAME ; bool QtMobility::QNearFieldTarget::RequestId::operator!=(class QtMobility::QNearFieldTarget::RequestId const &) const
+ ?registerNdefMessageHandler@QNearFieldManager@QtMobility@@QAEHW4TypeNameFormat@QNdefRecord@2@ABVQByteArray@@PAVQObject@@PBD@Z @ 103 NONAME ; int QtMobility::QNearFieldManager::registerNdefMessageHandler(enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &, class QObject *, char const *)
+ ?select@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@G@Z @ 104 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::select(unsigned short)
+ ?pairingDisplayConfirmation@QBluetoothLocalDevice@QtMobility@@IAEXABVQBluetoothAddress@2@VQString@@@Z @ 105 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingDisplayConfirmation(class QtMobility::QBluetoothAddress const &, class QString)
+ ?minorDeviceClass@QBluetoothDeviceInfo@QtMobility@@QBEEXZ @ 106 NONAME ; unsigned char QtMobility::QBluetoothDeviceInfo::minorDeviceClass(void) const
+ ?qt_metacall@QNearFieldTagType1@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 107 NONAME ; int QtMobility::QNearFieldTagType1::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?trUtf8@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0H@Z @ 108 NONAME ; class QString QtMobility::QBluetoothTransferReply::trUtf8(char const *, char const *, int)
+ ?maxPendingConnections@QRfcommServer@QtMobility@@QBEHXZ @ 109 NONAME ; int QtMobility::QRfcommServer::maxPendingConnections(void) const
+ ??0QNdefNfcTextRecord@QtMobility@@QAE@XZ @ 110 NONAME ; QtMobility::QNdefNfcTextRecord::QNdefNfcTextRecord(void)
+ ?canceled@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXXZ @ 111 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::canceled(void)
+ ?sendCommand@QNearFieldTarget@QtMobility@@UAE?AVRequestId@12@ABVQByteArray@@@Z @ 112 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTarget::sendCommand(class QByteArray const &)
+ ??0QNearFieldTarget@QtMobility@@QAE@PAVQObject@@@Z @ 113 NONAME ; QtMobility::QNearFieldTarget::QNearFieldTarget(class QObject *)
+ ??1QNearFieldTagType2@QtMobility@@UAE@XZ @ 114 NONAME ; QtMobility::QNearFieldTagType2::~QNearFieldTagType2(void)
+ ?newConnection@QLlcpServer@QtMobility@@IAEXXZ @ 115 NONAME ; void QtMobility::QLlcpServer::newConnection(void)
+ ?device@QBluetoothServiceInfo@QtMobility@@QBE?AVQBluetoothDeviceInfo@2@XZ @ 116 NONAME ; class QtMobility::QBluetoothDeviceInfo QtMobility::QBluetoothServiceInfo::device(void) const
+ ?qt_metacall@QBluetoothServiceDiscoveryAgent@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 117 NONAME ; int QtMobility::QBluetoothServiceDiscoveryAgent::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??1QLlcpServer@QtMobility@@UAE@XZ @ 118 NONAME ; QtMobility::QLlcpServer::~QLlcpServer(void)
+ ?setText@QNdefNfcTextRecord@QtMobility@@QAEXVQString@@@Z @ 119 NONAME ; void QtMobility::QNdefNfcTextRecord::setText(class QString)
+ ??0QBluetoothServiceDiscoveryAgent@QtMobility@@QAE@ABVQBluetoothAddress@1@PAVQObject@@@Z @ 120 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::QBluetoothServiceDiscoveryAgent(class QtMobility::QBluetoothAddress const &, class QObject *)
+ ?tr@QL2capServer@QtMobility@@SA?AVQString@@PBD0@Z @ 121 NONAME ; class QString QtMobility::QL2capServer::tr(char const *, char const *)
+ ?qt_metacall@QL2capServer@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 122 NONAME ; int QtMobility::QL2capServer::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0RequestId@QNearFieldTarget@QtMobility@@QAE@XZ @ 123 NONAME ; QtMobility::QNearFieldTarget::RequestId::RequestId(void)
+ ?tr@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 124 NONAME ; class QString QtMobility::QBluetoothSocket::tr(char const *, char const *, int)
+ ?serviceUuid@QBluetoothServiceInfo@QtMobility@@QBE?AVQBluetoothUuid@2@XZ @ 125 NONAME ; class QtMobility::QBluetoothUuid QtMobility::QBluetoothServiceInfo::serviceUuid(void) const
+ ?tr@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0H@Z @ 126 NONAME ; class QString QtMobility::QBluetoothLocalDevice::tr(char const *, char const *, int)
+ ?tr@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0H@Z @ 127 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::tr(char const *, char const *, int)
+ ?d_func@QBluetoothSocket@QtMobility@@ABEPBVQBluetoothSocketPrivate@2@XZ @ 128 NONAME ; class QtMobility::QBluetoothSocketPrivate const * QtMobility::QBluetoothSocket::d_func(void) const
+ ?allDevices@QBluetoothLocalDevice@QtMobility@@SA?AV?$QList@VQBluetoothHostInfo@QtMobility@@@@XZ @ 129 NONAME ; class QList<class QtMobility::QBluetoothHostInfo> QtMobility::QBluetoothLocalDevice::allDevices(void)
+ ?readByte@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 130 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readByte(unsigned char)
+ ?d_func@QBluetoothDeviceInfo@QtMobility@@ABEPBVQBluetoothDeviceInfoPrivate@2@XZ @ 131 NONAME ; class QtMobility::QBluetoothDeviceInfoPrivate const * QtMobility::QBluetoothDeviceInfo::d_func(void) const
+ ?abort@QBluetoothTransferReply@QtMobility@@QAEXXZ @ 132 NONAME ; void QtMobility::QBluetoothTransferReply::abort(void)
+ ??0QDeclarativeNdefRecord@QtMobility@@QAE@PAVQObject@@@Z @ 133 NONAME ; QtMobility::QDeclarativeNdefRecord::QDeclarativeNdefRecord(class QObject *)
+ ?ndefMessagesWritten@QNearFieldTarget@QtMobility@@IAEXXZ @ 134 NONAME ; void QtMobility::QNearFieldTarget::ndefMessagesWritten(void)
+ ?localPort@QBluetoothSocket@QtMobility@@QBEGXZ @ 135 NONAME ; unsigned short QtMobility::QBluetoothSocket::localPort(void) const
+ ?trUtf8@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0H@Z @ 136 NONAME ; class QString QtMobility::QNearFieldTagType2::trUtf8(char const *, char const *, int)
+ ?staticMetaObject@QBluetoothLocalDevice@QtMobility@@2UQMetaObject@@B @ 137 NONAME ; struct QMetaObject const QtMobility::QBluetoothLocalDevice::staticMetaObject
+ ??0QBluetoothAddress@QtMobility@@QAE@XZ @ 138 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(void)
+ ??1QNearFieldTagType1@QtMobility@@UAE@XZ @ 139 NONAME ; QtMobility::QNearFieldTagType1::~QNearFieldTagType1(void)
+ ?write@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABVQByteArray@@G@Z @ 140 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::write(class QByteArray const &, unsigned short)
+ ?type@QNearFieldTagType3@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 141 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType3::type(void) const
+ ?hasNdefMessage@QNearFieldTagType1@QtMobility@@UAE_NXZ @ 142 NONAME ; bool QtMobility::QNearFieldTagType1::hasNdefMessage(void)
+ ?setType@QNdefRecord@QtMobility@@QAEXABVQByteArray@@@Z @ 143 NONAME ; void QtMobility::QNdefRecord::setType(class QByteArray const &)
+ ??0QBluetoothHostInfo@QtMobility@@QAE@ABV01@@Z @ 144 NONAME ; QtMobility::QBluetoothHostInfo::QBluetoothHostInfo(class QtMobility::QBluetoothHostInfo const &)
+ ?record@QDeclarativeNdefRecord@QtMobility@@QBE?AVQNdefRecord@2@XZ @ 145 NONAME ; class QtMobility::QNdefRecord QtMobility::QDeclarativeNdefRecord::record(void) const
+ ?staticMetaObject@QBluetoothSocket@QtMobility@@2UQMetaObject@@B @ 146 NONAME ; struct QMetaObject const QtMobility::QBluetoothSocket::staticMetaObject
+ ?d_func@QBluetoothTransferReply@QtMobility@@AAEPAVQBluetoothTransferReplyPrivate@2@XZ @ 147 NONAME ; class QtMobility::QBluetoothTransferReplyPrivate * QtMobility::QBluetoothTransferReply::d_func(void)
+ ??8QNdefMessage@QtMobility@@QBE_NABV01@@Z @ 148 NONAME ; bool QtMobility::QNdefMessage::operator==(class QtMobility::QNdefMessage const &) const
+ ??0QBluetoothAddress@QtMobility@@QAE@_K@Z @ 149 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(unsigned long long)
+ ??_EQNearFieldTagType4@QtMobility@@UAE@I@Z @ 150 NONAME ; QtMobility::QNearFieldTagType4::~QNearFieldTagType4(unsigned int)
+ ?trUtf8@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 151 NONAME ; class QString QtMobility::QLlcpSocket::trUtf8(char const *, char const *)
+ ??0QNdefNfcUriRecord@QtMobility@@QAE@ABVQNdefRecord@1@@Z @ 152 NONAME ; QtMobility::QNdefNfcUriRecord::QNdefNfcUriRecord(class QtMobility::QNdefRecord const &)
+ ?setId@QNdefRecord@QtMobility@@QAEXABVQByteArray@@@Z @ 153 NONAME ; void QtMobility::QNdefRecord::setId(class QByteArray const &)
+ ??4QNdefFilter@QtMobility@@QAEAAV01@ABV01@@Z @ 154 NONAME ; class QtMobility::QNdefFilter & QtMobility::QNdefFilter::operator=(class QtMobility::QNdefFilter const &)
+ ??0QLlcpServer@QtMobility@@QAE@PAVQObject@@@Z @ 155 NONAME ; QtMobility::QLlcpServer::QLlcpServer(class QObject *)
+ ?waitForConnected@QLlcpSocket@QtMobility@@UAE_NH@Z @ 156 NONAME ; bool QtMobility::QLlcpSocket::waitForConnected(int)
+ ?setAttribute@QBluetoothTransferRequest@QtMobility@@QAEXW4Attribute@12@ABVQVariant@@@Z @ 157 NONAME ; void QtMobility::QBluetoothTransferRequest::setAttribute(enum QtMobility::QBluetoothTransferRequest::Attribute, class QVariant const &)
+ ??0QRfcommServer@QtMobility@@QAE@PAVQObject@@@Z @ 158 NONAME ; QtMobility::QRfcommServer::QRfcommServer(class QObject *)
+ ??0QBluetoothSocket@QtMobility@@QAE@W4SocketType@01@PAVQObject@@@Z @ 159 NONAME ; QtMobility::QBluetoothSocket::QBluetoothSocket(enum QtMobility::QBluetoothSocket::SocketType, class QObject *)
+ ?startTargetDetection@QNearFieldManager@QtMobility@@QAE_NW4Type@QNearFieldTarget@2@@Z @ 160 NONAME ; bool QtMobility::QNearFieldManager::startTargetDetection(enum QtMobility::QNearFieldTarget::Type)
+ ?tr@QLlcpServer@QtMobility@@SA?AVQString@@PBD0@Z @ 161 NONAME ; class QString QtMobility::QLlcpServer::tr(char const *, char const *)
+ ?tr@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0@Z @ 162 NONAME ; class QString QtMobility::QNearFieldTagType2::tr(char const *, char const *)
+ ?getStaticMetaObject@QBluetoothTransferReply@QtMobility@@SAABUQMetaObject@@XZ @ 163 NONAME ; struct QMetaObject const & QtMobility::QBluetoothTransferReply::getStaticMetaObject(void)
+ ?transactionDetected@QNearFieldManager@QtMobility@@IAEXABVQByteArray@@@Z @ 164 NONAME ; void QtMobility::QNearFieldManager::transactionDetected(class QByteArray const &)
+ ?metaObject@QBluetoothDeviceDiscoveryAgent@QtMobility@@UBEPBUQMetaObject@@XZ @ 165 NONAME ; struct QMetaObject const * QtMobility::QBluetoothDeviceDiscoveryAgent::metaObject(void) const
+ ?qt_metacast@QLlcpSocket@QtMobility@@UAEPAXPBD@Z @ 166 NONAME ; void * QtMobility::QLlcpSocket::qt_metacast(char const *)
+ ?setResponseForRequest@QNearFieldTarget@QtMobility@@QAEXABVRequestId@12@ABVQVariant@@_N@Z @ 167 NONAME ; void QtMobility::QNearFieldTarget::setResponseForRequest(class QtMobility::QNearFieldTarget::RequestId const &, class QVariant const &, bool)
+ ?d_func@QBluetoothTransferRequest@QtMobility@@ABEPBVQBluetoothTransferRequestPrivate@2@XZ @ 168 NONAME ; class QtMobility::QBluetoothTransferRequestPrivate const * QtMobility::QBluetoothTransferRequest::d_func(void) const
+ ?writeNdefMessages@QNearFieldTarget@QtMobility@@UAE?AVRequestId@12@ABV?$QList@VQNdefMessage@QtMobility@@@@@Z @ 169 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTarget::writeNdefMessages(class QList<class QtMobility::QNdefMessage> const &)
+ ?staticMetaObject@QBluetoothServiceDiscoveryAgent@QtMobility@@2UQMetaObject@@B @ 170 NONAME ; struct QMetaObject const QtMobility::QBluetoothServiceDiscoveryAgent::staticMetaObject
+ ?setServiceUuid@QBluetoothServiceInfo@QtMobility@@QAEXABVQBluetoothUuid@2@@Z @ 171 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceUuid(class QtMobility::QBluetoothUuid const &)
+ ??0QBluetoothAddress@QtMobility@@QAE@ABVQString@@@Z @ 172 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(class QString const &)
+ ?trUtf8@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0@Z @ 173 NONAME ; class QString QtMobility::QBluetoothLocalDevice::trUtf8(char const *, char const *)
+ ?setServiceDescription@QBluetoothServiceInfo@QtMobility@@QAEXABVQString@@@Z @ 174 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceDescription(class QString const &)
+ ??0QBluetoothTransferManager@QtMobility@@QAE@PAVQObject@@@Z @ 175 NONAME ; QtMobility::QBluetoothTransferManager::QBluetoothTransferManager(class QObject *)
+ ?d_func@QNearFieldManager@QtMobility@@ABEPBVQNearFieldManagerPrivate@2@XZ @ 176 NONAME ; class QtMobility::QNearFieldManagerPrivate const * QtMobility::QNearFieldManager::d_func(void) const
+ ?stopTargetDetection@QNearFieldManager@QtMobility@@QAEXXZ @ 177 NONAME ; void QtMobility::QNearFieldManager::stopTargetDetection(void)
+ ?setRecord@QDeclarativeNdefRecord@QtMobility@@QAEXABVQNdefRecord@2@@Z @ 178 NONAME ; void QtMobility::QDeclarativeNdefRecord::setRecord(class QtMobility::QNdefRecord const &)
+ ??0QNdefRecord@QtMobility@@IAE@ABV01@W4TypeNameFormat@01@ABVQByteArray@@@Z @ 179 NONAME ; QtMobility::QNdefRecord::QNdefRecord(class QtMobility::QNdefRecord const &, enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &)
+ ?pairingFinished@QBluetoothLocalDevice@QtMobility@@IAEXABVQBluetoothAddress@2@W4Pairing@12@@Z @ 180 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingFinished(class QtMobility::QBluetoothAddress const &, enum QtMobility::QBluetoothLocalDevice::Pairing)
+ ?disconnectFromService@QLlcpSocket@QtMobility@@QAEXXZ @ 181 NONAME ; void QtMobility::QLlcpSocket::disconnectFromService(void)
+ ?metaObject@QNearFieldTagType4@QtMobility@@UBEPBUQMetaObject@@XZ @ 182 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType4::metaObject(void) const
+ ??1QBluetoothServiceInfo@QtMobility@@QAE@XZ @ 183 NONAME ; QtMobility::QBluetoothServiceInfo::~QBluetoothServiceInfo(void)
+ ?doDeviceDiscovery@QBluetoothSocket@QtMobility@@IAEXABVQBluetoothServiceInfo@2@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 184 NONAME ; void QtMobility::QBluetoothSocket::doDeviceDiscovery(class QtMobility::QBluetoothServiceInfo const &, class QFlags<enum QIODevice::OpenModeFlag>)
+ ??_EQBluetoothHostInfo@QtMobility@@QAE@I@Z @ 185 NONAME ; QtMobility::QBluetoothHostInfo::~QBluetoothHostInfo(unsigned int)
+ ?setEncoding@QNdefNfcTextRecord@QtMobility@@QAEXW4Encoding@12@@Z @ 186 NONAME ; void QtMobility::QNdefNfcTextRecord::setEncoding(enum QtMobility::QNdefNfcTextRecord::Encoding)
+ ??0QBluetoothDeviceInfo@QtMobility@@QAE@ABV01@@Z @ 187 NONAME ; QtMobility::QBluetoothDeviceInfo::QBluetoothDeviceInfo(class QtMobility::QBluetoothDeviceInfo const &)
+ ?toUInt64@QBluetoothAddress@QtMobility@@QBE_KXZ @ 188 NONAME ; unsigned long long QtMobility::QBluetoothAddress::toUInt64(void) const
+ ?localAddress@QBluetoothSocket@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 189 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothSocket::localAddress(void) const
+ ?qNewDeclarativeNdefRecordForNdefRecord@QtMobility@@YAPAVQDeclarativeNdefRecord@1@ABVQNdefRecord@1@@Z @ 190 NONAME ; class QtMobility::QDeclarativeNdefRecord * QtMobility::qNewDeclarativeNdefRecordForNdefRecord(class QtMobility::QNdefRecord const &)
+ ?clear@QNdefFilter@QtMobility@@QAEXXZ @ 191 NONAME ; void QtMobility::QNdefFilter::clear(void)
+ ?tr@QRfcommServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 192 NONAME ; class QString QtMobility::QRfcommServer::tr(char const *, char const *, int)
+ ?start@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXW4DiscoveryMode@12@@Z @ 193 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::start(enum QtMobility::QBluetoothServiceDiscoveryAgent::DiscoveryMode)
+ ??4QBluetoothTransferRequest@QtMobility@@QAEAAV01@ABV01@@Z @ 194 NONAME ; class QtMobility::QBluetoothTransferRequest & QtMobility::QBluetoothTransferRequest::operator=(class QtMobility::QBluetoothTransferRequest const &)
+ ?readData@QLlcpSocket@QtMobility@@MAE_JPAD_J@Z @ 195 NONAME ; long long QtMobility::QLlcpSocket::readData(char *, long long)
+ ??1QDeclarativeNdefRecord@QtMobility@@UAE@XZ @ 196 NONAME ; QtMobility::QDeclarativeNdefRecord::~QDeclarativeNdefRecord(void)
+ ?setServiceName@QBluetoothServiceInfo@QtMobility@@QAEXABVQString@@@Z @ 197 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceName(class QString const &)
+ ?metaObject@QLlcpServer@QtMobility@@UBEPBUQMetaObject@@XZ @ 198 NONAME ; struct QMetaObject const * QtMobility::QLlcpServer::metaObject(void) const
+ ?tr@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0H@Z @ 199 NONAME ; class QString QtMobility::QNearFieldTagType4::tr(char const *, char const *, int)
+ ?qt_metacast@QBluetoothSocket@QtMobility@@UAEPAXPBD@Z @ 200 NONAME ; void * QtMobility::QBluetoothSocket::qt_metacast(char const *)
+ ?getStaticMetaObject@QBluetoothDeviceDiscoveryAgent@QtMobility@@SAABUQMetaObject@@XZ @ 201 NONAME ; struct QMetaObject const & QtMobility::QBluetoothDeviceDiscoveryAgent::getStaticMetaObject(void)
+ ??1QNdefMessage@QtMobility@@QAE@XZ @ 202 NONAME ; QtMobility::QNdefMessage::~QNdefMessage(void)
+ ?getStaticMetaObject@QLlcpServer@QtMobility@@SAABUQMetaObject@@XZ @ 203 NONAME ; struct QMetaObject const & QtMobility::QLlcpServer::getStaticMetaObject(void)
+ ?attribute@QBluetoothTransferRequest@QtMobility@@QBE?AVQVariant@@W4Attribute@12@ABV3@@Z @ 204 NONAME ; class QVariant QtMobility::QBluetoothTransferRequest::attribute(enum QtMobility::QBluetoothTransferRequest::Attribute, class QVariant const &) const
+ ??_ERequestId@QNearFieldTarget@QtMobility@@QAE@I@Z @ 205 NONAME ; QtMobility::QNearFieldTarget::RequestId::~RequestId(unsigned int)
+ ?trUtf8@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0@Z @ 206 NONAME ; class QString QtMobility::QBluetoothTransferReply::trUtf8(char const *, char const *)
+ ?handleResponse@QNearFieldTagType3@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 207 NONAME ; bool QtMobility::QNearFieldTagType3::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
+ ?setUuidFilter@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXABV?$QList@VQBluetoothUuid@QtMobility@@@@@Z @ 208 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::setUuidFilter(class QList<class QtMobility::QBluetoothUuid> const &)
+ ??0QBluetoothAddress@QtMobility@@QAE@ABV01@@Z @ 209 NONAME ; QtMobility::QBluetoothAddress::QBluetoothAddress(class QtMobility::QBluetoothAddress const &)
+ ??0QNdefMessage@QtMobility@@QAE@ABV?$QList@VQNdefRecord@QtMobility@@@@@Z @ 210 NONAME ; QtMobility::QNdefMessage::QNdefMessage(class QList<class QtMobility::QNdefRecord> const &)
+ ??_EQRfcommServer@QtMobility@@UAE@I@Z @ 211 NONAME ; QtMobility::QRfcommServer::~QRfcommServer(unsigned int)
+ ?disconnected@QLlcpSocket@QtMobility@@IAEXXZ @ 212 NONAME ; void QtMobility::QLlcpSocket::disconnected(void)
+ ?localName@QBluetoothSocket@QtMobility@@QBE?AVQString@@XZ @ 213 NONAME ; class QString QtMobility::QBluetoothSocket::localName(void) const
+ ?trUtf8@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0@Z @ 214 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::trUtf8(char const *, char const *)
+ ?staticMetaObject@QDeclarativeNdefRecord@QtMobility@@2UQMetaObject@@B @ 215 NONAME ; struct QMetaObject const QtMobility::QDeclarativeNdefRecord::staticMetaObject
+ ?qt_metacast@QNearFieldTagType4@QtMobility@@UAEPAXPBD@Z @ 216 NONAME ; void * QtMobility::QNearFieldTagType4::qt_metacast(char const *)
+ ?qt_metacall@QNearFieldTagType4@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 217 NONAME ; int QtMobility::QNearFieldTagType4::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?toUInt16@QBluetoothUuid@QtMobility@@QBEGPA_N@Z @ 218 NONAME ; unsigned short QtMobility::QBluetoothUuid::toUInt16(bool *) const
+ ?trUtf8@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0@Z @ 219 NONAME ; class QString QtMobility::QBluetoothTransferManager::trUtf8(char const *, char const *)
+ ??1QNdefRecord@QtMobility@@QAE@XZ @ 220 NONAME ; QtMobility::QNdefRecord::~QNdefRecord(void)
+ ?getStaticMetaObject@QL2capServer@QtMobility@@SAABUQMetaObject@@XZ @ 221 NONAME ; struct QMetaObject const & QtMobility::QL2capServer::getStaticMetaObject(void)
+ ?metaObject@QBluetoothTransferReply@QtMobility@@UBEPBUQMetaObject@@XZ @ 222 NONAME ; struct QMetaObject const * QtMobility::QBluetoothTransferReply::metaObject(void) const
+ ?start@QBluetoothDeviceDiscoveryAgent@QtMobility@@QAEXXZ @ 223 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::start(void)
+ ??0QBluetoothUuid@QtMobility@@QAE@W4ProtocolUuid@01@@Z @ 224 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(enum QtMobility::QBluetoothUuid::ProtocolUuid)
+ ?serverAddress@QL2capServer@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 225 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QL2capServer::serverAddress(void) const
+ ?serverPort@QRfcommServer@QtMobility@@QBEGXZ @ 226 NONAME ; unsigned short QtMobility::QRfcommServer::serverPort(void) const
+ ?targetAccessModes@QNearFieldManager@QtMobility@@QBE?AV?$QFlags@W4TargetAccessMode@QNearFieldManager@QtMobility@@@@XZ @ 227 NONAME ; class QFlags<enum QtMobility::QNearFieldManager::TargetAccessMode> QtMobility::QNearFieldManager::targetAccessModes(void) const
+ ?error@QLlcpSocket@QtMobility@@QBE?AW4SocketError@12@XZ @ 228 NONAME ; enum QtMobility::QLlcpSocket::SocketError QtMobility::QLlcpSocket::error(void) const
+ ?trUtf8@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 229 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::trUtf8(char const *, char const *, int)
+ ?qt_metacall@QDeclarativeNdefRecord@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 230 NONAME ; int QtMobility::QDeclarativeNdefRecord::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??9QBluetoothAddress@QtMobility@@QBE_NABV01@@Z @ 231 NONAME ; bool QtMobility::QBluetoothAddress::operator!=(class QtMobility::QBluetoothAddress const &) const
+ ?readNdefMessages@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@XZ @ 232 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::readNdefMessages(void)
+ ?d_func@QL2capServer@QtMobility@@ABEPBVQL2capServerPrivate@2@XZ @ 233 NONAME ; class QtMobility::QL2capServerPrivate const * QtMobility::QL2capServer::d_func(void) const
+ ?setMaxPendingConnections@QRfcommServer@QtMobility@@QAEXH@Z @ 234 NONAME ; void QtMobility::QRfcommServer::setMaxPendingConnections(int)
+ ??8RequestId@QNearFieldTarget@QtMobility@@QBE_NABV012@@Z @ 235 NONAME ; bool QtMobility::QNearFieldTarget::RequestId::operator==(class QtMobility::QNearFieldTarget::RequestId const &) const
+ ?finished@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXXZ @ 236 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::finished(void)
+ ?tr@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0@Z @ 237 NONAME ; class QString QtMobility::QNearFieldTagType4::tr(char const *, char const *)
+ ?trUtf8@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0H@Z @ 238 NONAME ; class QString QtMobility::QNearFieldTarget::trUtf8(char const *, char const *, int)
+ ?close@QLlcpServer@QtMobility@@QAEXXZ @ 239 NONAME ; void QtMobility::QLlcpServer::close(void)
+ ??_EQBluetoothDeviceDiscoveryAgent@QtMobility@@UAE@I@Z @ 240 NONAME ; QtMobility::QBluetoothDeviceDiscoveryAgent::~QBluetoothDeviceDiscoveryAgent(unsigned int)
+ ?serviceClasses@QBluetoothDeviceInfo@QtMobility@@QBE?AV?$QFlags@W4ServiceClass@QBluetoothDeviceInfo@QtMobility@@@@XZ @ 241 NONAME ; class QFlags<enum QtMobility::QBluetoothDeviceInfo::ServiceClass> QtMobility::QBluetoothDeviceInfo::serviceClasses(void) const
+ ?d_func@QNearFieldTarget@QtMobility@@AAEPAVQNearFieldTargetPrivate@2@XZ @ 242 NONAME ; class QtMobility::QNearFieldTargetPrivate * QtMobility::QNearFieldTarget::d_func(void)
+ ?staticMetaObject@QNearFieldManager@QtMobility@@2UQMetaObject@@B @ 243 NONAME ; struct QMetaObject const QtMobility::QNearFieldManager::staticMetaObject
+ ?isValid@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 244 NONAME ; bool QtMobility::QBluetoothServiceInfo::isValid(void) const
+ ?setHostMode@QBluetoothLocalDevice@QtMobility@@QAEXW4HostMode@12@@Z @ 245 NONAME ; void QtMobility::QBluetoothLocalDevice::setHostMode(enum QtMobility::QBluetoothLocalDevice::HostMode)
+ ?type@QNearFieldTagType2@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 246 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType2::type(void) const
+ ?setManufacturerSpecificData@QBluetoothDeviceInfo@QtMobility@@QAEXABVQByteArray@@@Z @ 247 NONAME ; void QtMobility::QBluetoothDeviceInfo::setManufacturerSpecificData(class QByteArray const &)
+ ??0QBluetoothUuid@QtMobility@@QAE@Uquint128@1@@Z @ 248 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(struct QtMobility::quint128)
+ ?metaObject@QNearFieldTagType1@QtMobility@@UBEPBUQMetaObject@@XZ @ 249 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType1::metaObject(void) const
+ ?trUtf8@QL2capServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 250 NONAME ; class QString QtMobility::QL2capServer::trUtf8(char const *, char const *, int)
+ ?recordTypeChanged@QDeclarativeNdefRecord@QtMobility@@IAEXXZ @ 251 NONAME ; void QtMobility::QDeclarativeNdefRecord::recordTypeChanged(void)
+ ?d_func@QBluetoothServiceInfo@QtMobility@@AAEPAVQBluetoothServiceInfoPrivate@2@XZ @ 252 NONAME ; class QtMobility::QBluetoothServiceInfoPrivate * QtMobility::QBluetoothServiceInfo::d_func(void)
+ ?getStaticMetaObject@QNearFieldTagType1@QtMobility@@SAABUQMetaObject@@XZ @ 253 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType1::getStaticMetaObject(void)
+ ?setRecordType@QDeclarativeNdefRecord@QtMobility@@QAEXABVQString@@@Z @ 254 NONAME ; void QtMobility::QDeclarativeNdefRecord::setRecordType(class QString const &)
+ ?typeNameFormat@QNdefRecord@QtMobility@@QBE?AW4TypeNameFormat@12@XZ @ 255 NONAME ; enum QtMobility::QNdefRecord::TypeNameFormat QtMobility::QNdefRecord::typeNameFormat(void) const
+ ?setUuidFilter@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXABVQBluetoothUuid@2@@Z @ 256 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::setUuidFilter(class QtMobility::QBluetoothUuid const &)
+ ?handleResponse@QNearFieldTarget@QtMobility@@MAE_NABVRequestId@12@ABVQByteArray@@@Z @ 257 NONAME ; bool QtMobility::QNearFieldTarget::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
+ ??0QNearFieldTagType1@QtMobility@@QAE@PAVQObject@@@Z @ 258 NONAME ; QtMobility::QNearFieldTagType1::QNearFieldTagType1(class QObject *)
+ ?tr@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0H@Z @ 259 NONAME ; class QString QtMobility::QNearFieldTagType1::tr(char const *, char const *, int)
+ ??1QNearFieldManager@QtMobility@@UAE@XZ @ 260 NONAME ; QtMobility::QNearFieldManager::~QNearFieldManager(void)
+ ?finished@QBluetoothTransferManager@QtMobility@@IAEXPAVQBluetoothTransferReply@2@@Z @ 261 NONAME ; void QtMobility::QBluetoothTransferManager::finished(class QtMobility::QBluetoothTransferReply *)
+ ?serviceClassUuids@QBluetoothServiceInfo@QtMobility@@QBE?AV?$QList@VQBluetoothUuid@QtMobility@@@@XZ @ 262 NONAME ; class QList<class QtMobility::QBluetoothUuid> QtMobility::QBluetoothServiceInfo::serviceClassUuids(void) const
+ ?memorySize@QNearFieldTagType1@QtMobility@@UAEHXZ @ 263 NONAME ; int QtMobility::QNearFieldTagType1::memorySize(void)
+ ??1QRfcommServer@QtMobility@@UAE@XZ @ 264 NONAME ; QtMobility::QRfcommServer::~QRfcommServer(void)
+ ?isListening@QRfcommServer@QtMobility@@QBE_NXZ @ 265 NONAME ; bool QtMobility::QRfcommServer::isListening(void) const
+ ?readNdefMessages@QNearFieldTarget@QtMobility@@UAE?AVRequestId@12@XZ @ 266 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTarget::readNdefMessages(void)
+ ?isSequential@QBluetoothSocket@QtMobility@@UBE_NXZ @ 267 NONAME ; bool QtMobility::QBluetoothSocket::isSequential(void) const
+ ??0QNdefMessage@QtMobility@@QAE@ABVQNdefRecord@1@@Z @ 268 NONAME ; QtMobility::QNdefMessage::QNdefMessage(class QtMobility::QNdefRecord const &)
+ ?staticMetaObject@QNearFieldTagType2@QtMobility@@2UQMetaObject@@B @ 269 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType2::staticMetaObject
+ ?setDevice@QBluetoothServiceInfo@QtMobility@@QAEXABVQBluetoothDeviceInfo@2@@Z @ 270 NONAME ; void QtMobility::QBluetoothServiceInfo::setDevice(class QtMobility::QBluetoothDeviceInfo const &)
+ ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVQVariant@@@Z @ 271 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QVariant const &)
+ ?setServiceProvider@QBluetoothServiceInfo@QtMobility@@QAEXABVQString@@@Z @ 272 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceProvider(class QString const &)
+ ?payload@QNdefRecord@QtMobility@@QBE?AVQByteArray@@XZ @ 273 NONAME ; class QByteArray QtMobility::QNdefRecord::payload(void) const
+ ?trUtf8@QNearFieldTagType2@QtMobility@@SA?AVQString@@PBD0@Z @ 274 NONAME ; class QString QtMobility::QNearFieldTagType2::trUtf8(char const *, char const *)
+ ?refCount@RequestId@QNearFieldTarget@QtMobility@@QBEHXZ @ 275 NONAME ; int QtMobility::QNearFieldTarget::RequestId::refCount(void) const
+ ??0QBluetoothUuid@QtMobility@@QAE@ABUQUuid@@@Z @ 276 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(struct QUuid const &)
+ ?text@QNdefNfcTextRecord@QtMobility@@QBE?AVQString@@XZ @ 277 NONAME ; class QString QtMobility::QNdefNfcTextRecord::text(void) const
+ ?trUtf8@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0H@Z @ 278 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::trUtf8(char const *, char const *, int)
+ ?qt_metacall@QLlcpSocket@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 279 NONAME ; int QtMobility::QLlcpSocket::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??1QBluetoothTransferReply@QtMobility@@UAE@XZ @ 280 NONAME ; QtMobility::QBluetoothTransferReply::~QBluetoothTransferReply(void)
+ ??6QtMobility@@YA?AVQDebug@@V1@W4SocketState@QBluetoothSocket@0@@Z @ 281 NONAME ; class QDebug QtMobility::operator<<(class QDebug, enum QtMobility::QBluetoothSocket::SocketState)
+ ?isValid@QBluetoothDeviceInfo@QtMobility@@QBE_NXZ @ 282 NONAME ; bool QtMobility::QBluetoothDeviceInfo::isValid(void) const
+ ?stop@QBluetoothDeviceDiscoveryAgent@QtMobility@@QAEXXZ @ 283 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::stop(void)
+ ?peerPort@QBluetoothSocket@QtMobility@@QBEGXZ @ 284 NONAME ; unsigned short QtMobility::QBluetoothSocket::peerPort(void) const
+ ?tr@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 285 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::tr(char const *, char const *)
+ ?trUtf8@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0H@Z @ 286 NONAME ; class QString QtMobility::QNearFieldTagType4::trUtf8(char const *, char const *, int)
+ ??0QBluetoothUuid@QtMobility@@QAE@XZ @ 287 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(void)
+ ?socketType@QBluetoothSocket@QtMobility@@QBE?AW4SocketType@12@XZ @ 288 NONAME ; enum QtMobility::QBluetoothSocket::SocketType QtMobility::QBluetoothSocket::socketType(void) const
+ ??MQBluetoothAddress@QtMobility@@QBE_NABV01@@Z @ 289 NONAME ; bool QtMobility::QBluetoothAddress::operator<(class QtMobility::QBluetoothAddress const &) const
+ ?serviceAvailability@QBluetoothServiceInfo@QtMobility@@QBEEXZ @ 290 NONAME ; unsigned char QtMobility::QBluetoothServiceInfo::serviceAvailability(void) const
+ ?securityFlags@QRfcommServer@QtMobility@@QBE?AV?$QFlags@W4Security@QBluetooth@QtMobility@@@@XZ @ 291 NONAME ; class QFlags<enum QtMobility::QBluetooth::Security> QtMobility::QRfcommServer::securityFlags(void) const
+ ?d_func@QL2capServer@QtMobility@@AAEPAVQL2capServerPrivate@2@XZ @ 292 NONAME ; class QtMobility::QL2capServerPrivate * QtMobility::QL2capServer::d_func(void)
+ ?staticMetaObject@QBluetoothTransferManager@QtMobility@@2UQMetaObject@@B @ 293 NONAME ; struct QMetaObject const QtMobility::QBluetoothTransferManager::staticMetaObject
+ ?registerNdefMessageHandler@QNearFieldManager@QtMobility@@QAEHABVQNdefFilter@2@PAVQObject@@PBD@Z @ 294 NONAME ; int QtMobility::QNearFieldManager::registerNdefMessageHandler(class QtMobility::QNdefFilter const &, class QObject *, char const *)
+ ?memorySize@QNearFieldTagType2@QtMobility@@QAEHXZ @ 295 NONAME ; int QtMobility::QNearFieldTagType2::memorySize(void)
+ ?setTargetAccessModes@QNearFieldManager@QtMobility@@QAEXV?$QFlags@W4TargetAccessMode@QNearFieldManager@QtMobility@@@@@Z @ 296 NONAME ; void QtMobility::QNearFieldManager::setTargetAccessModes(class QFlags<enum QtMobility::QNearFieldManager::TargetAccessMode>)
+ ??0QNearFieldTagType3@QtMobility@@QAE@PAVQObject@@@Z @ 297 NONAME ; QtMobility::QNearFieldTagType3::QNearFieldTagType3(class QObject *)
+ ?readNdefMessages@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@XZ @ 298 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readNdefMessages(void)
+ ?address@QBluetoothTransferRequest@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 299 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothTransferRequest::address(void) const
+ ??_EQNearFieldTagType1@QtMobility@@UAE@I@Z @ 300 NONAME ; QtMobility::QNearFieldTagType1::~QNearFieldTagType1(unsigned int)
+ ?serviceDescription@QBluetoothServiceInfo@QtMobility@@QBE?AVQString@@XZ @ 301 NONAME ; class QString QtMobility::QBluetoothServiceInfo::serviceDescription(void) const
+ ?d_func@QBluetoothDeviceDiscoveryAgent@QtMobility@@ABEPBVQBluetoothDeviceDiscoveryAgentPrivate@2@XZ @ 302 NONAME ; class QtMobility::QBluetoothDeviceDiscoveryAgentPrivate const * QtMobility::QBluetoothDeviceDiscoveryAgent::d_func(void) const
+ ?fromByteArray@QNdefMessage@QtMobility@@SA?AV12@ABVQByteArray@@@Z @ 303 NONAME ; class QtMobility::QNdefMessage QtMobility::QNdefMessage::fromByteArray(class QByteArray const &)
+ ??0QBluetoothSocket@QtMobility@@QAE@PAVQObject@@@Z @ 304 NONAME ; QtMobility::QBluetoothSocket::QBluetoothSocket(class QObject *)
+ ?d_func@QBluetoothTransferReply@QtMobility@@ABEPBVQBluetoothTransferReplyPrivate@2@XZ @ 305 NONAME ; class QtMobility::QBluetoothTransferReplyPrivate const * QtMobility::QBluetoothTransferReply::d_func(void) const
+ ?stateChanged@QBluetoothSocket@QtMobility@@IAEXW4SocketState@12@@Z @ 306 NONAME ; void QtMobility::QBluetoothSocket::stateChanged(enum QtMobility::QBluetoothSocket::SocketState)
+ ?readSegment@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 307 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readSegment(unsigned char)
+ ?setOrderMatch@QNdefFilter@QtMobility@@QAEX_N@Z @ 308 NONAME ; void QtMobility::QNdefFilter::setOrderMatch(bool)
+ ?tr@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0@Z @ 309 NONAME ; class QString QtMobility::QBluetoothLocalDevice::tr(char const *, char const *)
+ ?getStaticMetaObject@QBluetoothLocalDevice@QtMobility@@SAABUQMetaObject@@XZ @ 310 NONAME ; struct QMetaObject const & QtMobility::QBluetoothLocalDevice::getStaticMetaObject(void)
+ ?metaObject@QRfcommServer@QtMobility@@UBEPBUQMetaObject@@XZ @ 311 NONAME ; struct QMetaObject const * QtMobility::QRfcommServer::metaObject(void) const
+ ?d_func@QBluetoothServiceDiscoveryAgent@QtMobility@@AAEPAVQBluetoothServiceDiscoveryAgentPrivate@2@XZ @ 312 NONAME ; class QtMobility::QBluetoothServiceDiscoveryAgentPrivate * QtMobility::QBluetoothServiceDiscoveryAgent::d_func(void)
+ ?name@QBluetoothLocalDevice@QtMobility@@QBE?AVQString@@XZ @ 313 NONAME ; class QString QtMobility::QBluetoothLocalDevice::name(void) const
+ ?qNfcChecksum@QtMobility@@YAGPBDI@Z @ 314 NONAME ; unsigned short QtMobility::qNfcChecksum(char const *, unsigned int)
+ ?attributes@QBluetoothServiceInfo@QtMobility@@QBE?AV?$QList@G@@XZ @ 315 NONAME ; class QList<unsigned short> QtMobility::QBluetoothServiceInfo::attributes(void) const
+ ?getStaticMetaObject@QNearFieldTarget@QtMobility@@SAABUQMetaObject@@XZ @ 316 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTarget::getStaticMetaObject(void)
+ ?qt_metacall@QBluetoothLocalDevice@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 317 NONAME ; int QtMobility::QBluetoothLocalDevice::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?peerAddress@QBluetoothSocket@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 318 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothSocket::peerAddress(void) const
+ ??0QBluetoothServiceInfo@QtMobility@@QAE@ABV01@@Z @ 319 NONAME ; QtMobility::QBluetoothServiceInfo::QBluetoothServiceInfo(class QtMobility::QBluetoothServiceInfo const &)
+ ?listen@QLlcpServer@QtMobility@@QAE_NABVQString@@@Z @ 320 NONAME ; bool QtMobility::QLlcpServer::listen(class QString const &)
+ ?uri@QNdefNfcUriRecord@QtMobility@@QBE?AVQUrl@@XZ @ 321 NONAME ; class QUrl QtMobility::QNdefNfcUriRecord::uri(void) const
+ ??8QBluetoothTransferRequest@QtMobility@@QBE_NABV01@@Z @ 322 NONAME ; bool QtMobility::QBluetoothTransferRequest::operator==(class QtMobility::QBluetoothTransferRequest const &) const
+ ?d_func@QBluetoothLocalDevice@QtMobility@@ABEPBVQBluetoothLocalDevicePrivate@2@XZ @ 323 NONAME ; class QtMobility::QBluetoothLocalDevicePrivate const * QtMobility::QBluetoothLocalDevice::d_func(void) const
+ ?d_func@QNearFieldTagType2@QtMobility@@AAEPAVQNearFieldTagType2Private@2@XZ @ 324 NONAME ; class QtMobility::QNearFieldTagType2Private * QtMobility::QNearFieldTagType2::d_func(void)
+ ??1QNdefFilter@QtMobility@@QAE@XZ @ 325 NONAME ; QtMobility::QNdefFilter::~QNdefFilter(void)
+ ?inquiryType@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AW4InquiryType@12@XZ @ 326 NONAME ; enum QtMobility::QBluetoothDeviceDiscoveryAgent::InquiryType QtMobility::QBluetoothDeviceDiscoveryAgent::inquiryType(void) const
+ ?errorString@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AVQString@@XZ @ 327 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::errorString(void) const
+ ?isValid@RequestId@QNearFieldTarget@QtMobility@@QBE_NXZ @ 328 NONAME ; bool QtMobility::QNearFieldTarget::RequestId::isValid(void) const
+ ?setOperation@QBluetoothTransferReply@QtMobility@@IAEXW4Operation@QBluetoothTransferManager@2@@Z @ 329 NONAME ; void QtMobility::QBluetoothTransferReply::setOperation(enum QtMobility::QBluetoothTransferManager::Operation)
+ ?setManager@QBluetoothTransferReply@QtMobility@@IAEXPAVQBluetoothTransferManager@2@@Z @ 330 NONAME ; void QtMobility::QBluetoothTransferReply::setManager(class QtMobility::QBluetoothTransferManager *)
+ ?pairingStatus@QBluetoothLocalDevice@QtMobility@@QBE?AW4Pairing@12@ABVQBluetoothAddress@2@@Z @ 331 NONAME ; enum QtMobility::QBluetoothLocalDevice::Pairing QtMobility::QBluetoothLocalDevice::pairingStatus(class QtMobility::QBluetoothAddress const &) const
+ ?qt_metacast@QNearFieldTagType2@QtMobility@@UAEPAXPBD@Z @ 332 NONAME ; void * QtMobility::QNearFieldTagType2::qt_metacast(char const *)
+ ?tr@QRfcommServer@QtMobility@@SA?AVQString@@PBD0@Z @ 333 NONAME ; class QString QtMobility::QRfcommServer::tr(char const *, char const *)
+ ?trUtf8@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 334 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::trUtf8(char const *, char const *)
+ ??1QBluetoothDeviceInfo@QtMobility@@QAE@XZ @ 335 NONAME ; QtMobility::QBluetoothDeviceInfo::~QBluetoothDeviceInfo(void)
+ ?getStaticMetaObject@QNearFieldTagType3@QtMobility@@SAABUQMetaObject@@XZ @ 336 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType3::getStaticMetaObject(void)
+ ?manager@QBluetoothTransferReply@QtMobility@@QBEPAVQBluetoothTransferManager@2@XZ @ 337 NONAME ; class QtMobility::QBluetoothTransferManager * QtMobility::QBluetoothTransferReply::manager(void) const
+ ??0QBluetoothHostInfo@QtMobility@@QAE@XZ @ 338 NONAME ; QtMobility::QBluetoothHostInfo::QBluetoothHostInfo(void)
+ ?d_func@QNearFieldTarget@QtMobility@@ABEPBVQNearFieldTargetPrivate@2@XZ @ 339 NONAME ; class QtMobility::QNearFieldTargetPrivate const * QtMobility::QNearFieldTarget::d_func(void) const
+ ?getStaticMetaObject@QBluetoothServiceDiscoveryAgent@QtMobility@@SAABUQMetaObject@@XZ @ 340 NONAME ; struct QMetaObject const & QtMobility::QBluetoothServiceDiscoveryAgent::getStaticMetaObject(void)
+ ?error@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXW4Error@12@@Z @ 341 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::error(enum QtMobility::QBluetoothServiceDiscoveryAgent::Error)
+ ?metaObject@QBluetoothServiceDiscoveryAgent@QtMobility@@UBEPBUQMetaObject@@XZ @ 342 NONAME ; struct QMetaObject const * QtMobility::QBluetoothServiceDiscoveryAgent::metaObject(void) const
+ ?readBlock@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@E@Z @ 343 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readBlock(unsigned char)
+ ??1QBluetoothHostInfo@QtMobility@@QAE@XZ @ 344 NONAME ; QtMobility::QBluetoothHostInfo::~QBluetoothHostInfo(void)
+ ?attribute@QBluetoothServiceInfo@QtMobility@@QBE?AVQVariant@@G@Z @ 345 NONAME ; class QVariant QtMobility::QBluetoothServiceInfo::attribute(unsigned short) const
+ ?select@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 346 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::select(class QByteArray const &)
+ ?serviceData@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@G@Z @ 347 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::serviceData(unsigned short)
+ ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JABVQByteArray@@@Z @ 348 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(class QByteArray const &)
+ ?qt_metacall@QNearFieldTagType2@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 349 NONAME ; int QtMobility::QNearFieldTagType2::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?error@QNearFieldTarget@QtMobility@@IAEXW4Error@12@ABVRequestId@12@@Z @ 350 NONAME ; void QtMobility::QNearFieldTarget::error(enum QtMobility::QNearFieldTarget::Error, class QtMobility::QNearFieldTarget::RequestId const &)
+ ?requestPairing@QBluetoothLocalDevice@QtMobility@@QAEXABVQBluetoothAddress@2@W4Pairing@12@@Z @ 351 NONAME ; void QtMobility::QBluetoothLocalDevice::requestPairing(class QtMobility::QBluetoothAddress const &, enum QtMobility::QBluetoothLocalDevice::Pairing)
+ ?trUtf8@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0@Z @ 352 NONAME ; class QString QtMobility::QNearFieldManager::trUtf8(char const *, char const *)
+ ??_EQDeclarativeNdefRecord@QtMobility@@UAE@I@Z @ 353 NONAME ; QtMobility::QDeclarativeNdefRecord::~QDeclarativeNdefRecord(unsigned int)
+ ?qt_metacast@QBluetoothLocalDevice@QtMobility@@UAEPAXPBD@Z @ 354 NONAME ; void * QtMobility::QBluetoothLocalDevice::qt_metacast(char const *)
+ ?isActive@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE_NXZ @ 355 NONAME ; bool QtMobility::QBluetoothServiceDiscoveryAgent::isActive(void) const
+ ?writeBlock@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@EABVQByteArray@@W4WriteMode@12@@Z @ 356 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::writeBlock(unsigned char, class QByteArray const &, enum QtMobility::QNearFieldTagType1::WriteMode)
+ ?state@QBluetoothSocket@QtMobility@@QBE?AW4SocketState@12@XZ @ 357 NONAME ; enum QtMobility::QBluetoothSocket::SocketState QtMobility::QBluetoothSocket::state(void) const
+ ?type@QNearFieldTagType1@QtMobility@@UBE?AW4Type@QNearFieldTarget@2@XZ @ 358 NONAME ; enum QtMobility::QNearFieldTarget::Type QtMobility::QNearFieldTagType1::type(void) const
+ ?trUtf8@QNearFieldTagType4@QtMobility@@SA?AVQString@@PBD0@Z @ 359 NONAME ; class QString QtMobility::QNearFieldTagType4::trUtf8(char const *, char const *)
+ ?metaObject@QNearFieldTarget@QtMobility@@UBEPBUQMetaObject@@XZ @ 360 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTarget::metaObject(void) const
+ ?handleResponse@QNearFieldTagType4@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 361 NONAME ; bool QtMobility::QNearFieldTagType4::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
+ ?setCached@QBluetoothDeviceInfo@QtMobility@@QAEX_N@Z @ 362 NONAME ; void QtMobility::QBluetoothDeviceInfo::setCached(bool)
+ ??4QBluetoothDeviceInfo@QtMobility@@QAEAAV01@ABV01@@Z @ 363 NONAME ; class QtMobility::QBluetoothDeviceInfo & QtMobility::QBluetoothDeviceInfo::operator=(class QtMobility::QBluetoothDeviceInfo const &)
+ ??1RequestId@QNearFieldTarget@QtMobility@@QAE@XZ @ 364 NONAME ; QtMobility::QNearFieldTarget::RequestId::~RequestId(void)
+ ?qt_metacast@QL2capServer@QtMobility@@UAEPAXPBD@Z @ 365 NONAME ; void * QtMobility::QL2capServer::qt_metacast(char const *)
+ ?staticMetaObject@QRfcommServer@QtMobility@@2UQMetaObject@@B @ 366 NONAME ; struct QMetaObject const QtMobility::QRfcommServer::staticMetaObject
+ ??MRequestId@QNearFieldTarget@QtMobility@@QBE_NABV012@@Z @ 367 NONAME ; bool QtMobility::QNearFieldTarget::RequestId::operator<(class QtMobility::QNearFieldTarget::RequestId const &) const
+ ?recordAt@QNdefFilter@QtMobility@@QBE?AURecord@12@H@Z @ 368 NONAME ; struct QtMobility::QNdefFilter::Record QtMobility::QNdefFilter::recordAt(int) const
+ ?trUtf8@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0H@Z @ 369 NONAME ; class QString QtMobility::QNearFieldTagType1::trUtf8(char const *, char const *, int)
+ ?check@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABV?$QMap@GV?$QList@G@@@@@Z @ 370 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::check(class QMap<unsigned short, class QList<unsigned short> > const &)
+ ?hostMode@QBluetoothLocalDevice@QtMobility@@QBE?AW4HostMode@12@XZ @ 371 NONAME ; enum QtMobility::QBluetoothLocalDevice::HostMode QtMobility::QBluetoothLocalDevice::hostMode(void) const
+ ?discoveredServices@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AV?$QList@VQBluetoothServiceInfo@QtMobility@@@@XZ @ 372 NONAME ; class QList<class QtMobility::QBluetoothServiceInfo> QtMobility::QBluetoothServiceDiscoveryAgent::discoveredServices(void) const
+ ??8QBluetoothDeviceInfo@QtMobility@@QBE_NABV01@@Z @ 373 NONAME ; bool QtMobility::QBluetoothDeviceInfo::operator==(class QtMobility::QBluetoothDeviceInfo const &) const
+ ?unregisterService@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 374 NONAME ; bool QtMobility::QBluetoothServiceInfo::unregisterService(void) const
+ ??0QNearFieldManager@QtMobility@@QAE@PAVQNearFieldManagerPrivate@1@PAVQObject@@@Z @ 375 NONAME ; QtMobility::QNearFieldManager::QNearFieldManager(class QtMobility::QNearFieldManagerPrivate *, class QObject *)
+ ?trUtf8@QBluetoothLocalDevice@QtMobility@@SA?AVQString@@PBD0H@Z @ 376 NONAME ; class QString QtMobility::QBluetoothLocalDevice::trUtf8(char const *, char const *, int)
+ ?d_func@QRfcommServer@QtMobility@@ABEPBVQRfcommServerPrivate@2@XZ @ 377 NONAME ; class QtMobility::QRfcommServerPrivate const * QtMobility::QRfcommServer::d_func(void) const
+ ?close@QBluetoothSocket@QtMobility@@UAEXXZ @ 378 NONAME ; void QtMobility::QBluetoothSocket::close(void)
+ ?tr@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 379 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::tr(char const *, char const *)
+ ?qt_metacall@QLlcpServer@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 380 NONAME ; int QtMobility::QLlcpServer::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?serverPort@QL2capServer@QtMobility@@QBEGXZ @ 381 NONAME ; unsigned short QtMobility::QL2capServer::serverPort(void) const
+ ?qt_metacast@QNearFieldManager@QtMobility@@UAEPAXPBD@Z @ 382 NONAME ; void * QtMobility::QNearFieldManager::qt_metacast(char const *)
+ ?tr@QBluetoothServiceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0H@Z @ 383 NONAME ; class QString QtMobility::QBluetoothServiceDiscoveryAgent::tr(char const *, char const *, int)
+ ?appendRecord@QNdefFilter@QtMobility@@QAEXW4TypeNameFormat@QNdefRecord@2@ABVQByteArray@@II@Z @ 384 NONAME ; void QtMobility::QNdefFilter::appendRecord(enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &, unsigned int, unsigned int)
+ ?put@QBluetoothTransferManager@QtMobility@@QAEPAVQBluetoothTransferReply@2@ABVQBluetoothTransferRequest@2@PAVQIODevice@@@Z @ 385 NONAME ; class QtMobility::QBluetoothTransferReply * QtMobility::QBluetoothTransferManager::put(class QtMobility::QBluetoothTransferRequest const &, class QIODevice *)
+ ?tr@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 386 NONAME ; class QString QtMobility::QBluetoothTransferManager::tr(char const *, char const *, int)
+ ?disconnected@QNearFieldTarget@QtMobility@@IAEXXZ @ 387 NONAME ; void QtMobility::QNearFieldTarget::disconnected(void)
+ ?d_func@QLlcpSocket@QtMobility@@AAEPAVQLlcpSocketPrivate@2@XZ @ 388 NONAME ; class QtMobility::QLlcpSocketPrivate * QtMobility::QLlcpSocket::d_func(void)
+ ??0QBluetoothLocalDevice@QtMobility@@QAE@PAVQObject@@@Z @ 389 NONAME ; QtMobility::QBluetoothLocalDevice::QBluetoothLocalDevice(class QObject *)
+ ?qt_metacall@QBluetoothTransferReply@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 390 NONAME ; int QtMobility::QBluetoothTransferReply::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?update@QNearFieldTagType3@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABV?$QMap@GV?$QList@G@@@@ABVQByteArray@@@Z @ 391 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType3::update(class QMap<unsigned short, class QList<unsigned short> > const &, class QByteArray const &)
+ ?trUtf8@QBluetoothSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 392 NONAME ; class QString QtMobility::QBluetoothSocket::trUtf8(char const *, char const *, int)
+ ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JPBD_JPAVQNearFieldTarget@2@E@Z @ 393 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(char const *, long long, class QtMobility::QNearFieldTarget *, unsigned char)
+ ??0QBluetoothServiceInfo@QtMobility@@QAE@XZ @ 394 NONAME ; QtMobility::QBluetoothServiceInfo::QBluetoothServiceInfo(void)
+ ??_EQBluetoothUuid@QtMobility@@QAE@I@Z @ 395 NONAME ; QtMobility::QBluetoothUuid::~QBluetoothUuid(unsigned int)
+ ?unregisterNdefMessageHandler@QNearFieldManager@QtMobility@@QAE_NH@Z @ 396 NONAME ; bool QtMobility::QNearFieldManager::unregisterNdefMessageHandler(int)
+ ?connected@QBluetoothSocket@QtMobility@@IAEXXZ @ 397 NONAME ; void QtMobility::QBluetoothSocket::connected(void)
+ ??_EQNearFieldManager@QtMobility@@UAE@I@Z @ 398 NONAME ; QtMobility::QNearFieldManager::~QNearFieldManager(unsigned int)
+ ?d_func@QLlcpServer@QtMobility@@AAEPAVQLlcpServerPrivate@2@XZ @ 399 NONAME ; class QtMobility::QLlcpServerPrivate * QtMobility::QLlcpServer::d_func(void)
+ ??0QBluetoothTransferReplyPrivate@QtMobility@@QAE@XZ @ 400 NONAME ; QtMobility::QBluetoothTransferReplyPrivate::QBluetoothTransferReplyPrivate(void)
+ ??0QBluetoothServiceDiscoveryAgent@QtMobility@@QAE@PAVQObject@@@Z @ 401 NONAME ; QtMobility::QBluetoothServiceDiscoveryAgent::QBluetoothServiceDiscoveryAgent(class QObject *)
+ ?systemCode@QNearFieldTagType3@QtMobility@@QAEGXZ @ 402 NONAME ; unsigned short QtMobility::QNearFieldTagType3::systemCode(void)
+ ?newConnection@QRfcommServer@QtMobility@@IAEXXZ @ 403 NONAME ; void QtMobility::QRfcommServer::newConnection(void)
+ ?qt_metacast@QRfcommServer@QtMobility@@UAEPAXPBD@Z @ 404 NONAME ; void * QtMobility::QRfcommServer::qt_metacast(char const *)
+ ?setUri@QNdefNfcUriRecord@QtMobility@@QAEXABVQUrl@@@Z @ 405 NONAME ; void QtMobility::QNdefNfcUriRecord::setUri(class QUrl const &)
+ ??_EQBluetoothTransferManager@QtMobility@@UAE@I@Z @ 406 NONAME ; QtMobility::QBluetoothTransferManager::~QBluetoothTransferManager(unsigned int)
+ ?close@QRfcommServer@QtMobility@@QAEXXZ @ 407 NONAME ; void QtMobility::QRfcommServer::close(void)
+ ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVQBluetoothUuid@2@@Z @ 408 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QtMobility::QBluetoothUuid const &)
+ ??0QBluetoothUuid@QtMobility@@QAE@W4ServiceClassUuid@01@@Z @ 409 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(enum QtMobility::QBluetoothUuid::ServiceClassUuid)
+ ??0QBluetoothUuid@QtMobility@@QAE@ABV01@@Z @ 410 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(class QtMobility::QBluetoothUuid const &)
+ ??0QBluetoothDeviceDiscoveryAgent@QtMobility@@QAE@PAVQObject@@@Z @ 411 NONAME ; QtMobility::QBluetoothDeviceDiscoveryAgent::QBluetoothDeviceDiscoveryAgent(class QObject *)
+ ?disconnected@QBluetoothSocket@QtMobility@@IAEXXZ @ 412 NONAME ; void QtMobility::QBluetoothSocket::disconnected(void)
+ ?serverPort@QLlcpServer@QtMobility@@QBEEXZ @ 413 NONAME ; unsigned char QtMobility::QLlcpServer::serverPort(void) const
+ ?setMaxPendingConnections@QL2capServer@QtMobility@@QAEXH@Z @ 414 NONAME ; void QtMobility::QL2capServer::setMaxPendingConnections(int)
+ ?setSecurityFlags@QRfcommServer@QtMobility@@QAEXV?$QFlags@W4Security@QBluetooth@QtMobility@@@@@Z @ 415 NONAME ; void QtMobility::QRfcommServer::setSecurityFlags(class QFlags<enum QtMobility::QBluetooth::Security>)
+ ??8QNdefRecord@QtMobility@@QBE_NABV01@@Z @ 416 NONAME ; bool QtMobility::QNdefRecord::operator==(class QtMobility::QNdefRecord const &) const
+ ??0QBluetoothTransferRequest@QtMobility@@QAE@ABVQBluetoothAddress@1@@Z @ 417 NONAME ; QtMobility::QBluetoothTransferRequest::QBluetoothTransferRequest(class QtMobility::QBluetoothAddress const &)
+ ?qt_metacall@QRfcommServer@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 418 NONAME ; int QtMobility::QRfcommServer::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?setInquiryType@QBluetoothDeviceDiscoveryAgent@QtMobility@@QAEXW4InquiryType@12@@Z @ 419 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::setInquiryType(enum QtMobility::QBluetoothDeviceDiscoveryAgent::InquiryType)
+ ??_EQNearFieldTagType3@QtMobility@@UAE@I@Z @ 420 NONAME ; QtMobility::QNearFieldTagType3::~QNearFieldTagType3(unsigned int)
+ ?listen@QL2capServer@QtMobility@@QAE_NABVQBluetoothAddress@2@G@Z @ 421 NONAME ; bool QtMobility::QL2capServer::listen(class QtMobility::QBluetoothAddress const &, unsigned short)
+ ?metaObject@QNearFieldTagType3@QtMobility@@UBEPBUQMetaObject@@XZ @ 422 NONAME ; struct QMetaObject const * QtMobility::QNearFieldTagType3::metaObject(void) const
+ ?recordType@QDeclarativeNdefRecord@QtMobility@@QBE?AVQString@@XZ @ 423 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::recordType(void) const
+ ??9QNdefRecord@QtMobility@@QBE_NABV01@@Z @ 424 NONAME ; bool QtMobility::QNdefRecord::operator!=(class QtMobility::QNdefRecord const &) const
+ ?isValid@QBluetoothLocalDevice@QtMobility@@QBE_NXZ @ 425 NONAME ; bool QtMobility::QBluetoothLocalDevice::isValid(void) const
+ ?setSocketDescriptor@QBluetoothSocket@QtMobility@@QAE_NHW4SocketType@12@W4SocketState@12@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 426 NONAME ; bool QtMobility::QBluetoothSocket::setSocketDescriptor(int, enum QtMobility::QBluetoothSocket::SocketType, enum QtMobility::QBluetoothSocket::SocketState, class QFlags<enum QIODevice::OpenModeFlag>)
+ ?bytesToWrite@QBluetoothSocket@QtMobility@@UBE_JXZ @ 427 NONAME ; long long QtMobility::QBluetoothSocket::bytesToWrite(void) const
+ ?writeNdefMessages@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABV?$QList@VQNdefMessage@QtMobility@@@@@Z @ 428 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::writeNdefMessages(class QList<class QtMobility::QNdefMessage> const &)
+ ?waitForRequestCompleted@QNearFieldTagType2@QtMobility@@UAE_NABVRequestId@QNearFieldTarget@2@H@Z @ 429 NONAME ; bool QtMobility::QNearFieldTagType2::waitForRequestCompleted(class QtMobility::QNearFieldTarget::RequestId const &, int)
+ ?trUtf8@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 430 NONAME ; class QString QtMobility::QLlcpSocket::trUtf8(char const *, char const *, int)
+ ?getStaticMetaObject@QBluetoothSocket@QtMobility@@SAABUQMetaObject@@XZ @ 431 NONAME ; struct QMetaObject const & QtMobility::QBluetoothSocket::getStaticMetaObject(void)
+ ?listen@QRfcommServer@QtMobility@@QAE_NABVQBluetoothAddress@2@G@Z @ 432 NONAME ; bool QtMobility::QRfcommServer::listen(class QtMobility::QBluetoothAddress const &, unsigned short)
+ ?staticMetaObject@QNearFieldTagType4@QtMobility@@2UQMetaObject@@B @ 433 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType4::staticMetaObject
+ ?d_func@QNearFieldTagType2@QtMobility@@ABEPBVQNearFieldTagType2Private@2@XZ @ 434 NONAME ; class QtMobility::QNearFieldTagType2Private const * QtMobility::QNearFieldTagType2::d_func(void) const
+ ?tr@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0H@Z @ 435 NONAME ; class QString QtMobility::QNearFieldTagType3::tr(char const *, char const *, int)
+ ??0QLlcpSocket@QtMobility@@AAE@PAVQLlcpSocketPrivate@1@PAVQObject@@@Z @ 436 NONAME ; QtMobility::QLlcpSocket::QLlcpSocket(class QtMobility::QLlcpSocketPrivate *, class QObject *)
+ ?serviceMemorySize@QNearFieldTagType3@QtMobility@@QAEHG@Z @ 437 NONAME ; int QtMobility::QNearFieldTagType3::serviceMemorySize(unsigned short)
+ ?rssi@QBluetoothDeviceInfo@QtMobility@@QBEFXZ @ 438 NONAME ; short QtMobility::QBluetoothDeviceInfo::rssi(void) const
+ ?tr@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0@Z @ 439 NONAME ; class QString QtMobility::QNearFieldTagType1::tr(char const *, char const *)
+ ?canceled@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXXZ @ 440 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::canceled(void)
+ ??0QDeclarativeNdefRecord@QtMobility@@QAE@ABVQNdefRecord@1@PAVQObject@@@Z @ 441 NONAME ; QtMobility::QDeclarativeNdefRecord::QDeclarativeNdefRecord(class QtMobility::QNdefRecord const &, class QObject *)
+ ?canReadLine@QBluetoothSocket@QtMobility@@UBE_NXZ @ 442 NONAME ; bool QtMobility::QBluetoothSocket::canReadLine(void) const
+ ?bind@QLlcpSocket@QtMobility@@QAE_NE@Z @ 443 NONAME ; bool QtMobility::QLlcpSocket::bind(unsigned char)
+ ??_EQL2capServer@QtMobility@@UAE@I@Z @ 444 NONAME ; QtMobility::QL2capServer::~QL2capServer(unsigned int)
+ ?error@QBluetoothServiceDiscoveryAgent@QtMobility@@QBE?AW4Error@12@XZ @ 445 NONAME ; enum QtMobility::QBluetoothServiceDiscoveryAgent::Error QtMobility::QBluetoothServiceDiscoveryAgent::error(void) const
+ ??_EQLlcpServer@QtMobility@@UAE@I@Z @ 446 NONAME ; QtMobility::QLlcpServer::~QLlcpServer(unsigned int)
+ ??4QNdefRecord@QtMobility@@QAEAAV01@ABV01@@Z @ 447 NONAME ; class QtMobility::QNdefRecord & QtMobility::QNdefRecord::operator=(class QtMobility::QNdefRecord const &)
+ ?metaObject@QL2capServer@QtMobility@@UBEPBUQMetaObject@@XZ @ 448 NONAME ; struct QMetaObject const * QtMobility::QL2capServer::metaObject(void) const
+ ?toUInt32@QBluetoothUuid@QtMobility@@QBEIPA_N@Z @ 449 NONAME ; unsigned int QtMobility::QBluetoothUuid::toUInt32(bool *) const
+ ??0QBluetoothDeviceInfo@QtMobility@@QAE@ABVQBluetoothAddress@1@ABVQString@@I@Z @ 450 NONAME ; QtMobility::QBluetoothDeviceInfo::QBluetoothDeviceInfo(class QtMobility::QBluetoothAddress const &, class QString const &, unsigned int)
+ ?connectToService@QBluetoothSocket@QtMobility@@QAEXABVQBluetoothServiceInfo@2@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 451 NONAME ; void QtMobility::QBluetoothSocket::connectToService(class QtMobility::QBluetoothServiceInfo const &, class QFlags<enum QIODevice::OpenModeFlag>)
+ ?timerEvent@QNearFieldTagType2@QtMobility@@UAEXPAVQTimerEvent@@@Z @ 452 NONAME ; void QtMobility::QNearFieldTagType2::timerEvent(class QTimerEvent *)
+ ?tr@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0@Z @ 453 NONAME ; class QString QtMobility::QBluetoothTransferManager::tr(char const *, char const *)
+ ?trUtf8@QBluetoothTransferManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 454 NONAME ; class QString QtMobility::QBluetoothTransferManager::trUtf8(char const *, char const *, int)
+ ?setSocketState@QBluetoothSocket@QtMobility@@IAEXW4SocketState@12@@Z @ 455 NONAME ; void QtMobility::QBluetoothSocket::setSocketState(enum QtMobility::QBluetoothSocket::SocketState)
+ ?getName@QBluetoothHostInfo@QtMobility@@QBE?AVQString@@XZ @ 456 NONAME ; class QString QtMobility::QBluetoothHostInfo::getName(void) const
+ ?version@QNearFieldTagType4@QtMobility@@QAEEXZ @ 457 NONAME ; unsigned char QtMobility::QNearFieldTagType4::version(void)
+ ?requestCompleted@QNearFieldTarget@QtMobility@@IAEXABVRequestId@12@@Z @ 458 NONAME ; void QtMobility::QNearFieldTarget::requestCompleted(class QtMobility::QNearFieldTarget::RequestId const &)
+ ?trUtf8@QLlcpServer@QtMobility@@SA?AVQString@@PBD0@Z @ 459 NONAME ; class QString QtMobility::QLlcpServer::trUtf8(char const *, char const *)
+ ?setTypeNameFormat@QNdefRecord@QtMobility@@QAEXW4TypeNameFormat@12@@Z @ 460 NONAME ; void QtMobility::QNdefRecord::setTypeNameFormat(enum QtMobility::QNdefRecord::TypeNameFormat)
+ ?d_func@QNearFieldTagType1@QtMobility@@AAEPAVQNearFieldTagType1Private@2@XZ @ 461 NONAME ; class QtMobility::QNearFieldTagType1Private * QtMobility::QNearFieldTagType1::d_func(void)
+ ?name@QBluetoothDeviceInfo@QtMobility@@QBE?AVQString@@XZ @ 462 NONAME ; class QString QtMobility::QBluetoothDeviceInfo::name(void) const
+ ?serverChannel@QBluetoothServiceInfo@QtMobility@@QBEHXZ @ 463 NONAME ; int QtMobility::QBluetoothServiceInfo::serverChannel(void) const
+ ?tr@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0H@Z @ 464 NONAME ; class QString QtMobility::QLlcpSocket::tr(char const *, char const *, int)
+ ??0QBluetoothUuid@QtMobility@@QAE@G@Z @ 465 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(unsigned short)
+ ?waitForBytesWritten@QLlcpSocket@QtMobility@@UAE_NH@Z @ 466 NONAME ; bool QtMobility::QLlcpSocket::waitForBytesWritten(int)
+ ??1QBluetoothTransferRequest@QtMobility@@QAE@XZ @ 467 NONAME ; QtMobility::QBluetoothTransferRequest::~QBluetoothTransferRequest(void)
+ ?hasPendingConnections@QRfcommServer@QtMobility@@QBE_NXZ @ 468 NONAME ; bool QtMobility::QRfcommServer::hasPendingConnections(void) const
+ ?writeDatagram@QLlcpSocket@QtMobility@@QAE_JPBD_J@Z @ 469 NONAME ; long long QtMobility::QLlcpSocket::writeDatagram(char const *, long long)
+ ?encoding@QNdefNfcTextRecord@QtMobility@@QBE?AW4Encoding@12@XZ @ 470 NONAME ; enum QtMobility::QNdefNfcTextRecord::Encoding QtMobility::QNdefNfcTextRecord::encoding(void) const
+ ?getStaticMetaObject@QNearFieldManager@QtMobility@@SAABUQMetaObject@@XZ @ 471 NONAME ; struct QMetaObject const & QtMobility::QNearFieldManager::getStaticMetaObject(void)
+ ??0QNdefRecord@QtMobility@@IAE@W4TypeNameFormat@01@ABVQByteArray@@@Z @ 472 NONAME ; QtMobility::QNdefRecord::QNdefRecord(enum QtMobility::QNdefRecord::TypeNameFormat, class QByteArray const &)
+ ?hasPendingConnections@QL2capServer@QtMobility@@QBE_NXZ @ 473 NONAME ; bool QtMobility::QL2capServer::hasPendingConnections(void) const
+ ??6QtMobility@@YA?AVQDebug@@V1@ABVQBluetoothServiceInfo@0@@Z @ 474 NONAME ; class QDebug QtMobility::operator<<(class QDebug, class QtMobility::QBluetoothServiceInfo const &)
+ ?nextPendingConnection@QL2capServer@QtMobility@@QAEPAVQBluetoothSocket@2@XZ @ 475 NONAME ; class QtMobility::QBluetoothSocket * QtMobility::QL2capServer::nextPendingConnection(void)
+ ?tr@QLlcpSocket@QtMobility@@SA?AVQString@@PBD0@Z @ 476 NONAME ; class QString QtMobility::QLlcpSocket::tr(char const *, char const *)
+ ?finished@QBluetoothTransferReply@QtMobility@@IAEXPAV12@@Z @ 477 NONAME ; void QtMobility::QBluetoothTransferReply::finished(class QtMobility::QBluetoothTransferReply *)
+ ?powerOn@QBluetoothLocalDevice@QtMobility@@QAEXXZ @ 478 NONAME ; void QtMobility::QBluetoothLocalDevice::powerOn(void)
+ ??8QBluetoothUuid@QtMobility@@QBE_NABV01@@Z @ 479 NONAME ; bool QtMobility::QBluetoothUuid::operator==(class QtMobility::QBluetoothUuid const &) const
+ ??8QBluetoothAddress@QtMobility@@QBE_NABV01@@Z @ 480 NONAME ; bool QtMobility::QBluetoothAddress::operator==(class QtMobility::QBluetoothAddress const &) const
+ ?qt_metacast@QBluetoothDeviceDiscoveryAgent@QtMobility@@UAEPAXPBD@Z @ 481 NONAME ; void * QtMobility::QBluetoothDeviceDiscoveryAgent::qt_metacast(char const *)
+ ?removeAttribute@QBluetoothServiceInfo@QtMobility@@QAEXG@Z @ 482 NONAME ; void QtMobility::QBluetoothServiceInfo::removeAttribute(unsigned short)
+ ?writeByte@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@EEW4WriteMode@12@@Z @ 483 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::writeByte(unsigned char, unsigned char, enum QtMobility::QNearFieldTagType1::WriteMode)
+ ??0RequestId@QNearFieldTarget@QtMobility@@QAE@PAVRequestIdPrivate@12@@Z @ 484 NONAME ; QtMobility::QNearFieldTarget::RequestId::RequestId(class QtMobility::QNearFieldTarget::RequestIdPrivate *)
+ ?qt_metacast@QBluetoothTransferManager@QtMobility@@UAEPAXPBD@Z @ 485 NONAME ; void * QtMobility::QBluetoothTransferManager::qt_metacast(char const *)
+ ?trUtf8@QRfcommServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 486 NONAME ; class QString QtMobility::QRfcommServer::trUtf8(char const *, char const *, int)
+ ?clear@QBluetoothServiceDiscoveryAgent@QtMobility@@QAEXXZ @ 487 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::clear(void)
+ ??0QBluetoothLocalDevice@QtMobility@@QAE@ABVQBluetoothAddress@1@PAVQObject@@@Z @ 488 NONAME ; QtMobility::QBluetoothLocalDevice::QBluetoothLocalDevice(class QtMobility::QBluetoothAddress const &, class QObject *)
+ ?orderMatch@QNdefFilter@QtMobility@@QBE_NXZ @ 489 NONAME ; bool QtMobility::QNdefFilter::orderMatch(void) const
+ ?url@QNearFieldTarget@QtMobility@@UBE?AVQUrl@@XZ @ 490 NONAME ; class QUrl QtMobility::QNearFieldTarget::url(void) const
+ ??0QNdefRecord@QtMobility@@QAE@XZ @ 491 NONAME ; QtMobility::QNdefRecord::QNdefRecord(void)
+ ?serviceProvider@QBluetoothServiceInfo@QtMobility@@QBE?AVQString@@XZ @ 492 NONAME ; class QString QtMobility::QBluetoothServiceInfo::serviceProvider(void) const
+ ??6QtMobility@@YA?AVQDebug@@V1@W4SocketError@QBluetoothSocket@0@@Z @ 493 NONAME ; class QDebug QtMobility::operator<<(class QDebug, enum QtMobility::QBluetoothSocket::SocketError)
+ ??0QBluetoothUuid@QtMobility@@QAE@ABVQString@@@Z @ 494 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(class QString const &)
+ ??0QNdefMessage@QtMobility@@QAE@XZ @ 495 NONAME ; QtMobility::QNdefMessage::QNdefMessage(void)
+ ?d_func@QBluetoothServiceDiscoveryAgent@QtMobility@@ABEPBVQBluetoothServiceDiscoveryAgentPrivate@2@XZ @ 496 NONAME ; class QtMobility::QBluetoothServiceDiscoveryAgentPrivate const * QtMobility::QBluetoothServiceDiscoveryAgent::d_func(void) const
+ ?setName@QBluetoothHostInfo@QtMobility@@QAEXABVQString@@@Z @ 497 NONAME ; void QtMobility::QBluetoothHostInfo::setName(class QString const &)
+ ?getStaticMetaObject@QRfcommServer@QtMobility@@SAABUQMetaObject@@XZ @ 498 NONAME ; struct QMetaObject const & QtMobility::QRfcommServer::getStaticMetaObject(void)
+ ?isComplete@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 499 NONAME ; bool QtMobility::QBluetoothServiceInfo::isComplete(void) const
+ ?error@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AW4Error@12@XZ @ 500 NONAME ; enum QtMobility::QBluetoothDeviceDiscoveryAgent::Error QtMobility::QBluetoothDeviceDiscoveryAgent::error(void) const
+ ?hostModeStateChanged@QBluetoothLocalDevice@QtMobility@@IAEXW4HostMode@12@@Z @ 501 NONAME ; void QtMobility::QBluetoothLocalDevice::hostModeStateChanged(enum QtMobility::QBluetoothLocalDevice::HostMode)
+ ?registerNdefMessageHandler@QNearFieldManager@QtMobility@@QAEHPAVQObject@@PBD@Z @ 502 NONAME ; int QtMobility::QNearFieldManager::registerNdefMessageHandler(class QObject *, char const *)
+ ?requestResponse@QNearFieldTarget@QtMobility@@QAE?AVQVariant@@ABVRequestId@12@@Z @ 503 NONAME ; class QVariant QtMobility::QNearFieldTarget::requestResponse(class QtMobility::QNearFieldTarget::RequestId const &)
+ ?d_func@QBluetoothDeviceInfo@QtMobility@@AAEPAVQBluetoothDeviceInfoPrivate@2@XZ @ 504 NONAME ; class QtMobility::QBluetoothDeviceInfoPrivate * QtMobility::QBluetoothDeviceInfo::d_func(void)
+ ?serverError@QLlcpServer@QtMobility@@QBE?AW4SocketError@QLlcpSocket@2@XZ @ 505 NONAME ; enum QtMobility::QLlcpSocket::SocketError QtMobility::QLlcpServer::serverError(void) const
+ ?pairingDisplayPinCode@QBluetoothLocalDevice@QtMobility@@IAEXABVQBluetoothAddress@2@VQString@@@Z @ 506 NONAME ; void QtMobility::QBluetoothLocalDevice::pairingDisplayPinCode(class QtMobility::QBluetoothAddress const &, class QString)
+ ??0QBluetoothTransferReply@QtMobility@@IAE@PAVQObject@@@Z @ 507 NONAME ; QtMobility::QBluetoothTransferReply::QBluetoothTransferReply(class QObject *)
+ ?qt_metacall@QBluetoothTransferManager@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 508 NONAME ; int QtMobility::QBluetoothTransferManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?majorDeviceClass@QBluetoothDeviceInfo@QtMobility@@QBE?AW4MajorDeviceClass@12@XZ @ 509 NONAME ; enum QtMobility::QBluetoothDeviceInfo::MajorDeviceClass QtMobility::QBluetoothDeviceInfo::majorDeviceClass(void) const
+ ?trUtf8@QBluetoothDeviceDiscoveryAgent@QtMobility@@SA?AVQString@@PBD0@Z @ 510 NONAME ; class QString QtMobility::QBluetoothDeviceDiscoveryAgent::trUtf8(char const *, char const *)
+ ?contains@QBluetoothServiceInfo@QtMobility@@QBE_NG@Z @ 511 NONAME ; bool QtMobility::QBluetoothServiceInfo::contains(unsigned short) const
+ ?securityFlags@QL2capServer@QtMobility@@QBE?AV?$QFlags@W4Security@QBluetooth@QtMobility@@@@XZ @ 512 NONAME ; class QFlags<enum QtMobility::QBluetooth::Security> QtMobility::QL2capServer::securityFlags(void) const
+ ??4QBluetoothServiceInfo@QtMobility@@QAEAAV01@ABV01@@Z @ 513 NONAME ; class QtMobility::QBluetoothServiceInfo & QtMobility::QBluetoothServiceInfo::operator=(class QtMobility::QBluetoothServiceInfo const &)
+ ?isCached@QBluetoothDeviceInfo@QtMobility@@QBE_NXZ @ 514 NONAME ; bool QtMobility::QBluetoothDeviceInfo::isCached(void) const
+ ?metaObject@QBluetoothSocket@QtMobility@@UBEPBUQMetaObject@@XZ @ 515 NONAME ; struct QMetaObject const * QtMobility::QBluetoothSocket::metaObject(void) const
+ ?isListening@QL2capServer@QtMobility@@QBE_NXZ @ 516 NONAME ; bool QtMobility::QL2capServer::isListening(void) const
+ ?qt_metacall@QNearFieldManager@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 517 NONAME ; int QtMobility::QNearFieldManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?hasNdefMessage@QNearFieldTagType2@QtMobility@@UAE_NXZ @ 518 NONAME ; bool QtMobility::QNearFieldTagType2::hasNdefMessage(void)
+ ?staticMetaObject@QNearFieldTagType1@QtMobility@@2UQMetaObject@@B @ 519 NONAME ; struct QMetaObject const QtMobility::QNearFieldTagType1::staticMetaObject
+ ?tr@QL2capServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 520 NONAME ; class QString QtMobility::QL2capServer::tr(char const *, char const *, int)
+ ?handleResponse@QNearFieldTagType1@QtMobility@@MAE_NABVRequestId@QNearFieldTarget@2@ABVQByteArray@@@Z @ 521 NONAME ; bool QtMobility::QNearFieldTagType1::handleResponse(class QtMobility::QNearFieldTarget::RequestId const &, class QByteArray const &)
+ ?address@QBluetoothDeviceInfo@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 522 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothDeviceInfo::address(void) const
+ ?version@QNearFieldTagType2@QtMobility@@QAEEXZ @ 523 NONAME ; unsigned char QtMobility::QNearFieldTagType2::version(void)
+ ?tr@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0@Z @ 524 NONAME ; class QString QtMobility::QNearFieldTagType3::tr(char const *, char const *)
+ ?hasNdefMessage@QNearFieldTarget@QtMobility@@UAE_NXZ @ 525 NONAME ; bool QtMobility::QNearFieldTarget::hasNdefMessage(void)
+ ?waitForReadyRead@QLlcpSocket@QtMobility@@UAE_NH@Z @ 526 NONAME ; bool QtMobility::QLlcpSocket::waitForReadyRead(int)
+ ?connectToService@QBluetoothSocket@QtMobility@@QAEXABVQBluetoothAddress@2@GV?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 527 NONAME ; void QtMobility::QBluetoothSocket::connectToService(class QtMobility::QBluetoothAddress const &, unsigned short, class QFlags<enum QIODevice::OpenModeFlag>)
+ ?getStaticMetaObject@QLlcpSocket@QtMobility@@SAABUQMetaObject@@XZ @ 528 NONAME ; struct QMetaObject const & QtMobility::QLlcpSocket::getStaticMetaObject(void)
+ ?state@QLlcpSocket@QtMobility@@QBE?AW4SocketState@12@XZ @ 529 NONAME ; enum QtMobility::QLlcpSocket::SocketState QtMobility::QLlcpSocket::state(void) const
+ ??_EQBluetoothSocket@QtMobility@@UAE@I@Z @ 530 NONAME ; QtMobility::QBluetoothSocket::~QBluetoothSocket(unsigned int)
+ ?metaObject@QBluetoothLocalDevice@QtMobility@@UBEPBUQMetaObject@@XZ @ 531 NONAME ; struct QMetaObject const * QtMobility::QBluetoothLocalDevice::metaObject(void) const
+ ?trUtf8@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0H@Z @ 532 NONAME ; class QString QtMobility::QNearFieldTagType3::trUtf8(char const *, char const *, int)
+ ?stateChanged@QLlcpSocket@QtMobility@@IAEXW4SocketState@12@@Z @ 533 NONAME ; void QtMobility::QLlcpSocket::stateChanged(enum QtMobility::QLlcpSocket::SocketState)
+ ?tr@QBluetoothTransferReply@QtMobility@@SA?AVQString@@PBD0H@Z @ 534 NONAME ; class QString QtMobility::QBluetoothTransferReply::tr(char const *, char const *, int)
+ ?qt_metacast@QLlcpServer@QtMobility@@UAEPAXPBD@Z @ 535 NONAME ; void * QtMobility::QLlcpServer::qt_metacast(char const *)
+ ?readIdentification@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@XZ @ 536 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readIdentification(void)
+ ??_EQNdefRecord@QtMobility@@QAE@I@Z @ 537 NONAME ; QtMobility::QNdefRecord::~QNdefRecord(unsigned int)
+ ?startTargetDetection@QNearFieldManager@QtMobility@@QAE_NABV?$QList@W4Type@QNearFieldTarget@QtMobility@@@@@Z @ 538 NONAME ; bool QtMobility::QNearFieldManager::startTargetDetection(class QList<enum QtMobility::QNearFieldTarget::Type> const &)
+ ??_EQNearFieldTarget@QtMobility@@UAE@I@Z @ 539 NONAME ; QtMobility::QNearFieldTarget::~QNearFieldTarget(unsigned int)
+ ?waitForDisconnected@QLlcpSocket@QtMobility@@UAE_NH@Z @ 540 NONAME ; bool QtMobility::QLlcpSocket::waitForDisconnected(int)
+ ?d_func@QLlcpSocket@QtMobility@@ABEPBVQLlcpSocketPrivate@2@XZ @ 541 NONAME ; class QtMobility::QLlcpSocketPrivate const * QtMobility::QLlcpSocket::d_func(void) const
+ ?readAll@QNearFieldTagType1@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@XZ @ 542 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType1::readAll(void)
+ ?isRegistered@QBluetoothServiceInfo@QtMobility@@QBE_NXZ @ 543 NONAME ; bool QtMobility::QBluetoothServiceInfo::isRegistered(void) const
+ ?isActive@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE_NXZ @ 544 NONAME ; bool QtMobility::QBluetoothDeviceDiscoveryAgent::isActive(void) const
+ ?metaObject@QNearFieldManager@QtMobility@@UBEPBUQMetaObject@@XZ @ 545 NONAME ; struct QMetaObject const * QtMobility::QNearFieldManager::metaObject(void) const
+ ?version@QNearFieldTagType1@QtMobility@@QAEEXZ @ 546 NONAME ; unsigned char QtMobility::QNearFieldTagType1::version(void)
+ ?deviceDiscovered@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXABVQBluetoothDeviceInfo@2@@Z @ 547 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::deviceDiscovered(class QtMobility::QBluetoothDeviceInfo const &)
+ ?d_func@QLlcpServer@QtMobility@@ABEPBVQLlcpServerPrivate@2@XZ @ 548 NONAME ; class QtMobility::QLlcpServerPrivate const * QtMobility::QLlcpServer::d_func(void) const
+ ?staticMetaObject@QL2capServer@QtMobility@@2UQMetaObject@@B @ 549 NONAME ; struct QMetaObject const QtMobility::QL2capServer::staticMetaObject
+ ?trUtf8@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0@Z @ 550 NONAME ; class QString QtMobility::QNearFieldTarget::trUtf8(char const *, char const *)
+ ?type@QNdefRecord@QtMobility@@QBE?AVQByteArray@@XZ @ 551 NONAME ; class QByteArray QtMobility::QNdefRecord::type(void) const
+ ?pendingDatagramSize@QLlcpSocket@QtMobility@@QBE_JXZ @ 552 NONAME ; long long QtMobility::QLlcpSocket::pendingDatagramSize(void) const
+ ?trUtf8@QNearFieldTagType1@QtMobility@@SA?AVQString@@PBD0@Z @ 553 NONAME ; class QString QtMobility::QNearFieldTagType1::trUtf8(char const *, char const *)
+ ?connectToService@QBluetoothSocket@QtMobility@@QAEXABVQBluetoothAddress@2@ABVQBluetoothUuid@2@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 554 NONAME ; void QtMobility::QBluetoothSocket::connectToService(class QtMobility::QBluetoothAddress const &, class QtMobility::QBluetoothUuid const &, class QFlags<enum QIODevice::OpenModeFlag>)
+ ?protocolServiceMultiplexer@QBluetoothServiceInfo@QtMobility@@QBEHXZ @ 555 NONAME ; int QtMobility::QBluetoothServiceInfo::protocolServiceMultiplexer(void) const
+ ?qt_metacast@QBluetoothServiceDiscoveryAgent@QtMobility@@UAEPAXPBD@Z @ 556 NONAME ; void * QtMobility::QBluetoothServiceDiscoveryAgent::qt_metacast(char const *)
+ ?setAttribute@QBluetoothServiceInfo@QtMobility@@QAEXGABVAlternative@12@@Z @ 557 NONAME ; void QtMobility::QBluetoothServiceInfo::setAttribute(unsigned short, class QtMobility::QBluetoothServiceInfo::Alternative const &)
+ ?operation@QBluetoothTransferReply@QtMobility@@QBE?AW4Operation@QBluetoothTransferManager@2@XZ @ 558 NONAME ; enum QtMobility::QBluetoothTransferManager::Operation QtMobility::QBluetoothTransferReply::operation(void) const
+ ?finished@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXXZ @ 559 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::finished(void)
+ ?d_func@QBluetoothLocalDevice@QtMobility@@AAEPAVQBluetoothLocalDevicePrivate@2@XZ @ 560 NONAME ; class QtMobility::QBluetoothLocalDevicePrivate * QtMobility::QBluetoothLocalDevice::d_func(void)
+ ?staticMetaObject@QBluetoothDeviceDiscoveryAgent@QtMobility@@2UQMetaObject@@B @ 561 NONAME ; struct QMetaObject const QtMobility::QBluetoothDeviceDiscoveryAgent::staticMetaObject
+ ?trUtf8@QLlcpServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 562 NONAME ; class QString QtMobility::QLlcpServer::trUtf8(char const *, char const *, int)
+ ?clear@QBluetoothAddress@QtMobility@@QAEXXZ @ 563 NONAME ; void QtMobility::QBluetoothAddress::clear(void)
+ ??0QNdefNfcUriRecord@QtMobility@@QAE@XZ @ 564 NONAME ; QtMobility::QNdefNfcUriRecord::QNdefNfcUriRecord(void)
+ ?manufacturerSpecificData@QBluetoothDeviceInfo@QtMobility@@QBE?AVQByteArray@@PA_N@Z @ 565 NONAME ; class QByteArray QtMobility::QBluetoothDeviceInfo::manufacturerSpecificData(bool *) const
+ ?metaObject@QDeclarativeNdefRecord@QtMobility@@UBEPBUQMetaObject@@XZ @ 566 NONAME ; struct QMetaObject const * QtMobility::QDeclarativeNdefRecord::metaObject(void) const
+ ??_EQBluetoothLocalDevice@QtMobility@@UAE@I@Z @ 567 NONAME ; QtMobility::QBluetoothLocalDevice::~QBluetoothLocalDevice(unsigned int)
+ ?isAvailable@QNearFieldManager@QtMobility@@QBE_NXZ @ 568 NONAME ; bool QtMobility::QNearFieldManager::isAvailable(void) const
+ ?d_func@QNearFieldTagType1@QtMobility@@ABEPBVQNearFieldTagType1Private@2@XZ @ 569 NONAME ; class QtMobility::QNearFieldTagType1Private const * QtMobility::QNearFieldTagType1::d_func(void) const
+ ?nextPendingConnection@QRfcommServer@QtMobility@@QAEPAVQBluetoothSocket@2@XZ @ 570 NONAME ; class QtMobility::QBluetoothSocket * QtMobility::QRfcommServer::nextPendingConnection(void)
+ ?d_func@QDeclarativeNdefRecord@QtMobility@@ABEPBVQDeclarativeNdefRecordPrivate@2@XZ @ 571 NONAME ; class QtMobility::QDeclarativeNdefRecordPrivate const * QtMobility::QDeclarativeNdefRecord::d_func(void) const
+ ??1QBluetoothDeviceDiscoveryAgent@QtMobility@@UAE@XZ @ 572 NONAME ; QtMobility::QBluetoothDeviceDiscoveryAgent::~QBluetoothDeviceDiscoveryAgent(void)
+ ?writeNdefMessages@QNearFieldTagType2@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@ABV?$QList@VQNdefMessage@QtMobility@@@@@Z @ 573 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType2::writeNdefMessages(class QList<class QtMobility::QNdefMessage> const &)
+ ??0QLlcpSocket@QtMobility@@QAE@PAVQObject@@@Z @ 574 NONAME ; QtMobility::QLlcpSocket::QLlcpSocket(class QObject *)
+ ?locale@QNdefNfcTextRecord@QtMobility@@QBE?AVQString@@XZ @ 575 NONAME ; class QString QtMobility::QNdefNfcTextRecord::locale(void) const
+ ?setServiceAvailability@QBluetoothServiceInfo@QtMobility@@QAEXE@Z @ 576 NONAME ; void QtMobility::QBluetoothServiceInfo::setServiceAvailability(unsigned char)
+ ?isEmpty@QNdefRecord@QtMobility@@QBE_NXZ @ 577 NONAME ; bool QtMobility::QNdefRecord::isEmpty(void) const
+ ?d_func@QBluetoothAddress@QtMobility@@AAEPAVQBluetoothAddressPrivate@2@XZ @ 578 NONAME ; class QtMobility::QBluetoothAddressPrivate * QtMobility::QBluetoothAddress::d_func(void)
+ ??1QBluetoothLocalDevice@QtMobility@@UAE@XZ @ 579 NONAME ; QtMobility::QBluetoothLocalDevice::~QBluetoothLocalDevice(void)
+ ?isProcessingCommand@QNearFieldTarget@QtMobility@@QBE_NXZ @ 580 NONAME ; bool QtMobility::QNearFieldTarget::isProcessingCommand(void) const
+ ?targetDetected@QNearFieldManager@QtMobility@@IAEXPAVQNearFieldTarget@2@@Z @ 581 NONAME ; void QtMobility::QNearFieldManager::targetDetected(class QtMobility::QNearFieldTarget *)
+ ??0QNdefMessage@QtMobility@@QAE@ABV01@@Z @ 582 NONAME ; QtMobility::QNdefMessage::QNdefMessage(class QtMobility::QNdefMessage const &)
+ ?downloadProgress@QBluetoothTransferReply@QtMobility@@IAEX_J0@Z @ 583 NONAME ; void QtMobility::QBluetoothTransferReply::downloadProgress(long long, long long)
+ ??4QBluetoothAddress@QtMobility@@QAEAAV01@ABV01@@Z @ 584 NONAME ; class QtMobility::QBluetoothAddress & QtMobility::QBluetoothAddress::operator=(class QtMobility::QBluetoothAddress const &)
+ ?address@QBluetoothLocalDevice@QtMobility@@QBE?AVQBluetoothAddress@2@XZ @ 585 NONAME ; class QtMobility::QBluetoothAddress QtMobility::QBluetoothLocalDevice::address(void) const
+ ??_EQLlcpSocket@QtMobility@@UAE@I@Z @ 586 NONAME ; QtMobility::QLlcpSocket::~QLlcpSocket(unsigned int)
+ ?tr@QDeclarativeNdefRecord@QtMobility@@SA?AVQString@@PBD0@Z @ 587 NONAME ; class QString QtMobility::QDeclarativeNdefRecord::tr(char const *, char const *)
+ ?sendCommands@QNearFieldTarget@QtMobility@@UAE?AVRequestId@12@ABV?$QList@VQByteArray@@@@@Z @ 588 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTarget::sendCommands(class QList<class QByteArray> const &)
+ ?setAttribute@QBluetoothTransferReply@QtMobility@@IAEXW4Attribute@QBluetoothTransferRequest@2@ABVQVariant@@@Z @ 589 NONAME ; void QtMobility::QBluetoothTransferReply::setAttribute(enum QtMobility::QBluetoothTransferRequest::Attribute, class QVariant const &)
+ ??0QNdefNfcTextRecord@QtMobility@@QAE@ABVQNdefRecord@1@@Z @ 590 NONAME ; QtMobility::QNdefNfcTextRecord::QNdefNfcTextRecord(class QtMobility::QNdefRecord const &)
+ ?qt_metacast@QNearFieldTagType3@QtMobility@@UAEPAXPBD@Z @ 591 NONAME ; void * QtMobility::QNearFieldTagType3::qt_metacast(char const *)
+ ??0QBluetoothUuid@QtMobility@@QAE@I@Z @ 592 NONAME ; QtMobility::QBluetoothUuid::QBluetoothUuid(unsigned int)
+ ?isNull@QBluetoothAddress@QtMobility@@QBE_NXZ @ 593 NONAME ; bool QtMobility::QBluetoothAddress::isNull(void) const
+ ?tr@QNearFieldManager@QtMobility@@SA?AVQString@@PBD0H@Z @ 594 NONAME ; class QString QtMobility::QNearFieldManager::tr(char const *, char const *, int)
+ ?qt_metacall@QNearFieldTagType3@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 595 NONAME ; int QtMobility::QNearFieldTagType3::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?staticMetaObject@QBluetoothTransferReply@QtMobility@@2UQMetaObject@@B @ 596 NONAME ; struct QMetaObject const QtMobility::QBluetoothTransferReply::staticMetaObject
+ ?bytesAvailable@QLlcpSocket@QtMobility@@UBE_JXZ @ 597 NONAME ; long long QtMobility::QLlcpSocket::bytesAvailable(void) const
+ ?serviceDiscovered@QBluetoothServiceDiscoveryAgent@QtMobility@@IAEXABVQBluetoothServiceInfo@2@@Z @ 598 NONAME ; void QtMobility::QBluetoothServiceDiscoveryAgent::serviceDiscovered(class QtMobility::QBluetoothServiceInfo const &)
+ ?newConnection@QL2capServer@QtMobility@@IAEXXZ @ 599 NONAME ; void QtMobility::QL2capServer::newConnection(void)
+ ??0QNearFieldTagType2@QtMobility@@QAE@PAVQObject@@@Z @ 600 NONAME ; QtMobility::QNearFieldTagType2::QNearFieldTagType2(class QObject *)
+ ?tr@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0H@Z @ 601 NONAME ; class QString QtMobility::QNearFieldTarget::tr(char const *, char const *, int)
+ ?abort@QBluetoothSocket@QtMobility@@QAEXXZ @ 602 NONAME ; void QtMobility::QBluetoothSocket::abort(void)
+ ??1QBluetoothTransferReplyPrivate@QtMobility@@QAE@XZ @ 603 NONAME ; QtMobility::QBluetoothTransferReplyPrivate::~QBluetoothTransferReplyPrivate(void)
+ ?isSequential@QLlcpSocket@QtMobility@@UBE_NXZ @ 604 NONAME ; bool QtMobility::QLlcpSocket::isSequential(void) const
+ ?protocolDescriptor@QBluetoothServiceInfo@QtMobility@@QBE?AVSequence@12@W4ProtocolUuid@QBluetoothUuid@2@@Z @ 605 NONAME ; class QtMobility::QBluetoothServiceInfo::Sequence QtMobility::QBluetoothServiceInfo::protocolDescriptor(enum QtMobility::QBluetoothUuid::ProtocolUuid) const
+ ?disconnectFromService@QBluetoothSocket@QtMobility@@QAEXXZ @ 606 NONAME ; void QtMobility::QBluetoothSocket::disconnectFromService(void)
+ ??0QNdefFilter@QtMobility@@QAE@XZ @ 607 NONAME ; QtMobility::QNdefFilter::QNdefFilter(void)
+ ?discoveryFinished@QBluetoothSocket@QtMobility@@AAEXXZ @ 608 NONAME ; void QtMobility::QBluetoothSocket::discoveryFinished(void)
+ ??_EQBluetoothDeviceInfo@QtMobility@@QAE@I@Z @ 609 NONAME ; QtMobility::QBluetoothDeviceInfo::~QBluetoothDeviceInfo(unsigned int)
+ ?socketDescriptor@QBluetoothSocket@QtMobility@@QBEHXZ @ 610 NONAME ; int QtMobility::QBluetoothSocket::socketDescriptor(void) const
+ ?targetLost@QNearFieldManager@QtMobility@@IAEXPAVQNearFieldTarget@2@@Z @ 611 NONAME ; void QtMobility::QNearFieldManager::targetLost(class QtMobility::QNearFieldTarget *)
+ ?qt_metacall@QBluetoothSocket@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 612 NONAME ; int QtMobility::QBluetoothSocket::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QLlcpServer@QtMobility@@SA?AVQString@@PBD0H@Z @ 613 NONAME ; class QString QtMobility::QLlcpServer::tr(char const *, char const *, int)
+ ?error@QLlcpSocket@QtMobility@@IAEXW4SocketError@12@@Z @ 614 NONAME ; void QtMobility::QLlcpSocket::error(enum QtMobility::QLlcpSocket::SocketError)
+ ?socketProtocol@QBluetoothServiceInfo@QtMobility@@QBE?AW4Protocol@12@XZ @ 615 NONAME ; enum QtMobility::QBluetoothServiceInfo::Protocol QtMobility::QBluetoothServiceInfo::socketProtocol(void) const
+ ?discoveredDevices@QBluetoothDeviceDiscoveryAgent@QtMobility@@QBE?AV?$QList@VQBluetoothDeviceInfo@QtMobility@@@@XZ @ 616 NONAME ; class QList<class QtMobility::QBluetoothDeviceInfo> QtMobility::QBluetoothDeviceDiscoveryAgent::discoveredDevices(void) const
+ ?metaObject@QBluetoothTransferManager@QtMobility@@UBEPBUQMetaObject@@XZ @ 617 NONAME ; struct QMetaObject const * QtMobility::QBluetoothTransferManager::metaObject(void) const
+ ?getStaticMetaObject@QNearFieldTagType2@QtMobility@@SAABUQMetaObject@@XZ @ 618 NONAME ; struct QMetaObject const & QtMobility::QNearFieldTagType2::getStaticMetaObject(void)
+ ??_EQBluetoothServiceInfo@QtMobility@@QAE@I@Z @ 619 NONAME ; QtMobility::QBluetoothServiceInfo::~QBluetoothServiceInfo(unsigned int)
+ ?tr@QNearFieldTarget@QtMobility@@SA?AVQString@@PBD0@Z @ 620 NONAME ; class QString QtMobility::QNearFieldTarget::tr(char const *, char const *)
+ ?d_func@QRfcommServer@QtMobility@@AAEPAVQRfcommServerPrivate@2@XZ @ 621 NONAME ; class QtMobility::QRfcommServerPrivate * QtMobility::QRfcommServer::d_func(void)
+ ?writeData@QLlcpSocket@QtMobility@@MAE_JPBD_J@Z @ 622 NONAME ; long long QtMobility::QLlcpSocket::writeData(char const *, long long)
+ ?d_func@QDeclarativeNdefRecord@QtMobility@@AAEPAVQDeclarativeNdefRecordPrivate@2@XZ @ 623 NONAME ; class QtMobility::QDeclarativeNdefRecordPrivate * QtMobility::QDeclarativeNdefRecord::d_func(void)
+ ?read@QNearFieldTagType4@QtMobility@@UAE?AVRequestId@QNearFieldTarget@2@GG@Z @ 624 NONAME ; class QtMobility::QNearFieldTarget::RequestId QtMobility::QNearFieldTagType4::read(unsigned short, unsigned short)
+ ?setRssi@QBluetoothDeviceInfo@QtMobility@@QAEXF@Z @ 625 NONAME ; void QtMobility::QBluetoothDeviceInfo::setRssi(short)
+ ?error@QBluetoothSocket@QtMobility@@IAEXW4SocketError@12@@Z @ 626 NONAME ; void QtMobility::QBluetoothSocket::error(enum QtMobility::QBluetoothSocket::SocketError)
+ ?serviceUuids@QBluetoothDeviceInfo@QtMobility@@QBE?AV?$QList@VQBluetoothUuid@QtMobility@@@@PAW4DataCompleteness@12@@Z @ 627 NONAME ; class QList<class QtMobility::QBluetoothUuid> QtMobility::QBluetoothDeviceInfo::serviceUuids(enum QtMobility::QBluetoothDeviceInfo::DataCompleteness *) const
+ ?isListening@QLlcpServer@QtMobility@@QBE_NXZ @ 628 NONAME ; bool QtMobility::QLlcpServer::isListening(void) const
+ ?serviceUri@QLlcpServer@QtMobility@@QBE?AVQString@@XZ @ 629 NONAME ; class QString QtMobility::QLlcpServer::serviceUri(void) const
+ ?peerName@QBluetoothSocket@QtMobility@@QBE?AVQString@@XZ @ 630 NONAME ; class QString QtMobility::QBluetoothSocket::peerName(void) const
+ ?error@QBluetoothDeviceDiscoveryAgent@QtMobility@@IAEXW4Error@12@@Z @ 631 NONAME ; void QtMobility::QBluetoothDeviceDiscoveryAgent::error(enum QtMobility::QBluetoothDeviceDiscoveryAgent::Error)
+ ??1QL2capServer@QtMobility@@UAE@XZ @ 632 NONAME ; QtMobility::QL2capServer::~QL2capServer(void)
+ ?serviceUuidsCompleteness@QBluetoothDeviceInfo@QtMobility@@QBE?AW4DataCompleteness@12@XZ @ 633 NONAME ; enum QtMobility::QBluetoothDeviceInfo::DataCompleteness QtMobility::QBluetoothDeviceInfo::serviceUuidsCompleteness(void) const
+ ?qt_metacall@QBluetoothDeviceDiscoveryAgent@QtMobility@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 634 NONAME ; int QtMobility::QBluetoothDeviceDiscoveryAgent::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?toByteArray@QNdefMessage@QtMobility@@QBE?AVQByteArray@@XZ @ 635 NONAME ; class QByteArray QtMobility::QNdefMessage::toByteArray(void) const
+ ?staticMetaObject@QNearFieldTarget@QtMobility@@2UQMetaObject@@B @ 636 NONAME ; struct QMetaObject const QtMobility::QNearFieldTarget::staticMetaObject
+ ?trUtf8@QNearFieldTagType3@QtMobility@@SA?AVQString@@PBD0@Z @ 637 NONAME ; class QString QtMobility::QNearFieldTagType3::trUtf8(char const *, char const *)
+ ??9QBluetoothTransferRequest@QtMobility@@QBE_NABV01@@Z @ 638 NONAME ; bool QtMobility::QBluetoothTransferRequest::operator!=(class QtMobility::QBluetoothTransferRequest const &) const
+ ??1QLlcpSocket@QtMobility@@UAE@XZ @ 639 NONAME ; QtMobility::QLlcpSocket::~QLlcpSocket(void)
diff --git a/src/s60installs/deviceconfiguration/mobilityconfig.prf b/src/s60installs/deviceconfiguration/mobilityconfig.prf
new file mode 100644
index 0000000000..91a50cf962
--- /dev/null
+++ b/src/s60installs/deviceconfiguration/mobilityconfig.prf
@@ -0,0 +1,5 @@
+MOBILITY_CONFIG=bearer location contacts systeminfo publishsubscribe versit messaging sensors serviceframework multimedia gallery organizer feedback connectivity
+MOBILITY_VERSION = 1.2.0
+MOBILITY_MAJOR_VERSION = 1
+MOBILITY_MINOR_VERSION = 2
+MOBILITY_PATCH_VERSION = 0
diff --git a/src/s60installs/eabi/QtConnectivityu.def b/src/s60installs/eabi/QtConnectivityu.def
index 060ae6650d..8a3b23652c 100644
--- a/src/s60installs/eabi/QtConnectivityu.def
+++ b/src/s60installs/eabi/QtConnectivityu.def
@@ -327,264 +327,265 @@ EXPORTS
_ZN10QtMobility21QBluetoothServiceInfoD1Ev @ 326 NONAME
_ZN10QtMobility21QBluetoothServiceInfoD2Ev @ 327 NONAME
_ZN10QtMobility21QBluetoothServiceInfoaSERKS0_ @ 328 NONAME
- _ZN10QtMobility23QBluetoothTransferReply10setManagerEPNS_25QBluetoothTransferManagerE @ 329 NONAME
- _ZN10QtMobility23QBluetoothTransferReply11qt_metacallEN11QMetaObject4CallEiPPv @ 330 NONAME
- _ZN10QtMobility23QBluetoothTransferReply11qt_metacastEPKc @ 331 NONAME
- _ZN10QtMobility23QBluetoothTransferReply12setAttributeENS_25QBluetoothTransferRequest9AttributeERK8QVariant @ 332 NONAME
- _ZN10QtMobility23QBluetoothTransferReply12setOperationENS_25QBluetoothTransferManager9OperationE @ 333 NONAME
- _ZN10QtMobility23QBluetoothTransferReply14uploadProgressExx @ 334 NONAME
- _ZN10QtMobility23QBluetoothTransferReply16downloadProgressExx @ 335 NONAME
- _ZN10QtMobility23QBluetoothTransferReply16staticMetaObjectE @ 336 NONAME DATA 16
- _ZN10QtMobility23QBluetoothTransferReply19getStaticMetaObjectEv @ 337 NONAME
- _ZN10QtMobility23QBluetoothTransferReply5abortEv @ 338 NONAME
- _ZN10QtMobility23QBluetoothTransferReply8finishedEPS0_ @ 339 NONAME
- _ZN10QtMobility23QBluetoothTransferReplyC2EP7QObject @ 340 NONAME
- _ZN10QtMobility23QBluetoothTransferReplyD0Ev @ 341 NONAME
- _ZN10QtMobility23QBluetoothTransferReplyD1Ev @ 342 NONAME
- _ZN10QtMobility23QBluetoothTransferReplyD2Ev @ 343 NONAME
- _ZN10QtMobility25QBluetoothTransferManager11qt_metacallEN11QMetaObject4CallEiPPv @ 344 NONAME
- _ZN10QtMobility25QBluetoothTransferManager11qt_metacastEPKc @ 345 NONAME
- _ZN10QtMobility25QBluetoothTransferManager16staticMetaObjectE @ 346 NONAME DATA 16
- _ZN10QtMobility25QBluetoothTransferManager19getStaticMetaObjectEv @ 347 NONAME
- _ZN10QtMobility25QBluetoothTransferManager3putERKNS_25QBluetoothTransferRequestEP9QIODevice @ 348 NONAME
- _ZN10QtMobility25QBluetoothTransferManager8finishedEPNS_23QBluetoothTransferReplyE @ 349 NONAME
- _ZN10QtMobility25QBluetoothTransferManagerC1EP7QObject @ 350 NONAME
- _ZN10QtMobility25QBluetoothTransferManagerC2EP7QObject @ 351 NONAME
- _ZN10QtMobility25QBluetoothTransferManagerD0Ev @ 352 NONAME
- _ZN10QtMobility25QBluetoothTransferManagerD1Ev @ 353 NONAME
- _ZN10QtMobility25QBluetoothTransferManagerD2Ev @ 354 NONAME
- _ZN10QtMobility25QBluetoothTransferRequest12setAttributeENS0_9AttributeERK8QVariant @ 355 NONAME
- _ZN10QtMobility25QBluetoothTransferRequestC1ERKNS_17QBluetoothAddressE @ 356 NONAME
- _ZN10QtMobility25QBluetoothTransferRequestC1ERKS0_ @ 357 NONAME
- _ZN10QtMobility25QBluetoothTransferRequestC2ERKNS_17QBluetoothAddressE @ 358 NONAME
- _ZN10QtMobility25QBluetoothTransferRequestC2ERKS0_ @ 359 NONAME
- _ZN10QtMobility25QBluetoothTransferRequestD1Ev @ 360 NONAME
- _ZN10QtMobility25QBluetoothTransferRequestD2Ev @ 361 NONAME
- _ZN10QtMobility25QBluetoothTransferRequestaSERKS0_ @ 362 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent11qt_metacallEN11QMetaObject4CallEiPPv @ 363 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent11qt_metacastEPKc @ 364 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent14setInquiryTypeENS0_11InquiryTypeE @ 365 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent16deviceDiscoveredERKNS_20QBluetoothDeviceInfoE @ 366 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent16staticMetaObjectE @ 367 NONAME DATA 16
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent19getStaticMetaObjectEv @ 368 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent4stopEv @ 369 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent5errorENS0_5ErrorE @ 370 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent5startEv @ 371 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent8canceledEv @ 372 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent8finishedEv @ 373 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentC1EP7QObject @ 374 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentC2EP7QObject @ 375 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentD0Ev @ 376 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentD1Ev @ 377 NONAME
- _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentD2Ev @ 378 NONAME
- _ZN10QtMobility30QBluetoothTransferReplyPrivateC1Ev @ 379 NONAME
- _ZN10QtMobility30QBluetoothTransferReplyPrivateC2Ev @ 380 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent11qt_metacallEN11QMetaObject4CallEiPPv @ 381 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent11qt_metacastEPKc @ 382 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent13setUuidFilterERK5QListINS_14QBluetoothUuidEE @ 383 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent13setUuidFilterERKNS_14QBluetoothUuidE @ 384 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent16staticMetaObjectE @ 385 NONAME DATA 16
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent17serviceDiscoveredERKNS_21QBluetoothServiceInfoE @ 386 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent19getStaticMetaObjectEv @ 387 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent4stopEv @ 388 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent5clearEv @ 389 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent5errorENS0_5ErrorE @ 390 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent5startENS0_13DiscoveryModeE @ 391 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent8finishedEv @ 392 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC1EP7QObject @ 393 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC1ERKNS_17QBluetoothAddressEP7QObject @ 394 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC2EP7QObject @ 395 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC2ERKNS_17QBluetoothAddressEP7QObject @ 396 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgentD0Ev @ 397 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgentD1Ev @ 398 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgentD2Ev @ 399 NONAME
- _ZN10QtMobilitylsE6QDebugNS_16QBluetoothSocket11SocketErrorE @ 400 NONAME
- _ZN10QtMobilitylsE6QDebugNS_16QBluetoothSocket11SocketStateE @ 401 NONAME
- _ZN10QtMobilitylsE6QDebugRKNS_21QBluetoothServiceInfoE @ 402 NONAME
- _ZNK10QtMobility11QLlcpServer10metaObjectEv @ 403 NONAME
- _ZNK10QtMobility11QLlcpServer10serverPortEv @ 404 NONAME
- _ZNK10QtMobility11QLlcpServer10serviceUriEv @ 405 NONAME
- _ZNK10QtMobility11QLlcpServer11isListeningEv @ 406 NONAME
- _ZNK10QtMobility11QLlcpServer11serverErrorEv @ 407 NONAME
- _ZNK10QtMobility11QLlcpServer21hasPendingConnectionsEv @ 408 NONAME
- _ZNK10QtMobility11QLlcpSocket10metaObjectEv @ 409 NONAME
- _ZNK10QtMobility11QLlcpSocket11canReadLineEv @ 410 NONAME
- _ZNK10QtMobility11QLlcpSocket12isSequentialEv @ 411 NONAME
- _ZNK10QtMobility11QLlcpSocket14bytesAvailableEv @ 412 NONAME
- _ZNK10QtMobility11QLlcpSocket19hasPendingDatagramsEv @ 413 NONAME
- _ZNK10QtMobility11QLlcpSocket19pendingDatagramSizeEv @ 414 NONAME
- _ZNK10QtMobility11QLlcpSocket5errorEv @ 415 NONAME
- _ZNK10QtMobility11QLlcpSocket5stateEv @ 416 NONAME
- _ZNK10QtMobility11QNdefFilter10orderMatchEv @ 417 NONAME
- _ZNK10QtMobility11QNdefFilter11recordCountEv @ 418 NONAME
- _ZNK10QtMobility11QNdefFilter8recordAtEi @ 419 NONAME
- _ZNK10QtMobility11QNdefRecord14typeNameFormatEv @ 420 NONAME
- _ZNK10QtMobility11QNdefRecord2idEv @ 421 NONAME
- _ZNK10QtMobility11QNdefRecord4typeEv @ 422 NONAME
- _ZNK10QtMobility11QNdefRecord7isEmptyEv @ 423 NONAME
- _ZNK10QtMobility11QNdefRecord7payloadEv @ 424 NONAME
- _ZNK10QtMobility11QNdefRecordeqERKS0_ @ 425 NONAME
- _ZNK10QtMobility12QL2capServer10metaObjectEv @ 426 NONAME
- _ZNK10QtMobility12QL2capServer10serverPortEv @ 427 NONAME
- _ZNK10QtMobility12QL2capServer11isListeningEv @ 428 NONAME
- _ZNK10QtMobility12QL2capServer13securityFlagsEv @ 429 NONAME
- _ZNK10QtMobility12QL2capServer13serverAddressEv @ 430 NONAME
- _ZNK10QtMobility12QL2capServer21hasPendingConnectionsEv @ 431 NONAME
- _ZNK10QtMobility12QL2capServer21maxPendingConnectionsEv @ 432 NONAME
- _ZNK10QtMobility12QNdefMessage11toByteArrayEv @ 433 NONAME
- _ZNK10QtMobility12QNdefMessageeqERKS0_ @ 434 NONAME
- _ZNK10QtMobility13QRfcommServer10metaObjectEv @ 435 NONAME
- _ZNK10QtMobility13QRfcommServer10serverPortEv @ 436 NONAME
- _ZNK10QtMobility13QRfcommServer11isListeningEv @ 437 NONAME
- _ZNK10QtMobility13QRfcommServer13securityFlagsEv @ 438 NONAME
- _ZNK10QtMobility13QRfcommServer13serverAddressEv @ 439 NONAME
- _ZNK10QtMobility13QRfcommServer21hasPendingConnectionsEv @ 440 NONAME
- _ZNK10QtMobility13QRfcommServer21maxPendingConnectionsEv @ 441 NONAME
- _ZNK10QtMobility14QBluetoothUuid11minimumSizeEv @ 442 NONAME
- _ZNK10QtMobility14QBluetoothUuid8toUInt16EPb @ 443 NONAME
- _ZNK10QtMobility14QBluetoothUuid8toUInt32EPb @ 444 NONAME
- _ZNK10QtMobility14QBluetoothUuid9toUInt128Ev @ 445 NONAME
- _ZNK10QtMobility14QBluetoothUuideqERKS0_ @ 446 NONAME
- _ZNK10QtMobility16QBluetoothSocket10metaObjectEv @ 447 NONAME
- _ZNK10QtMobility16QBluetoothSocket10socketTypeEv @ 448 NONAME
- _ZNK10QtMobility16QBluetoothSocket11canReadLineEv @ 449 NONAME
- _ZNK10QtMobility16QBluetoothSocket11errorStringEv @ 450 NONAME
- _ZNK10QtMobility16QBluetoothSocket11peerAddressEv @ 451 NONAME
- _ZNK10QtMobility16QBluetoothSocket12bytesToWriteEv @ 452 NONAME
- _ZNK10QtMobility16QBluetoothSocket12isSequentialEv @ 453 NONAME
- _ZNK10QtMobility16QBluetoothSocket12localAddressEv @ 454 NONAME
- _ZNK10QtMobility16QBluetoothSocket14bytesAvailableEv @ 455 NONAME
- _ZNK10QtMobility16QBluetoothSocket16socketDescriptorEv @ 456 NONAME
- _ZNK10QtMobility16QBluetoothSocket5errorEv @ 457 NONAME
- _ZNK10QtMobility16QBluetoothSocket5stateEv @ 458 NONAME
- _ZNK10QtMobility16QBluetoothSocket8peerNameEv @ 459 NONAME
- _ZNK10QtMobility16QBluetoothSocket8peerPortEv @ 460 NONAME
- _ZNK10QtMobility16QBluetoothSocket9localNameEv @ 461 NONAME
- _ZNK10QtMobility16QBluetoothSocket9localPortEv @ 462 NONAME
- _ZNK10QtMobility16QNearFieldTarget10metaObjectEv @ 463 NONAME
- _ZNK10QtMobility16QNearFieldTarget19isProcessingCommandEv @ 464 NONAME
- _ZNK10QtMobility16QNearFieldTarget3urlEv @ 465 NONAME
- _ZNK10QtMobility16QNearFieldTarget9RequestId7isValidEv @ 466 NONAME
- _ZNK10QtMobility16QNearFieldTarget9RequestId8refCountEv @ 467 NONAME
- _ZNK10QtMobility16QNearFieldTarget9RequestIdeqERKS1_ @ 468 NONAME
- _ZNK10QtMobility16QNearFieldTarget9RequestIdltERKS1_ @ 469 NONAME
- _ZNK10QtMobility17QBluetoothAddress6isNullEv @ 470 NONAME
- _ZNK10QtMobility17QBluetoothAddress8toStringEv @ 471 NONAME
- _ZNK10QtMobility17QBluetoothAddress8toUInt64Ev @ 472 NONAME
- _ZNK10QtMobility17QBluetoothAddresseqERKS0_ @ 473 NONAME
- _ZNK10QtMobility17QBluetoothAddressltERKS0_ @ 474 NONAME
- _ZNK10QtMobility17QNdefNfcUriRecord3uriEv @ 475 NONAME
- _ZNK10QtMobility17QNearFieldManager10metaObjectEv @ 476 NONAME
- _ZNK10QtMobility17QNearFieldManager17targetAccessModesEv @ 477 NONAME
- _ZNK10QtMobility18QNdefNfcTextRecord4textEv @ 478 NONAME
- _ZNK10QtMobility18QNdefNfcTextRecord6localeEv @ 479 NONAME
- _ZNK10QtMobility18QNdefNfcTextRecord8encodingEv @ 480 NONAME
- _ZNK10QtMobility18QNearFieldTagType110metaObjectEv @ 481 NONAME
- _ZNK10QtMobility18QNearFieldTagType210metaObjectEv @ 482 NONAME
- _ZNK10QtMobility18QNearFieldTagType310metaObjectEv @ 483 NONAME
- _ZNK10QtMobility18QNearFieldTagType410metaObjectEv @ 484 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo12serviceUuidsEPNS0_16DataCompletenessE @ 485 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo14serviceClassesEv @ 486 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo16majorDeviceClassEv @ 487 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo16minorDeviceClassEv @ 488 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo24manufacturerSpecificDataEPb @ 489 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo24serviceUuidsCompletenessEv @ 490 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo4nameEv @ 491 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo4rssiEv @ 492 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo7addressEv @ 493 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo7isValidEv @ 494 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfo8isCachedEv @ 495 NONAME
- _ZNK10QtMobility20QBluetoothDeviceInfoeqERKS0_ @ 496 NONAME
- _ZNK10QtMobility21QBluetoothLocalDevice10metaObjectEv @ 497 NONAME
- _ZNK10QtMobility21QBluetoothLocalDevice13pairingStatusERKNS_17QBluetoothAddressE @ 498 NONAME
- _ZNK10QtMobility21QBluetoothLocalDevice4nameEv @ 499 NONAME
- _ZNK10QtMobility21QBluetoothLocalDevice7addressEv @ 500 NONAME
- _ZNK10QtMobility21QBluetoothLocalDevice7isValidEv @ 501 NONAME
- _ZNK10QtMobility21QBluetoothLocalDevice8hostModeEv @ 502 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo10attributesEv @ 503 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo10isCompleteEv @ 504 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo12isRegisteredEv @ 505 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo13serverChannelEv @ 506 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo14socketProtocolEv @ 507 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo15registerServiceEv @ 508 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo17unregisterServiceEv @ 509 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo18protocolDescriptorENS_14QBluetoothUuid12ProtocolUuidE @ 510 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo26protocolServiceMultiplexerEv @ 511 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo6deviceEv @ 512 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo7isValidEv @ 513 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo8containsEt @ 514 NONAME
- _ZNK10QtMobility21QBluetoothServiceInfo9attributeEt @ 515 NONAME
- _ZNK10QtMobility23QBluetoothTransferReply10metaObjectEv @ 516 NONAME
- _ZNK10QtMobility23QBluetoothTransferReply7managerEv @ 517 NONAME
- _ZNK10QtMobility23QBluetoothTransferReply9attributeENS_25QBluetoothTransferRequest9AttributeE @ 518 NONAME
- _ZNK10QtMobility23QBluetoothTransferReply9operationEv @ 519 NONAME
- _ZNK10QtMobility25QBluetoothTransferManager10metaObjectEv @ 520 NONAME
- _ZNK10QtMobility25QBluetoothTransferRequest7addressEv @ 521 NONAME
- _ZNK10QtMobility25QBluetoothTransferRequest9attributeENS0_9AttributeERK8QVariant @ 522 NONAME
- _ZNK10QtMobility25QBluetoothTransferRequesteqERKS0_ @ 523 NONAME
- _ZNK10QtMobility25QBluetoothTransferRequestneERKS0_ @ 524 NONAME
- _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent10metaObjectEv @ 525 NONAME
- _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent11errorStringEv @ 526 NONAME
- _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent11inquiryTypeEv @ 527 NONAME
- _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent17discoveredDevicesEv @ 528 NONAME
- _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent5errorEv @ 529 NONAME
- _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent8isActiveEv @ 530 NONAME
- _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent10metaObjectEv @ 531 NONAME
- _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent10uuidFilterEv @ 532 NONAME
- _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent11errorStringEv @ 533 NONAME
- _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent18discoveredServicesEv @ 534 NONAME
- _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent5errorEv @ 535 NONAME
- _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent8isActiveEv @ 536 NONAME
- _ZTIN10QtMobility11QLlcpServerE @ 537 NONAME
- _ZTIN10QtMobility11QLlcpSocketE @ 538 NONAME
- _ZTIN10QtMobility12QL2capServerE @ 539 NONAME
- _ZTIN10QtMobility13QRfcommServerE @ 540 NONAME
- _ZTIN10QtMobility16QBluetoothSocketE @ 541 NONAME
- _ZTIN10QtMobility16QNearFieldTargetE @ 542 NONAME
- _ZTIN10QtMobility17QNearFieldManagerE @ 543 NONAME
- _ZTIN10QtMobility18QNearFieldTagType1E @ 544 NONAME
- _ZTIN10QtMobility18QNearFieldTagType2E @ 545 NONAME
- _ZTIN10QtMobility18QNearFieldTagType3E @ 546 NONAME
- _ZTIN10QtMobility18QNearFieldTagType4E @ 547 NONAME
- _ZTIN10QtMobility21QBluetoothLocalDeviceE @ 548 NONAME
- _ZTIN10QtMobility23QBluetoothTransferReplyE @ 549 NONAME
- _ZTIN10QtMobility25QBluetoothTransferManagerE @ 550 NONAME
- _ZTIN10QtMobility30QBluetoothDeviceDiscoveryAgentE @ 551 NONAME
- _ZTIN10QtMobility31QBluetoothServiceDiscoveryAgentE @ 552 NONAME
- _ZTVN10QtMobility11QLlcpServerE @ 553 NONAME
- _ZTVN10QtMobility11QLlcpSocketE @ 554 NONAME
- _ZTVN10QtMobility12QL2capServerE @ 555 NONAME
- _ZTVN10QtMobility13QRfcommServerE @ 556 NONAME
- _ZTVN10QtMobility16QBluetoothSocketE @ 557 NONAME
- _ZTVN10QtMobility16QNearFieldTargetE @ 558 NONAME
- _ZTVN10QtMobility17QNearFieldManagerE @ 559 NONAME
- _ZTVN10QtMobility18QNearFieldTagType1E @ 560 NONAME
- _ZTVN10QtMobility18QNearFieldTagType2E @ 561 NONAME
- _ZTVN10QtMobility18QNearFieldTagType3E @ 562 NONAME
- _ZTVN10QtMobility18QNearFieldTagType4E @ 563 NONAME
- _ZTVN10QtMobility21QBluetoothLocalDeviceE @ 564 NONAME
- _ZTVN10QtMobility23QBluetoothTransferReplyE @ 565 NONAME
- _ZTVN10QtMobility25QBluetoothTransferManagerE @ 566 NONAME
- _ZTVN10QtMobility30QBluetoothDeviceDiscoveryAgentE @ 567 NONAME
- _ZTVN10QtMobility31QBluetoothServiceDiscoveryAgentE @ 568 NONAME
- _ZNK10QtMobility17QNearFieldManager11isAvailableEv @ 569 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecord11qt_metacallEN11QMetaObject4CallEiPPv @ 570 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecord11qt_metacastEPKc @ 571 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecord13setRecordTypeERK7QString @ 572 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecord16staticMetaObjectE @ 573 NONAME DATA 16
- _ZN10QtMobility22QDeclarativeNdefRecord17recordTypeChangedEv @ 574 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecord19getStaticMetaObjectEv @ 575 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecord9setRecordERKNS_11QNdefRecordE @ 576 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecordC1EP7QObject @ 577 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecordC1ERKNS_11QNdefRecordEP7QObject @ 578 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecordC2EP7QObject @ 579 NONAME
- _ZN10QtMobility22QDeclarativeNdefRecordC2ERKNS_11QNdefRecordEP7QObject @ 580 NONAME
- _ZN10QtMobility29qRegisterNdefRecordTypeHelperEPK11QMetaObjectNS_11QNdefRecord14TypeNameFormatERK10QByteArray @ 581 NONAME
- _ZN10QtMobility38qNewDeclarativeNdefRecordForNdefRecordERKNS_11QNdefRecordE @ 582 NONAME
- _ZNK10QtMobility22QDeclarativeNdefRecord10metaObjectEv @ 583 NONAME
- _ZNK10QtMobility22QDeclarativeNdefRecord10recordTypeEv @ 584 NONAME
- _ZNK10QtMobility22QDeclarativeNdefRecord6recordEv @ 585 NONAME
- _ZTIN10QtMobility22QDeclarativeNdefRecordE @ 586 NONAME
- _ZTVN10QtMobility22QDeclarativeNdefRecordE @ 587 NONAME
- _ZN10QtMobility31QBluetoothServiceDiscoveryAgent8canceledEv @ 588 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecord11qt_metacallEN11QMetaObject4CallEiPPv @ 329 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecord11qt_metacastEPKc @ 330 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecord13setRecordTypeERK7QString @ 331 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecord16staticMetaObjectE @ 332 NONAME DATA 16
+ _ZN10QtMobility22QDeclarativeNdefRecord17recordTypeChangedEv @ 333 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecord19getStaticMetaObjectEv @ 334 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecord9setRecordERKNS_11QNdefRecordE @ 335 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecordC1EP7QObject @ 336 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecordC1ERKNS_11QNdefRecordEP7QObject @ 337 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecordC2EP7QObject @ 338 NONAME
+ _ZN10QtMobility22QDeclarativeNdefRecordC2ERKNS_11QNdefRecordEP7QObject @ 339 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply10setManagerEPNS_25QBluetoothTransferManagerE @ 340 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply11qt_metacallEN11QMetaObject4CallEiPPv @ 341 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply11qt_metacastEPKc @ 342 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply12setAttributeENS_25QBluetoothTransferRequest9AttributeERK8QVariant @ 343 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply12setOperationENS_25QBluetoothTransferManager9OperationE @ 344 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply14uploadProgressExx @ 345 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply16downloadProgressExx @ 346 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply16staticMetaObjectE @ 347 NONAME DATA 16
+ _ZN10QtMobility23QBluetoothTransferReply19getStaticMetaObjectEv @ 348 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply5abortEv @ 349 NONAME
+ _ZN10QtMobility23QBluetoothTransferReply8finishedEPS0_ @ 350 NONAME
+ _ZN10QtMobility23QBluetoothTransferReplyC2EP7QObject @ 351 NONAME
+ _ZN10QtMobility23QBluetoothTransferReplyD0Ev @ 352 NONAME
+ _ZN10QtMobility23QBluetoothTransferReplyD1Ev @ 353 NONAME
+ _ZN10QtMobility23QBluetoothTransferReplyD2Ev @ 354 NONAME
+ _ZN10QtMobility25QBluetoothTransferManager11qt_metacallEN11QMetaObject4CallEiPPv @ 355 NONAME
+ _ZN10QtMobility25QBluetoothTransferManager11qt_metacastEPKc @ 356 NONAME
+ _ZN10QtMobility25QBluetoothTransferManager16staticMetaObjectE @ 357 NONAME DATA 16
+ _ZN10QtMobility25QBluetoothTransferManager19getStaticMetaObjectEv @ 358 NONAME
+ _ZN10QtMobility25QBluetoothTransferManager3putERKNS_25QBluetoothTransferRequestEP9QIODevice @ 359 NONAME
+ _ZN10QtMobility25QBluetoothTransferManager8finishedEPNS_23QBluetoothTransferReplyE @ 360 NONAME
+ _ZN10QtMobility25QBluetoothTransferManagerC1EP7QObject @ 361 NONAME
+ _ZN10QtMobility25QBluetoothTransferManagerC2EP7QObject @ 362 NONAME
+ _ZN10QtMobility25QBluetoothTransferManagerD0Ev @ 363 NONAME
+ _ZN10QtMobility25QBluetoothTransferManagerD1Ev @ 364 NONAME
+ _ZN10QtMobility25QBluetoothTransferManagerD2Ev @ 365 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequest12setAttributeENS0_9AttributeERK8QVariant @ 366 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequestC1ERKNS_17QBluetoothAddressE @ 367 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequestC1ERKS0_ @ 368 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequestC2ERKNS_17QBluetoothAddressE @ 369 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequestC2ERKS0_ @ 370 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequestD1Ev @ 371 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequestD2Ev @ 372 NONAME
+ _ZN10QtMobility25QBluetoothTransferRequestaSERKS0_ @ 373 NONAME
+ _ZN10QtMobility29qRegisterNdefRecordTypeHelperEPK11QMetaObjectNS_11QNdefRecord14TypeNameFormatERK10QByteArray @ 374 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent11qt_metacallEN11QMetaObject4CallEiPPv @ 375 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent11qt_metacastEPKc @ 376 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent14setInquiryTypeENS0_11InquiryTypeE @ 377 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent16deviceDiscoveredERKNS_20QBluetoothDeviceInfoE @ 378 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent16staticMetaObjectE @ 379 NONAME DATA 16
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent19getStaticMetaObjectEv @ 380 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent4stopEv @ 381 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent5errorENS0_5ErrorE @ 382 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent5startEv @ 383 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent8canceledEv @ 384 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgent8finishedEv @ 385 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentC1EP7QObject @ 386 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentC2EP7QObject @ 387 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentD0Ev @ 388 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentD1Ev @ 389 NONAME
+ _ZN10QtMobility30QBluetoothDeviceDiscoveryAgentD2Ev @ 390 NONAME
+ _ZN10QtMobility30QBluetoothTransferReplyPrivateC1Ev @ 391 NONAME
+ _ZN10QtMobility30QBluetoothTransferReplyPrivateC2Ev @ 392 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent11qt_metacallEN11QMetaObject4CallEiPPv @ 393 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent11qt_metacastEPKc @ 394 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent13setUuidFilterERK5QListINS_14QBluetoothUuidEE @ 395 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent13setUuidFilterERKNS_14QBluetoothUuidE @ 396 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent16staticMetaObjectE @ 397 NONAME DATA 16
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent17serviceDiscoveredERKNS_21QBluetoothServiceInfoE @ 398 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent19getStaticMetaObjectEv @ 399 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent4stopEv @ 400 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent5clearEv @ 401 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent5errorENS0_5ErrorE @ 402 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent5startENS0_13DiscoveryModeE @ 403 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent8canceledEv @ 404 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgent8finishedEv @ 405 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC1EP7QObject @ 406 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC1ERKNS_17QBluetoothAddressEP7QObject @ 407 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC2EP7QObject @ 408 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgentC2ERKNS_17QBluetoothAddressEP7QObject @ 409 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgentD0Ev @ 410 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgentD1Ev @ 411 NONAME
+ _ZN10QtMobility31QBluetoothServiceDiscoveryAgentD2Ev @ 412 NONAME
+ _ZN10QtMobility38qNewDeclarativeNdefRecordForNdefRecordERKNS_11QNdefRecordE @ 413 NONAME
+ _ZN10QtMobilitylsE6QDebugNS_16QBluetoothSocket11SocketErrorE @ 414 NONAME
+ _ZN10QtMobilitylsE6QDebugNS_16QBluetoothSocket11SocketStateE @ 415 NONAME
+ _ZN10QtMobilitylsE6QDebugRKNS_21QBluetoothServiceInfoE @ 416 NONAME
+ _ZNK10QtMobility11QLlcpServer10metaObjectEv @ 417 NONAME
+ _ZNK10QtMobility11QLlcpServer10serverPortEv @ 418 NONAME
+ _ZNK10QtMobility11QLlcpServer10serviceUriEv @ 419 NONAME
+ _ZNK10QtMobility11QLlcpServer11isListeningEv @ 420 NONAME
+ _ZNK10QtMobility11QLlcpServer11serverErrorEv @ 421 NONAME
+ _ZNK10QtMobility11QLlcpServer21hasPendingConnectionsEv @ 422 NONAME
+ _ZNK10QtMobility11QLlcpSocket10metaObjectEv @ 423 NONAME
+ _ZNK10QtMobility11QLlcpSocket11canReadLineEv @ 424 NONAME
+ _ZNK10QtMobility11QLlcpSocket12isSequentialEv @ 425 NONAME
+ _ZNK10QtMobility11QLlcpSocket14bytesAvailableEv @ 426 NONAME
+ _ZNK10QtMobility11QLlcpSocket19hasPendingDatagramsEv @ 427 NONAME
+ _ZNK10QtMobility11QLlcpSocket19pendingDatagramSizeEv @ 428 NONAME
+ _ZNK10QtMobility11QLlcpSocket5errorEv @ 429 NONAME
+ _ZNK10QtMobility11QLlcpSocket5stateEv @ 430 NONAME
+ _ZNK10QtMobility11QNdefFilter10orderMatchEv @ 431 NONAME
+ _ZNK10QtMobility11QNdefFilter11recordCountEv @ 432 NONAME
+ _ZNK10QtMobility11QNdefFilter8recordAtEi @ 433 NONAME
+ _ZNK10QtMobility11QNdefRecord14typeNameFormatEv @ 434 NONAME
+ _ZNK10QtMobility11QNdefRecord2idEv @ 435 NONAME
+ _ZNK10QtMobility11QNdefRecord4typeEv @ 436 NONAME
+ _ZNK10QtMobility11QNdefRecord7isEmptyEv @ 437 NONAME
+ _ZNK10QtMobility11QNdefRecord7payloadEv @ 438 NONAME
+ _ZNK10QtMobility11QNdefRecordeqERKS0_ @ 439 NONAME
+ _ZNK10QtMobility12QL2capServer10metaObjectEv @ 440 NONAME
+ _ZNK10QtMobility12QL2capServer10serverPortEv @ 441 NONAME
+ _ZNK10QtMobility12QL2capServer11isListeningEv @ 442 NONAME
+ _ZNK10QtMobility12QL2capServer13securityFlagsEv @ 443 NONAME
+ _ZNK10QtMobility12QL2capServer13serverAddressEv @ 444 NONAME
+ _ZNK10QtMobility12QL2capServer21hasPendingConnectionsEv @ 445 NONAME
+ _ZNK10QtMobility12QL2capServer21maxPendingConnectionsEv @ 446 NONAME
+ _ZNK10QtMobility12QNdefMessage11toByteArrayEv @ 447 NONAME
+ _ZNK10QtMobility12QNdefMessageeqERKS0_ @ 448 NONAME
+ _ZNK10QtMobility13QRfcommServer10metaObjectEv @ 449 NONAME
+ _ZNK10QtMobility13QRfcommServer10serverPortEv @ 450 NONAME
+ _ZNK10QtMobility13QRfcommServer11isListeningEv @ 451 NONAME
+ _ZNK10QtMobility13QRfcommServer13securityFlagsEv @ 452 NONAME
+ _ZNK10QtMobility13QRfcommServer13serverAddressEv @ 453 NONAME
+ _ZNK10QtMobility13QRfcommServer21hasPendingConnectionsEv @ 454 NONAME
+ _ZNK10QtMobility13QRfcommServer21maxPendingConnectionsEv @ 455 NONAME
+ _ZNK10QtMobility14QBluetoothUuid11minimumSizeEv @ 456 NONAME
+ _ZNK10QtMobility14QBluetoothUuid8toUInt16EPb @ 457 NONAME
+ _ZNK10QtMobility14QBluetoothUuid8toUInt32EPb @ 458 NONAME
+ _ZNK10QtMobility14QBluetoothUuid9toUInt128Ev @ 459 NONAME
+ _ZNK10QtMobility14QBluetoothUuideqERKS0_ @ 460 NONAME
+ _ZNK10QtMobility16QBluetoothSocket10metaObjectEv @ 461 NONAME
+ _ZNK10QtMobility16QBluetoothSocket10socketTypeEv @ 462 NONAME
+ _ZNK10QtMobility16QBluetoothSocket11canReadLineEv @ 463 NONAME
+ _ZNK10QtMobility16QBluetoothSocket11errorStringEv @ 464 NONAME
+ _ZNK10QtMobility16QBluetoothSocket11peerAddressEv @ 465 NONAME
+ _ZNK10QtMobility16QBluetoothSocket12bytesToWriteEv @ 466 NONAME
+ _ZNK10QtMobility16QBluetoothSocket12isSequentialEv @ 467 NONAME
+ _ZNK10QtMobility16QBluetoothSocket12localAddressEv @ 468 NONAME
+ _ZNK10QtMobility16QBluetoothSocket14bytesAvailableEv @ 469 NONAME
+ _ZNK10QtMobility16QBluetoothSocket16socketDescriptorEv @ 470 NONAME
+ _ZNK10QtMobility16QBluetoothSocket5errorEv @ 471 NONAME
+ _ZNK10QtMobility16QBluetoothSocket5stateEv @ 472 NONAME
+ _ZNK10QtMobility16QBluetoothSocket8peerNameEv @ 473 NONAME
+ _ZNK10QtMobility16QBluetoothSocket8peerPortEv @ 474 NONAME
+ _ZNK10QtMobility16QBluetoothSocket9localNameEv @ 475 NONAME
+ _ZNK10QtMobility16QBluetoothSocket9localPortEv @ 476 NONAME
+ _ZNK10QtMobility16QNearFieldTarget10metaObjectEv @ 477 NONAME
+ _ZNK10QtMobility16QNearFieldTarget19isProcessingCommandEv @ 478 NONAME
+ _ZNK10QtMobility16QNearFieldTarget3urlEv @ 479 NONAME
+ _ZNK10QtMobility16QNearFieldTarget9RequestId7isValidEv @ 480 NONAME
+ _ZNK10QtMobility16QNearFieldTarget9RequestId8refCountEv @ 481 NONAME
+ _ZNK10QtMobility16QNearFieldTarget9RequestIdeqERKS1_ @ 482 NONAME
+ _ZNK10QtMobility16QNearFieldTarget9RequestIdltERKS1_ @ 483 NONAME
+ _ZNK10QtMobility16QNearFieldTarget9RequestIdneERKS1_ @ 484 NONAME
+ _ZNK10QtMobility17QBluetoothAddress6isNullEv @ 485 NONAME
+ _ZNK10QtMobility17QBluetoothAddress8toStringEv @ 486 NONAME
+ _ZNK10QtMobility17QBluetoothAddress8toUInt64Ev @ 487 NONAME
+ _ZNK10QtMobility17QBluetoothAddresseqERKS0_ @ 488 NONAME
+ _ZNK10QtMobility17QBluetoothAddressltERKS0_ @ 489 NONAME
+ _ZNK10QtMobility17QNdefNfcUriRecord3uriEv @ 490 NONAME
+ _ZNK10QtMobility17QNearFieldManager10metaObjectEv @ 491 NONAME
+ _ZNK10QtMobility17QNearFieldManager11isAvailableEv @ 492 NONAME
+ _ZNK10QtMobility17QNearFieldManager17targetAccessModesEv @ 493 NONAME
+ _ZNK10QtMobility18QNdefNfcTextRecord4textEv @ 494 NONAME
+ _ZNK10QtMobility18QNdefNfcTextRecord6localeEv @ 495 NONAME
+ _ZNK10QtMobility18QNdefNfcTextRecord8encodingEv @ 496 NONAME
+ _ZNK10QtMobility18QNearFieldTagType110metaObjectEv @ 497 NONAME
+ _ZNK10QtMobility18QNearFieldTagType210metaObjectEv @ 498 NONAME
+ _ZNK10QtMobility18QNearFieldTagType310metaObjectEv @ 499 NONAME
+ _ZNK10QtMobility18QNearFieldTagType410metaObjectEv @ 500 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo12serviceUuidsEPNS0_16DataCompletenessE @ 501 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo14serviceClassesEv @ 502 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo16majorDeviceClassEv @ 503 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo16minorDeviceClassEv @ 504 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo24manufacturerSpecificDataEPb @ 505 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo24serviceUuidsCompletenessEv @ 506 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo4nameEv @ 507 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo4rssiEv @ 508 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo7addressEv @ 509 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo7isValidEv @ 510 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfo8isCachedEv @ 511 NONAME
+ _ZNK10QtMobility20QBluetoothDeviceInfoeqERKS0_ @ 512 NONAME
+ _ZNK10QtMobility21QBluetoothLocalDevice10metaObjectEv @ 513 NONAME
+ _ZNK10QtMobility21QBluetoothLocalDevice13pairingStatusERKNS_17QBluetoothAddressE @ 514 NONAME
+ _ZNK10QtMobility21QBluetoothLocalDevice4nameEv @ 515 NONAME
+ _ZNK10QtMobility21QBluetoothLocalDevice7addressEv @ 516 NONAME
+ _ZNK10QtMobility21QBluetoothLocalDevice7isValidEv @ 517 NONAME
+ _ZNK10QtMobility21QBluetoothLocalDevice8hostModeEv @ 518 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo10attributesEv @ 519 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo10isCompleteEv @ 520 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo12isRegisteredEv @ 521 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo13serverChannelEv @ 522 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo14socketProtocolEv @ 523 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo15registerServiceEv @ 524 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo17unregisterServiceEv @ 525 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo18protocolDescriptorENS_14QBluetoothUuid12ProtocolUuidE @ 526 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo26protocolServiceMultiplexerEv @ 527 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo6deviceEv @ 528 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo7isValidEv @ 529 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo8containsEt @ 530 NONAME
+ _ZNK10QtMobility21QBluetoothServiceInfo9attributeEt @ 531 NONAME
+ _ZNK10QtMobility22QDeclarativeNdefRecord10metaObjectEv @ 532 NONAME
+ _ZNK10QtMobility22QDeclarativeNdefRecord10recordTypeEv @ 533 NONAME
+ _ZNK10QtMobility22QDeclarativeNdefRecord6recordEv @ 534 NONAME
+ _ZNK10QtMobility23QBluetoothTransferReply10metaObjectEv @ 535 NONAME
+ _ZNK10QtMobility23QBluetoothTransferReply7managerEv @ 536 NONAME
+ _ZNK10QtMobility23QBluetoothTransferReply9attributeENS_25QBluetoothTransferRequest9AttributeE @ 537 NONAME
+ _ZNK10QtMobility23QBluetoothTransferReply9operationEv @ 538 NONAME
+ _ZNK10QtMobility25QBluetoothTransferManager10metaObjectEv @ 539 NONAME
+ _ZNK10QtMobility25QBluetoothTransferRequest7addressEv @ 540 NONAME
+ _ZNK10QtMobility25QBluetoothTransferRequest9attributeENS0_9AttributeERK8QVariant @ 541 NONAME
+ _ZNK10QtMobility25QBluetoothTransferRequesteqERKS0_ @ 542 NONAME
+ _ZNK10QtMobility25QBluetoothTransferRequestneERKS0_ @ 543 NONAME
+ _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent10metaObjectEv @ 544 NONAME
+ _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent11errorStringEv @ 545 NONAME
+ _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent11inquiryTypeEv @ 546 NONAME
+ _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent17discoveredDevicesEv @ 547 NONAME
+ _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent5errorEv @ 548 NONAME
+ _ZNK10QtMobility30QBluetoothDeviceDiscoveryAgent8isActiveEv @ 549 NONAME
+ _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent10metaObjectEv @ 550 NONAME
+ _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent10uuidFilterEv @ 551 NONAME
+ _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent11errorStringEv @ 552 NONAME
+ _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent18discoveredServicesEv @ 553 NONAME
+ _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent5errorEv @ 554 NONAME
+ _ZNK10QtMobility31QBluetoothServiceDiscoveryAgent8isActiveEv @ 555 NONAME
+ _ZTIN10QtMobility11QLlcpServerE @ 556 NONAME
+ _ZTIN10QtMobility11QLlcpSocketE @ 557 NONAME
+ _ZTIN10QtMobility12QL2capServerE @ 558 NONAME
+ _ZTIN10QtMobility13QRfcommServerE @ 559 NONAME
+ _ZTIN10QtMobility16QBluetoothSocketE @ 560 NONAME
+ _ZTIN10QtMobility16QNearFieldTargetE @ 561 NONAME
+ _ZTIN10QtMobility17QNearFieldManagerE @ 562 NONAME
+ _ZTIN10QtMobility18QNearFieldTagType1E @ 563 NONAME
+ _ZTIN10QtMobility18QNearFieldTagType2E @ 564 NONAME
+ _ZTIN10QtMobility18QNearFieldTagType3E @ 565 NONAME
+ _ZTIN10QtMobility18QNearFieldTagType4E @ 566 NONAME
+ _ZTIN10QtMobility21QBluetoothLocalDeviceE @ 567 NONAME
+ _ZTIN10QtMobility22QDeclarativeNdefRecordE @ 568 NONAME
+ _ZTIN10QtMobility23QBluetoothTransferReplyE @ 569 NONAME
+ _ZTIN10QtMobility25QBluetoothTransferManagerE @ 570 NONAME
+ _ZTIN10QtMobility30QBluetoothDeviceDiscoveryAgentE @ 571 NONAME
+ _ZTIN10QtMobility31QBluetoothServiceDiscoveryAgentE @ 572 NONAME
+ _ZTVN10QtMobility11QLlcpServerE @ 573 NONAME
+ _ZTVN10QtMobility11QLlcpSocketE @ 574 NONAME
+ _ZTVN10QtMobility12QL2capServerE @ 575 NONAME
+ _ZTVN10QtMobility13QRfcommServerE @ 576 NONAME
+ _ZTVN10QtMobility16QBluetoothSocketE @ 577 NONAME
+ _ZTVN10QtMobility16QNearFieldTargetE @ 578 NONAME
+ _ZTVN10QtMobility17QNearFieldManagerE @ 579 NONAME
+ _ZTVN10QtMobility18QNearFieldTagType1E @ 580 NONAME
+ _ZTVN10QtMobility18QNearFieldTagType2E @ 581 NONAME
+ _ZTVN10QtMobility18QNearFieldTagType3E @ 582 NONAME
+ _ZTVN10QtMobility18QNearFieldTagType4E @ 583 NONAME
+ _ZTVN10QtMobility21QBluetoothLocalDeviceE @ 584 NONAME
+ _ZTVN10QtMobility22QDeclarativeNdefRecordE @ 585 NONAME
+ _ZTVN10QtMobility23QBluetoothTransferReplyE @ 586 NONAME
+ _ZTVN10QtMobility25QBluetoothTransferManagerE @ 587 NONAME
+ _ZTVN10QtMobility30QBluetoothDeviceDiscoveryAgentE @ 588 NONAME
+ _ZTVN10QtMobility31QBluetoothServiceDiscoveryAgentE @ 589 NONAME
diff --git a/src/sensors/qaccelerometer.cpp b/src/sensors/qaccelerometer.cpp
index 2f9ab8d4ca..a9ea15b728 100644
--- a/src/sensors/qaccelerometer.cpp
+++ b/src/sensors/qaccelerometer.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QAccelerometerReading)
\class QAccelerometerReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QAccelerometerReading class reports on linear acceleration
along the X, Y and Z axes.
diff --git a/src/sensors/qambientlightsensor.cpp b/src/sensors/qambientlightsensor.cpp
index da412d53e0..d5358fd73c 100644
--- a/src/sensors/qambientlightsensor.cpp
+++ b/src/sensors/qambientlightsensor.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QAmbientLightReading)
\class QAmbientLightReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QAmbientLightReading class represents one reading from the
ambient light sensor.
diff --git a/src/sensors/qcompass.cpp b/src/sensors/qcompass.cpp
index 2c293b0486..9da353e7ec 100644
--- a/src/sensors/qcompass.cpp
+++ b/src/sensors/qcompass.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QCompassReading)
\class QCompassReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QCompassReading class represents one reading from a
compass.
@@ -86,7 +87,7 @@ qreal QCompassReading::azimuth() const
/*!
Sets the \a azimuth of the device.
-
+
\sa {QCompassReading Units}
*/
void QCompassReading::setAzimuth(qreal azimuth)
diff --git a/src/sensors/qgyroscope.cpp b/src/sensors/qgyroscope.cpp
index 20d82a0973..1ea2a6f0a7 100644
--- a/src/sensors/qgyroscope.cpp
+++ b/src/sensors/qgyroscope.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QGyroscopeReading)
\class QGyroscopeReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.2
\brief The QGyroscopeReading class represents one reading from the
gyroscope sensor.
diff --git a/src/sensors/qlightsensor.cpp b/src/sensors/qlightsensor.cpp
index 034c8b6fa1..e63ec0dfe8 100644
--- a/src/sensors/qlightsensor.cpp
+++ b/src/sensors/qlightsensor.cpp
@@ -49,6 +49,8 @@ IMPLEMENT_READING(QLightReading)
/*!
\class QLightReading
\ingroup sensors_reading
+
+ \since 1.2
\preliminary
\brief The QLightReading class represents one reading from the
diff --git a/src/sensors/qmagnetometer.cpp b/src/sensors/qmagnetometer.cpp
index baa3d19f46..55a80e1ed9 100644
--- a/src/sensors/qmagnetometer.cpp
+++ b/src/sensors/qmagnetometer.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QMagnetometerReading)
\class QMagnetometerReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QMagnetometerReading class represents one reading from the
magnetometer.
diff --git a/src/sensors/qorientationsensor.cpp b/src/sensors/qorientationsensor.cpp
index 45e930bf04..f98ab6d764 100644
--- a/src/sensors/qorientationsensor.cpp
+++ b/src/sensors/qorientationsensor.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QOrientationReading)
\class QOrientationReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QOrientationReading class represents one reading from the
orientation sensor.
diff --git a/src/sensors/qproximitysensor.cpp b/src/sensors/qproximitysensor.cpp
index 9148f5c529..b4a8e7ab74 100644
--- a/src/sensors/qproximitysensor.cpp
+++ b/src/sensors/qproximitysensor.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QProximityReading)
\class QProximityReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QProximityReading class represents one reading from the
proximity sensor.
diff --git a/src/sensors/qrotationsensor.cpp b/src/sensors/qrotationsensor.cpp
index 16819fb07e..4d5e8742ca 100644
--- a/src/sensors/qrotationsensor.cpp
+++ b/src/sensors/qrotationsensor.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QRotationReading)
\class QRotationReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QRotationReading class represents one reading from the
rotation sensor.
diff --git a/src/sensors/qsensorbackend.cpp b/src/sensors/qsensorbackend.cpp
index b27c781243..e59acd69bb 100644
--- a/src/sensors/qsensorbackend.cpp
+++ b/src/sensors/qsensorbackend.cpp
@@ -49,6 +49,7 @@ QTM_BEGIN_NAMESPACE
\class QSensorBackend
\ingroup sensors_backend
\inmodule QtSensors
+ \since 1.0
\brief The QSensorBackend class is a sensor implementation.
diff --git a/src/sensors/qsensormanager.cpp b/src/sensors/qsensormanager.cpp
index 39438346e3..9c6c1190e4 100644
--- a/src/sensors/qsensormanager.cpp
+++ b/src/sensors/qsensormanager.cpp
@@ -206,6 +206,7 @@ void QSensorManagerPrivate::loadPlugins()
\class QSensorManager
\ingroup sensors_backend
\inmodule QtSensors
+ \since 1.0
\brief The QSensorManager class handles registration and creation of sensor backends.
diff --git a/src/sensors/qsensorplugin.cpp b/src/sensors/qsensorplugin.cpp
index a67b168197..f6e78c5c30 100644
--- a/src/sensors/qsensorplugin.cpp
+++ b/src/sensors/qsensorplugin.cpp
@@ -46,6 +46,7 @@
\ingroup sensors_backend
\inmodule QtSensors
\brief The QSensorPluginInterface class is the pure virtual interface to sensor plugins.
+ \since 1.0
The QSensorPluginInterface class is implemented in sensor plugins to register sensor
backends with QSensorManager.
diff --git a/src/sensors/qtapsensor.cpp b/src/sensors/qtapsensor.cpp
index 9b00648f43..8c37728579 100644
--- a/src/sensors/qtapsensor.cpp
+++ b/src/sensors/qtapsensor.cpp
@@ -50,6 +50,7 @@ IMPLEMENT_READING(QTapReading)
\class QTapReading
\ingroup sensors_reading
\inmodule QtSensors
+ \since 1.0
\brief The QTapReading class represents one reading from the
tap sensor.
diff --git a/src/serviceframework/databasemanager.cpp b/src/serviceframework/databasemanager.cpp
index 98abb22996..ce3bc9ca21 100644
--- a/src/serviceframework/databasemanager.cpp
+++ b/src/serviceframework/databasemanager.cpp
@@ -239,6 +239,8 @@ bool lessThan(const QServiceInterfaceDescriptor &d1,
data from both combined into a single dataset.
When referring to a user scope database it means the
user database only.
+
+ \since 1.0
*/
/*
diff --git a/src/serviceframework/ipc/objectendpoint.cpp b/src/serviceframework/ipc/objectendpoint.cpp
index caf555278f..866af4c2c9 100644
--- a/src/serviceframework/ipc/objectendpoint.cpp
+++ b/src/serviceframework/ipc/objectendpoint.cpp
@@ -621,15 +621,9 @@ void ObjectEndPoint::waitForResponse(const QUuid& requestId)
if (openRequests()->contains(requestId) ) {
Response* response = openRequests()->value(requestId);
QEventLoop* loop = new QEventLoop( this );
+ QTimer::singleShot(30000, loop, SLOT(quit()));
connect(this, SIGNAL(pendingRequestFinished()), loop, SLOT(quit()));
- QTime timer;
- timer.start();
-
- while(!response->isFinished) {
- loop->processEvents(QEventLoop::AllEvents, 30000);
- if(timer.elapsed() > 30000)
- break;
- }
+ loop->exec();
delete loop;
qDebug() << "- response->isFinished: " << response->isFinished;
diff --git a/src/serviceframework/ipc/qmetaobjectbuilder.cpp b/src/serviceframework/ipc/qmetaobjectbuilder.cpp
index 63eeeabb97..b19eb1a34c 100644
--- a/src/serviceframework/ipc/qmetaobjectbuilder.cpp
+++ b/src/serviceframework/ipc/qmetaobjectbuilder.cpp
@@ -52,6 +52,7 @@ QTM_BEGIN_NAMESPACE
\class QMetaObjectBuilder
\internal
\brief The QMetaObjectBuilder class supports building QMetaObject objects at runtime.
+ \since 1.1
*/
@@ -889,7 +890,7 @@ const QMetaObject *QMetaObjectBuilder::relatedMetaObject(int index) const
QByteArray QMetaObjectBuilder::classInfoName(int index) const
{
if (index >= 0 && index < d->classInfoNames.size())
- return d->classInfoNames[index];
+ return d->classInfoNames[index];
else
return QByteArray();
}
@@ -904,7 +905,7 @@ QByteArray QMetaObjectBuilder::classInfoName(int index) const
QByteArray QMetaObjectBuilder::classInfoValue(int index) const
{
if (index >= 0 && index < d->classInfoValues.size())
- return d->classInfoValues[index];
+ return d->classInfoValues[index];
else
return QByteArray();
}
@@ -1178,9 +1179,9 @@ static QByteArray buildParameterNames
// Build a QMetaObject in "buf" based on the information in "d".
// If "buf" is null, then return the number of bytes needed to
-// build the QMetaObject. Returns -1 if the metaobject if
+// build the QMetaObject. Returns -1 if the metaobject if
// relocatable is set, but the metaobject contains extradata.
-static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf,
+static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf,
bool relocatable)
{
int size = 0;
@@ -1189,7 +1190,7 @@ static int buildMetaObject(QMetaObjectBuilderPrivate *d, char *buf,
int index;
bool hasNotifySignals = false;
- if (relocatable &&
+ if (relocatable &&
(d->relatedMetaObjects.size() > 0 || d->staticMetacallFunction))
return -1;
@@ -1466,7 +1467,7 @@ QMetaObject *QMetaObjectBuilder::toMetaObject() const
The data is specific to the architecture on which it was created, but is not
specific to the process that created it. Not all meta object builder's can
be converted to data in this way. If \a ok is provided, it will be set to
- true if the conversion succeeds, and false otherwise. If a
+ true if the conversion succeeds, and false otherwise. If a
staticMetacallFunction() or any relatedMetaObject()'s are specified the
conversion to relocatable data will fail.
*/
@@ -1489,12 +1490,12 @@ QByteArray QMetaObjectBuilder::toRelocatableData(bool *ok) const
/*
\internal
- Sets the \a data returned from toRelocatableData() onto a concrete
+ Sets the \a data returned from toRelocatableData() onto a concrete
QMetaObject instance, \a output. As the meta object's super class is not
saved in the relocatable data, it must be passed as \a superClass.
*/
-void QMetaObjectBuilder::fromRelocatableData(QMetaObject *output,
- const QMetaObject *superclass,
+void QMetaObjectBuilder::fromRelocatableData(QMetaObject *output,
+ const QMetaObject *superclass,
const QByteArray &data)
{
if (!output)
diff --git a/src/serviceframework/ipc/qsignalintercepter.cpp b/src/serviceframework/ipc/qsignalintercepter.cpp
index 9b97fea611..049e1072c3 100644
--- a/src/serviceframework/ipc/qsignalintercepter.cpp
+++ b/src/serviceframework/ipc/qsignalintercepter.cpp
@@ -50,6 +50,7 @@
\internal
\brief The QSignalIntercepter class provides an interface for intercepting signals as meta-calls
+ \since 1.1
IPC mechanisms need to intercept signals and convert them into protocol
messages, but it is generally impractical to create a slot for every
diff --git a/src/serviceframework/ipc/qslotinvoker.cpp b/src/serviceframework/ipc/qslotinvoker.cpp
index 76b369e3ab..56427b0094 100644
--- a/src/serviceframework/ipc/qslotinvoker.cpp
+++ b/src/serviceframework/ipc/qslotinvoker.cpp
@@ -50,6 +50,7 @@
\internal
\brief The QSlotInvoker class provides an interface for invoking slots with explicit arguments
+ \since 1.1
IPC mechanisms need to intercept protocol messages and convert them into
slot invocations, but it is generally impractical to create explicit code
diff --git a/src/serviceframework/qabstractsecuritysession.cpp b/src/serviceframework/qabstractsecuritysession.cpp
index 00465b2b18..e655ec44cb 100644
--- a/src/serviceframework/qabstractsecuritysession.cpp
+++ b/src/serviceframework/qabstractsecuritysession.cpp
@@ -49,18 +49,19 @@ QTM_BEGIN_NAMESPACE
\ingroup servicefw
\brief The QAbstractSecuritySession class provides a generic mechanism to enable
permission checks for services.
-
+ \since 1.0
+
QAbstractSecuritySession describes the abstract interface that security/permission
engines must implement in order to provide capability related functionality.
A QAbstractSecuritySession encapsulates the service client's capabilities. QServiceManager
- can match those capabilites with the capabilites required by a particular service.
- Service capabilites are declared via the services XML description.
+ can match those capabilites with the capabilites required by a particular service.
+ Service capabilites are declared via the services XML description.
The use of a security session is not mandated by the service manager. If the client
is passing a security session object QServiceManager ensures that the permissions
- are checked before the requested service is loaded and forwards the session to the
- service in case the service intends to implement additional checks. If no security
+ are checked before the requested service is loaded and forwards the session to the
+ service in case the service intends to implement additional checks. If no security
session is passed to QServiceManager capability checks are not performed. Note that
the security session is no substitute for platform security such as control over
a processes ability to load arbitrary plug-ins.
@@ -93,11 +94,11 @@ QAbstractSecuritySession::~QAbstractSecuritySession()
{
}
-/*!
+/*!
\fn bool QAbstractSecuritySession::isAllowed(const QStringList& capabilities) = 0;
Returns true if the security session has sufficient rights to access the required
- service \a capabilities.
+ service \a capabilities.
*/
#include "moc_qabstractsecuritysession.cpp"
diff --git a/src/serviceframework/qremoteserviceregister.cpp b/src/serviceframework/qremoteserviceregister.cpp
index a60484c8eb..19bdfad59e 100644
--- a/src/serviceframework/qremoteserviceregister.cpp
+++ b/src/serviceframework/qremoteserviceregister.cpp
@@ -56,6 +56,8 @@ QTM_BEGIN_NAMESPACE
details matching a valid QServiceInterfaceDescriptor.
A registration entry can then be published for discovery by remote clients.
+
+ \since 1.1
*/
/*!
diff --git a/src/serviceframework/qservicecontext.cpp b/src/serviceframework/qservicecontext.cpp
index d3ffd130ce..dc941c0aa2 100644
--- a/src/serviceframework/qservicecontext.cpp
+++ b/src/serviceframework/qservicecontext.cpp
@@ -58,13 +58,14 @@ public:
\class QServiceContext
\inmodule QtServiceFramework
\ingroup servicefw
- \brief The QServiceContext class provides context information to
+ \brief The QServiceContext class provides context information to
services.
+ \since 1.0
A service context is created by clients and passed on to the service.
- It enables the opportunity to pass additional context information
+ It enables the opportunity to pass additional context information
and errors between services, clients and the service framework.
-
+
Clients must implement this abstract class to receive context information.
\sa QServiceManager
@@ -76,9 +77,9 @@ public:
This enum describes the type of context information.
- \value DisplayContext The service provides user visible display
+ \value DisplayContext The service provides user visible display
text such as an error message.
- \value ScriptContext The service provides a script which may
+ \value ScriptContext The service provides a script which may
be executed by the client.
\value UserDefined The first context type that can be used for service
specific context information.
@@ -88,7 +89,7 @@ public:
\fn void QServiceContext::notify(ContextType type, const QVariant& data) = 0
Services may call this function to notify the service client about service related
- context information of the given \a type. The contextual information is stored in \a data.
+ context information of the given \a type. The contextual information is stored in \a data.
*/
@@ -110,7 +111,7 @@ QServiceContext::QServiceContext(QObject* parent)
/*!
Destroys the service context object.
*/
-QServiceContext::~QServiceContext()
+QServiceContext::~QServiceContext()
{
//ServiceContextUserData deleted by QObject
}
diff --git a/src/serviceframework/qservicefilter.cpp b/src/serviceframework/qservicefilter.cpp
index b37362f63a..770b76dcee 100644
--- a/src/serviceframework/qservicefilter.cpp
+++ b/src/serviceframework/qservicefilter.cpp
@@ -66,16 +66,17 @@ public:
/*!
\class QServiceFilter
-
+
\ingroup servicefw
\inmodule QtServiceFramework
- \brief The QServiceFilter class defines criteria for defining a sub-set of
+ \brief The QServiceFilter class defines criteria for defining a sub-set of
all available services.
+ \since 1.0
A QServiceFilter can be used to constrain the number of services when searching
for services. Only those services that match all filter criteria are returned
by \l QServiceManager::findInterfaces().
-
+
\sa QServiceInterfaceDescriptor, QServiceManager
*/
@@ -86,7 +87,7 @@ public:
This enum describes how interface version matching is performed.
\value ExactVersionMatch The filter matches any interface implementation that implements
- the exact version provided.
+ the exact version provided.
\value MinimumVersionMatch The filter matches any interface implementation that implements
either the given major/minor version or any subsequent version.
*/
@@ -94,8 +95,8 @@ public:
/*!
\enum QServiceFilter::CapabilityMatchRule
- This enum describes the capability/permission matching rules. Some platforms restrict what services clients
- can access using "capabilities" or permissions. Services with more capabilities require
+ This enum describes the capability/permission matching rules. Some platforms restrict what services clients
+ can access using "capabilities" or permissions. Services with more capabilities require
more privileged clients. Platforms without capabilities may ignore this type of matching
rule as the default behavior is to ignore any capability restrictions.
@@ -121,17 +122,17 @@ public:
\row \o MatchMinimum \o \{A\} \o S2, S3, S4, S5
\row \o MatchMinimum \o \{A,B,C\} \o S4
\endtable
-
- \value MatchMinimum The filter matches any service that requires at least the given
+
+ \value MatchMinimum The filter matches any service that requires at least the given
filter capabilities. This may mean that the returned services
may require more capabilities than the specified ones.
- Such a search is equivalent to a wildcard match if the passed filter's capability list is empty. In mathematical set notation
+ Such a search is equivalent to a wildcard match if the passed filter's capability list is empty. In mathematical set notation
this rule is equivalent to Cap\sub{(Filter)} \\ Cap\sub{(Service)} = {}. This is the default matching rule.
\value MatchLoadable The filter matches any service that could be loaded by the client.
Using this matching rule guarantees that the returned services do not
require more capabilites than specified by this rule. It includes services
with no capability requirements. If this rule
- is provided alongside an empty capability search list the returned
+ is provided alongside an empty capability search list the returned
services do not require any capabilities and thus can be accessed
by any client. The equivalent set notation is Cap\sub{(Service)} \\ Cap\sub{(Filter)} = {}.
*/
@@ -159,7 +160,7 @@ QServiceFilter::QServiceFilter(const QServiceFilter& other)
/*!
\fn QServiceFilter::QServiceFilter(const QString& interfaceName, const QString& version, QServiceFilter::VersionMatchRule rule)
-
+
Creates a new filter object that matches all service
implementations implementing \a interfaceName that match the specified
\a version using the given \a rule.
@@ -184,8 +185,8 @@ QServiceFilter::~QServiceFilter()
/*!
\fn QServiceFilter& QServiceFilter::operator=(const QServiceFilter& other)
-
- Copies the content of the QServiceFilter object contained in
+
+ Copies the content of the QServiceFilter object contained in
\a other into this one.
*/
QServiceFilter& QServiceFilter::operator=(const QServiceFilter& other)
@@ -204,7 +205,7 @@ QServiceFilter& QServiceFilter::operator=(const QServiceFilter& other)
/*!
\fn void QServiceFilter::setServiceName(const QString& serviceName)
-
+
The filter only matches implementations which are provided by the service
specified by \a serviceName.
@@ -217,7 +218,7 @@ void QServiceFilter::setServiceName(const QString& serviceName)
/*!
\fn void QServiceFilter::setInterface(const QString &interfaceName, const QString& version, QServiceFilter::VersionMatchRule rule)
-
+
Sets the filter to match any interface implementation that implements
\a interfaceName with version \a version. The version is matched
according to the given \a rule. If \a version is not set, the filter matches any version of the
@@ -232,7 +233,7 @@ void QServiceFilter::setServiceName(const QString& serviceName)
void QServiceFilter::setInterface(const QString &interfaceName, const QString& version, QServiceFilter::VersionMatchRule rule)
{
//unset interface name
- if (interfaceName.isEmpty() && version.isEmpty())
+ if (interfaceName.isEmpty() && version.isEmpty())
{
d->interface = interfaceName;
d->majorVersion = d->minorVersion = -1;
@@ -261,8 +262,8 @@ void QServiceFilter::setInterface(const QString &interfaceName, const QString& v
bool success = false;
int temp_major = -1;
int temp_minor = -1;
- if (pos == 0 && list.count() == 3
- && rx.matchedLength() == version.length() )
+ if (pos == 0 && list.count() == 3
+ && rx.matchedLength() == version.length() )
{
temp_major = list[1].toInt(&success);
if ( success ) {
@@ -282,7 +283,7 @@ void QServiceFilter::setInterface(const QString &interfaceName, const QString& v
/*!
\fn QString QServiceFilter::serviceName() const
-
+
Returns the service name for this filter.
\sa setServiceName()
@@ -294,7 +295,7 @@ QString QServiceFilter::serviceName() const
/*!
\fn QString QServiceFilter::interfaceName() const
-
+
Returns the interface name for this filter.
\sa setInterface()
@@ -306,7 +307,7 @@ QString QServiceFilter::interfaceName() const
/*!
\fn int QServiceFilter::majorVersion() const
-
+
Returns the major interface version for this filter.
\sa setInterface()
@@ -318,7 +319,7 @@ int QServiceFilter::majorVersion() const
/*!
\fn int QServiceFilter::minorVersion() const
-
+
Returns the minor interface version for this filter.
\sa setInterface()
@@ -330,9 +331,9 @@ int QServiceFilter::minorVersion() const
/*!
\fn void QServiceFilter::setCustomAttribute(const QString& key, const QString& value)
-
+
The filter only matches implementations which have the custom attribute
- \a key with the given \a value. Such constraints are specified via the
+ \a key with the given \a value. Such constraints are specified via the
\i{<customproperty>} tag within the service xml.
\sa customAttribute(), clearCustomAttribute()
@@ -344,7 +345,7 @@ void QServiceFilter::setCustomAttribute(const QString& key, const QString& value
/*!
\fn QString QServiceFilter::customAttribute(const QString& key) const
-
+
Returns the value for the custom attribute \a key; otherwise
returns a null string.
@@ -357,7 +358,7 @@ QString QServiceFilter::customAttribute(const QString& key) const
/*!
\fn void QServiceFilter::clearCustomAttribute(const QString &key)
-
+
Clears the custom attribute \a key from the filter's set of constraints.
If \a key is empty all custom attributes are cleared.
@@ -373,7 +374,7 @@ void QServiceFilter::clearCustomAttribute(const QString &key)
/*!
\fn QServiceFilter::VersionMatchRule QServiceFilter::versionMatchRule() const
-
+
Returns the version match rule for this filter.
\sa setInterface()
@@ -385,7 +386,7 @@ QServiceFilter::VersionMatchRule QServiceFilter::versionMatchRule() const
/*!
\fn QList<QString> QServiceFilter::customAttributes() const
-
+
Returns the list of custom keys which have been added to the filter.
*/
QStringList QServiceFilter::customAttributes() const
@@ -395,11 +396,11 @@ QStringList QServiceFilter::customAttributes() const
/*!
\fn void QServiceFilter::setCapabilities(QServiceFilter::CapabilityMatchRule rule, const QStringList& capabilities )
-
+
Sets the list of \a capabilities which are used to constrain
searches for services. The capabilities are matched according
to the given \a rule.
-
+
\sa capabilities(), QAbstractSecuritySession
*/
void QServiceFilter::setCapabilities(QServiceFilter::CapabilityMatchRule rule, const QStringList& capabilities )
@@ -410,7 +411,7 @@ void QServiceFilter::setCapabilities(QServiceFilter::CapabilityMatchRule rule, c
/*!
\fn QStringList QServiceFilter::capabilities() const
-
+
Returns the list of capabilities which are used to limit services searches.
The filter matches any services that requires the given or less
@@ -435,7 +436,7 @@ QServiceFilter::CapabilityMatchRule QServiceFilter::capabilityMatchRule() const
}
#ifndef QT_NO_DATASTREAM
-/*!
+/*!
\fn QDataStream &operator<<(QDataStream &out, const QServiceFilter &sf)
\relates QServiceFilter
diff --git a/src/serviceframework/qserviceinterfacedescriptor.cpp b/src/serviceframework/qserviceinterfacedescriptor.cpp
index 7d86fcb9bc..617b70486d 100644
--- a/src/serviceframework/qserviceinterfacedescriptor.cpp
+++ b/src/serviceframework/qserviceinterfacedescriptor.cpp
@@ -54,32 +54,33 @@ QTM_BEGIN_NAMESPACE
\ingroup servicefw
\inmodule QtServiceFramework
\brief The QServiceInterfaceDescriptor class identifies a service implementation.
+ \since 1.0
- A service can implement multiple interfaces and each interface can have multiple implementations.
+ A service can implement multiple interfaces and each interface can have multiple implementations.
The QServiceInterfaceDescriptor class enscapsulates this information, as illustrated
by the diagram below.
\image qserviceinterfacedescriptor.png Service-Interface-Implementation
The major version tag indicates the interface version and the minor version tag identifies the implementation
- version. Subsequent versions of the same interface must be binary compatible to previous versions
- of the same interface.
+ version. Subsequent versions of the same interface must be binary compatible to previous versions
+ of the same interface.
In the above example service A and B implement the interface \i com.nokia.qt.x.
- In fact Service A provides two different implementations for the very same interface.
- This is indicated by the changed minor version number. Although Service B is
+ In fact Service A provides two different implementations for the very same interface.
+ This is indicated by the changed minor version number. Although Service B is
using the same interface it's implementation actually utilizes the second version of
- the interface \i com.nokia.qt.x. Binary compatibility guarantees that clients
+ the interface \i com.nokia.qt.x. Binary compatibility guarantees that clients
who know version 1 can utilize version 2. If an existing interface has to be changed
in a non-compatible way a new interface (name) is required.
\section1 Namespaces
- A QServiceInterfaceDescriptor (the quadruble of service name,
- interface name, interface version and implementation version) uniquely
- identifies a service implementation on a device. Interface names follow
+ A QServiceInterfaceDescriptor (the quadruble of service name,
+ interface name, interface version and implementation version) uniquely
+ identifies a service implementation on a device. Interface names follow
the java namespace convention.
-
+
The namespace \i com.nokia.qt.* is reserved for future Qt development.
\sa QServiceFilter, QServiceManager
@@ -93,19 +94,19 @@ QTM_BEGIN_NAMESPACE
\value Capabilities The capabilities attribute is a QStringList and
describes the capabilities that a service client
- would require to use the service if capability
+ would require to use the service if capability
checks are enforced.
\value Location This attribute points to either the location
where the plug-in providing this service is stored or
where the name of the service IPC path is found.
If the service is plug-in based the location is the
- name and/or path of the plugin. If the service is
+ name and/or path of the plugin. If the service is
IPC based the location is the name of the socket address.
\value ServiceDescription This attribute provides a general description for
the service.
- \value InterfaceDescription This attribute provides a description for the interface
+ \value InterfaceDescription This attribute provides a description for the interface
implementation.
- \value ServiceType This attribute specifies the QService::Type that the
+ \value ServiceType This attribute specifies the QService::Type that the
service is being provided.
*/
@@ -137,14 +138,14 @@ QServiceInterfaceDescriptor::QServiceInterfaceDescriptor(const QServiceInterface
/*!
\fn QServiceInterfaceDescriptor& QServiceInterfaceDescriptor::operator=(const QServiceInterfaceDescriptor& other)
-
- Copies the content of the QServiceInterfaceDescriptor object contained
+
+ Copies the content of the QServiceInterfaceDescriptor object contained
in \a other into this one.
*/
QServiceInterfaceDescriptor& QServiceInterfaceDescriptor::operator=(const QServiceInterfaceDescriptor& other)
{
if ( !other.isValid() ) {
- if (d)
+ if (d)
delete d;
d = 0;
return *this;
@@ -159,8 +160,8 @@ QServiceInterfaceDescriptor& QServiceInterfaceDescriptor::operator=(const QServi
/*!
\fn bool QServiceInterfaceDescriptor::operator==(const QServiceInterfaceDescriptor& other) const
-
- Compares a QServiceInterfaceDescriptor to \a other. Returns true if they
+
+ Compares a QServiceInterfaceDescriptor to \a other. Returns true if they
are equal and false otherwise.
*/
bool QServiceInterfaceDescriptor::operator==(const QServiceInterfaceDescriptor& other) const
@@ -185,7 +186,7 @@ bool QServiceInterfaceDescriptor::operator==(const QServiceInterfaceDescriptor&
/*!
\fn bool QServiceInterfaceDescriptor::isValid() const
-
+
Returns true if this descriptor is valid; otherwise returns false.
*/
bool QServiceInterfaceDescriptor::isValid() const
@@ -195,7 +196,7 @@ bool QServiceInterfaceDescriptor::isValid() const
/*!
\fn bool QServiceInterfaceDescriptor::scope() const
-
+
Returns true if this implementation is provided for all users on the system.
\sa QService::Scope
@@ -207,7 +208,7 @@ QService::Scope QServiceInterfaceDescriptor::scope() const
/*!
\fn QString QServiceInterfaceDescriptor::serviceName() const
-
+
Returns the name of service that provides this implementation.
*/
QString QServiceInterfaceDescriptor::serviceName() const
@@ -217,7 +218,7 @@ QString QServiceInterfaceDescriptor::serviceName() const
/*!
\fn QString QServiceInterfaceDescriptor::interfaceName() const
-
+
Returns the name of the interface that is implemented.
*/
QString QServiceInterfaceDescriptor::interfaceName() const
@@ -227,10 +228,10 @@ QString QServiceInterfaceDescriptor::interfaceName() const
/*!
\fn int QServiceInterfaceDescriptor::majorVersion() const
-
- Returns the version of the interface.
-
- Subsequent versions of an interface are binary compatible
+
+ Returns the version of the interface.
+
+ Subsequent versions of an interface are binary compatible
to previous versions of the same interface. If an interface
is broken it must use a new interface name.
*/
@@ -241,8 +242,8 @@ int QServiceInterfaceDescriptor::majorVersion() const
/*!
\fn int QServiceInterfaceDescriptor::minorVersion() const
-
- Returns the version of the implementation.
+
+ Returns the version of the implementation.
*/
int QServiceInterfaceDescriptor::minorVersion() const
{
@@ -251,8 +252,8 @@ int QServiceInterfaceDescriptor::minorVersion() const
/*!
\fn QVariant QServiceInterfaceDescriptor::attribute(QServiceInterfaceDescriptor::Attribute which) const
-
- Returns the value for the attribute \a which; otherwise returns
+
+ Returns the value for the attribute \a which; otherwise returns
an invalid QVariant.
*/
QVariant QServiceInterfaceDescriptor::attribute(QServiceInterfaceDescriptor::Attribute which) const
@@ -264,8 +265,8 @@ QVariant QServiceInterfaceDescriptor::attribute(QServiceInterfaceDescriptor::Att
/*!
\fn QString QServiceInterfaceDescriptor::customAttribute(const QString& which) const
-
- Returns the value for the custom attribute \a which; otherwise
+
+ Returns the value for the custom attribute \a which; otherwise
returns a null string.
*/
QString QServiceInterfaceDescriptor::customAttribute(const QString& which) const
@@ -318,7 +319,7 @@ QDataStream &operator>>(QDataStream &in, QServiceInterfaceDescriptor::Attribute
k = (QServiceInterfaceDescriptor::Attribute)key;
return in;
}
-/*!
+/*!
\fn QDataStream &operator<<(QDataStream &out, const QServiceInterfaceDescriptor &dc)
\relates QServiceInterfaceDescriptor
@@ -335,7 +336,7 @@ QDataStream &operator<<(QDataStream &out, const QServiceInterfaceDescriptor &dc)
out << magicNumber << majorVersion << minorVersion;
out << valid;
if (valid) {
- out << dc.d->serviceName;
+ out << dc.d->serviceName;
out << dc.d->interfaceName;
out << dc.d->major;
out << dc.d->minor;
@@ -362,7 +363,7 @@ QDataStream &operator>>(QDataStream &in, QServiceInterfaceDescriptor &dc)
qWarning() << "Datastream doesn't provide searialized QServiceInterfaceDescriptor";
return in;
}
-
+
const quint16 currentMajorVersion = 1;
quint16 majorVersion = 0;
quint16 minorVersion = 0;
diff --git a/src/serviceframework/qservicemanager.cpp b/src/serviceframework/qservicemanager.cpp
index e1670728d8..584e488cf8 100644
--- a/src/serviceframework/qservicemanager.cpp
+++ b/src/serviceframework/qservicemanager.cpp
@@ -87,7 +87,7 @@ static QString qservicemanager_resolveLibraryPath(const QString &libNameOrPath)
return libPath;
}
#else
- QLibrary lib(libPath);
+ QLibrary lib(libPath);
if (lib.load()) {
lib.unload();
return lib.fileName();
@@ -205,6 +205,7 @@ private slots:
\inmodule QtServiceFramework
\brief The QServiceManager class enables the loading of service plugins
and the (de)registration of services.
+ \since 1.0
A service is a stand-alone component that can be used by multiple clients.
Each service implementation must derive from QObject. Clients request a
@@ -399,7 +400,7 @@ QObject* QServiceManager::loadInterface(const QServiceInterfaceDescriptor& descr
}
const QString location = descriptor.attribute(QServiceInterfaceDescriptor::Location).toString();
- const bool isInterProcess = (descriptor.attribute(QServiceInterfaceDescriptor::ServiceType).toInt()
+ const bool isInterProcess = (descriptor.attribute(QServiceInterfaceDescriptor::ServiceType).toInt()
== QService::InterProcess);
if (isInterProcess) {
//ipc service
@@ -492,7 +493,7 @@ QObject* QServiceManager::loadInterface(const QServiceInterfaceDescriptor& descr
the service manager will not perform any checks. Therefore it is assumed that
the service manager client is trusted as it controls whether service capabilities
are enforced during service loading.
-
+
\sa setInterfaceDefault(), interfaceDefault()
*/
@@ -579,7 +580,7 @@ bool QServiceManager::addService(QIODevice *device)
ServiceMetaDataResults results = parser.parseResults();
bool result = d->dbManager->registerService(results, scope);
-
+
if (results.type == QService::InterProcess)
return result;
@@ -658,7 +659,7 @@ bool QServiceManager::removeService(const QString& serviceName)
DatabaseManager::UserOnlyScope : DatabaseManager::SystemScope)) {
d->setError();
return false;
- }
+ }
return true;
}
diff --git a/src/serviceframework/qserviceplugininterface.cpp b/src/serviceframework/qserviceplugininterface.cpp
index 47af95782b..b5a3826db2 100644
--- a/src/serviceframework/qserviceplugininterface.cpp
+++ b/src/serviceframework/qserviceplugininterface.cpp
@@ -48,28 +48,29 @@ QTM_BEGIN_NAMESPACE
\inmodule QtServiceFramework
\brief The QServicePluginInterface class defines the interface
that every plug-in based service must implement.
+ \since 1.0
*/
/*!
\internal
*/
-QServicePluginInterface::QServicePluginInterface()
+QServicePluginInterface::QServicePluginInterface()
{
}
/*!
\internal
*/
-QServicePluginInterface::~QServicePluginInterface()
+QServicePluginInterface::~QServicePluginInterface()
{
}
-
+
/*!
\fn QObject* QServicePluginInterface::createInstance(const QServiceInterfaceDescriptor& descriptor, QServiceContext* context,
QAbstractSecuritySession* securitySession)
Creates a new instance of the service specified by \a descriptor. The service
- may use the given \a context and \a securitySession. \a context and \a securitySession object are owned
+ may use the given \a context and \a securitySession. \a context and \a securitySession object are owned
by the client of the service.
This function returns a null pointer if the plug-in doesn't
@@ -82,17 +83,17 @@ QServicePluginInterface::~QServicePluginInterface()
This function is called by QServiceManager as part of the service registration process. It can be
used to initialize the environment or the creation of external settings files which may be required
during the execution of the service.
-
+
The default implementation for this function does nothing.
\sa QServiceManager::addService()
*/
-void QServicePluginInterface::installService()
+void QServicePluginInterface::installService()
{
}
/*!
- \fn bool QServicePluginInterface::uninstallService()
+ \fn bool QServicePluginInterface::uninstallService()
This function is called bu QServiceManager as part of the deregistration process for services. This
gives the service the possibility to perform cleanup operations such as the removal of setting files
@@ -103,7 +104,7 @@ void QServicePluginInterface::installService()
\sa QServiceManager::removeService()
*/
-void QServicePluginInterface::uninstallService()
+void QServicePluginInterface::uninstallService()
{
}
diff --git a/src/serviceframework/servicemetadata.cpp b/src/serviceframework/servicemetadata.cpp
index 4e1d50d184..a0abaf5c1f 100644
--- a/src/serviceframework/servicemetadata.cpp
+++ b/src/serviceframework/servicemetadata.cpp
@@ -52,13 +52,13 @@
#define XML_MAX "1.1"
//Service related
-#define SERVICE_TAG "service"
+#define SERVICE_TAG "service"
#define SERVICE_FILEPATH "filepath"
#define SERVICE_IPCADDRESS "ipcaddress"
//Interface related
#define INTERFACE_TAG "interface"
-#define INTERFACE_VERSION "version"
+#define INTERFACE_VERSION "version"
#define INTERFACE_CAPABILITY "capabilities"
#define INTERFACE_CUSTOM_PROPERTY "customproperty"
@@ -88,9 +88,11 @@ QDataStream &operator>>(QDataStream &in, ServiceMetaDataResults &r)
/*
\class ServiceMetaData
- Utility class (used by service database) that offers support for
+ \since 1.0
+
+ Utility class (used by service database) that offers support for
parsing metadata service xml registry file during service registration. \n
-
+
It uses QXMLStreamReader class for parsing. Supproted Operations are:
- Parse the service and interfaces defined in XML file
- name, version, capabilitiesList, description and filePath of service can be retrieved
@@ -100,7 +102,7 @@ QDataStream &operator>>(QDataStream &in, ServiceMetaDataResults &r)
/*
* Class constructor
*
- * @param aXmlFilePath path to the xml file that describes the service.
+ * @param aXmlFilePath path to the xml file that describes the service.
*/
ServiceMetaData::ServiceMetaData(const QString &aXmlFilePath)
{
@@ -123,7 +125,7 @@ ServiceMetaData::ServiceMetaData(QIODevice *device)
/*
* Class destructor
- *
+ *
*/
ServiceMetaData::~ServiceMetaData()
{
@@ -158,7 +160,7 @@ QIODevice *ServiceMetaData::device() const
{
return serviceName;
}*/
-
+
/*
* Gets the path of the service implementation file
*
@@ -168,7 +170,7 @@ QIODevice *ServiceMetaData::device() const
{
return serviceLocation;
}*/
-
+
/*
* Gets the service description
*
@@ -178,7 +180,7 @@ QIODevice *ServiceMetaData::device() const
{
return serviceDescription;
}*/
-
+
/*
Returns the metadata of the interace at \a index; otherwise
returns 0.
@@ -219,7 +221,7 @@ bool ServiceMetaData::extractMetadata()
Q_ASSERT(checkVersion(XML_MAX));
latestError = 0;
- clearMetadata();
+ clearMetadata();
QXmlStreamReader xmlReader;
bool parseError = false;
//Open xml file
@@ -229,7 +231,7 @@ bool ServiceMetaData::extractMetadata()
} else {
//Load xml content
xmlReader.setDevice(xmlDevice);
- // Read XML doc
+ // Read XML doc
while (!xmlReader.atEnd() && !parseError) {
xmlReader.readNext();
//Found <SFW> xml versioning tag introduced in 1.1
@@ -258,7 +260,7 @@ bool ServiceMetaData::extractMetadata()
if (ownsXmlDevice)
xmlDevice->close();
}
-
+
if (parseError) {
//provide better error reports
switch (latestError) {
@@ -290,7 +292,7 @@ bool ServiceMetaData::extractMetadata()
qDebug() << "Not a valid service xml";
break;
case SFW_ERROR_PARSE_SERVICE: /* Error parsing service node */
- qDebug().nospace() << "Invalid tag within <service> with the supplied version("
+ qDebug().nospace() << "Invalid tag within <service> with the supplied version("
<< xmlVersion << ")";
break;
case SFW_ERROR_PARSE_INTERFACE: /* Error parsing interface node */
@@ -321,11 +323,11 @@ bool ServiceMetaData::extractMetadata()
qDebug() << "Invalid or missing version attribute in <SFW> tag";
break;
case SFW_ERROR_UNSUPPORTED_IPC: /* Servicefw version doesn't support IPC */
- qDebug().nospace() << "Supplied service framework version(" << xmlVersion
+ qDebug().nospace() << "Supplied service framework version(" << xmlVersion
<< ") doesn't support the <ipcaddress> tag";
break;
case SFW_ERROR_UNSUPPORTED_XML_VERSION: /* Unsupported servicefw version supplied */
- qDebug().nospace() << "Service framework version(" << xmlVersion
+ qDebug().nospace() << "Service framework version(" << xmlVersion
<< ") is higher than available support(" << QString(XML_MAX) << ")";
break;
}
@@ -333,7 +335,7 @@ bool ServiceMetaData::extractMetadata()
}
return !parseError;
}
-
+
/*
Gets the latest parsing error \n
@return parsing error(negative value) or 0 in case there is none
@@ -342,7 +344,7 @@ int ServiceMetaData::getLatestError() const
{
return latestError;
}
-
+
/*
Parses the service framework xml version tag and continues to parse the service
*/
@@ -350,7 +352,7 @@ bool ServiceMetaData::processVersionElement(QXmlStreamReader &aXMLReader)
{
Q_ASSERT(aXMLReader.isStartElement() && aXMLReader.name() == SERVICEFW_TAG);
bool parseError = false;
-
+
if (aXMLReader.attributes().hasAttribute("version")) {
xmlVersion = aXMLReader.attributes().value("version").toString();
bool success = checkVersion(xmlVersion);
@@ -376,11 +378,11 @@ bool ServiceMetaData::processVersionElement(QXmlStreamReader &aXMLReader)
if (!processServiceElement(aXMLReader)) {
parseError = true;
}
- }
+ }
else if (aXMLReader.isEndElement() && aXMLReader.name() == SERVICEFW_TAG) {
//Found </SFW>, leave the loop
break;
- }
+ }
else if (aXMLReader.isStartElement() && aXMLReader.name() != SERVICE_TAG) {
latestError = ServiceMetaData::SFW_ERROR_NO_SERVICE;
parseError = true;
@@ -442,8 +444,8 @@ bool ServiceMetaData::processServiceElement(QXmlStreamReader &aXMLReader)
parseError = true;
}
} else if (aXMLReader.isStartElement() && aXMLReader.name() == INTERFACE_TAG) {
- //Found interface> node, read module related metadata
- if (!processInterfaceElement(aXMLReader))
+ //Found interface> node, read module related metadata
+ if (!processInterfaceElement(aXMLReader))
parseError = true;
} else if (aXMLReader.isStartElement() && aXMLReader.name() == "version") {
//Found <version> tag on service level. We ignore this for now
@@ -453,7 +455,7 @@ bool ServiceMetaData::processServiceElement(QXmlStreamReader &aXMLReader)
break;
} else if (aXMLReader.isEndElement() || aXMLReader.isStartElement()) {
latestError = ServiceMetaData::SFW_ERROR_PARSE_SERVICE;
- parseError = true;
+ parseError = true;
} else if (aXMLReader.tokenType() == QXmlStreamReader::Invalid) {
latestError = ServiceMetaData::SFW_ERROR_INVALID_XML_FILE;
parseError = true;
@@ -520,7 +522,7 @@ bool ServiceMetaData::processInterfaceElement(QXmlStreamReader &aXMLReader)
0 //->description
};
aInterface.d = new QServiceInterfaceDescriptorPrivate;
-
+
while (!parseError && !aXMLReader.atEnd()) {
aXMLReader.readNext();
//Read interface description
@@ -594,7 +596,7 @@ bool ServiceMetaData::processInterfaceElement(QXmlStreamReader &aXMLReader)
parseError = true;
}
}
-
+
for(int i=0;!parseError && i<4;i++) {
if (dupITags[i] > 1) {
parseError = true;
@@ -665,7 +667,7 @@ bool ServiceMetaData::greaterThan(const QString &v1, const QString &v2) const
int minorV2 = -1;
transformVersion(v2, &majorV2, &minorV2);
- return (majorV1 > majorV2
+ return (majorV1 > majorV2
|| (majorV1 == majorV2 && minorV1 > minorV2));
}
diff --git a/src/systeminfo/linux/qsysteminfo_linux.cpp b/src/systeminfo/linux/qsysteminfo_linux.cpp
index c6f080d339..077c13eae4 100644
--- a/src/systeminfo/linux/qsysteminfo_linux.cpp
+++ b/src/systeminfo/linux/qsysteminfo_linux.cpp
@@ -87,7 +87,7 @@
QTM_BEGIN_NAMESPACE
QSystemInfoPrivate::QSystemInfoPrivate(QSystemInfoLinuxCommonPrivate *parent)
- : QSystemInfoLinuxCommonPrivate(parent)
+ : QSystemInfoLinuxCommonPrivate(parent)
{
}
@@ -100,19 +100,19 @@ QStringList QSystemInfoPrivate::availableLanguages() const
QDir transDir(QLibraryInfo::location (QLibraryInfo::TranslationsPath));
QStringList langList;
- if(transDir.exists()) {
- QStringList localeList = transDir.entryList( QStringList() << QLatin1String("qt_*.qm") ,QDir::Files
- | QDir::NoDotAndDotDot, QDir::Name);
+ if (transDir.exists()) {
+ QStringList localeList = transDir.entryList(QStringList() << QLatin1String("qt_*.qm"),
+ QDir::Files | QDir::NoDotAndDotDot, QDir::Name);
foreach (const QString &localeName, localeList) {
- const QString lang = localeName.mid(3,2);
- if(!langList.contains(lang) && !lang.isEmpty() && !lang.contains(QLatin1String("help"))) {
+ const QString lang = localeName.mid(3, 2);
+ if (!langList.contains(lang) && !lang.isEmpty() && !lang.contains(QLatin1String("help")))
langList <<lang;
- }
}
- if(langList.count() > 0) {
+
+ if (langList.count() > 0)
return langList;
- }
}
+
return QStringList() << currentLanguage();
}
@@ -461,7 +461,7 @@ QString QSystemNetworkInfoPrivate::networkName(QSystemNetworkInfo::NetworkMode m
}
QSystemDisplayInfoPrivate::QSystemDisplayInfoPrivate(QSystemDisplayInfoLinuxCommonPrivate *parent)
- : QSystemDisplayInfoLinuxCommonPrivate(parent)
+ : QSystemDisplayInfoLinuxCommonPrivate(parent)
{
}
@@ -469,20 +469,6 @@ QSystemDisplayInfoPrivate::~QSystemDisplayInfoPrivate()
{
}
-float QSystemDisplayInfoPrivate::contrast(int screen)
-{
- Q_UNUSED(screen);
-
- return 0.0;
-}
-
-
-QSystemDisplayInfo::BacklightState QSystemDisplayInfoPrivate::backlightStatus(int screen)
-{
- Q_UNUSED(screen)
- return QSystemDisplayInfo::BacklightStateUnknown;
-}
-
QSystemDeviceInfoPrivate::QSystemDeviceInfoPrivate(QSystemDeviceInfoLinuxCommonPrivate *parent)
: QSystemDeviceInfoLinuxCommonPrivate(parent)
{
diff --git a/src/systeminfo/linux/qsysteminfo_linux_common.cpp b/src/systeminfo/linux/qsysteminfo_linux_common.cpp
index c09a32ac66..5301582e4a 100644
--- a/src/systeminfo/linux/qsysteminfo_linux_common.cpp
+++ b/src/systeminfo/linux/qsysteminfo_linux_common.cpp
@@ -48,7 +48,6 @@
#include <QCryptographicHash>
#include <QVariantMap>
#include <QProcess>
-
#if !defined(QT_NO_DBUS)
#include "qhalservice_linux_p.h"
#include <QtDBus/QtDBus>
@@ -62,6 +61,7 @@
#include <QtDBus/QDBusPendingCall>
#endif
+#include <QApplication>
#include <QDesktopWidget>
#include <locale.h>
@@ -175,42 +175,56 @@ static struct fb_var_screeninfo* allocFrameBufferInfo(int screen)
QTM_BEGIN_NAMESPACE
-QSystemInfoLinuxCommonPrivate::QSystemInfoLinuxCommonPrivate(QObject *parent) : QObject(parent)
+QSystemInfoLinuxCommonPrivate::QSystemInfoLinuxCommonPrivate(QObject *parent)
+ : QObject(parent)
+ , langTimer(0)
{
- halIsAvailable = halAvailable();
- langCached = currentLanguage();
}
QSystemInfoLinuxCommonPrivate::~QSystemInfoLinuxCommonPrivate()
{
}
-void QSystemInfoLinuxCommonPrivate::startLanguagePolling()
+void QSystemInfoLinuxCommonPrivate::connectNotify(const char *signal)
{
- QString checkLang = QString::fromLocal8Bit(qgetenv("LANG"));
- if (langCached.isEmpty()) {
- currentLanguage();
+ if (QLatin1String(signal) == SIGNAL(currentLanguageChanged(QString))) {
+ if (!langTimer) {
+ currentLang = currentLanguage();
+ langTimer = new QTimer(this);
+ connect(langTimer, SIGNAL(timeout()), this, SLOT(pollCurrentLanguage()));
+ langTimer->start(5000);
+ }
}
- checkLang = checkLang.left(2);
- if (checkLang != langCached) {
- emit currentLanguageChanged(checkLang);
- langCached = checkLang;
+}
+
+void QSystemInfoLinuxCommonPrivate::disconnectNotify(const char *signal)
+{
+ if (QLatin1String(signal) == SIGNAL(currentLanguageChanged(QString))) {
+ currentLang.clear();
+ langTimer->stop();
}
- langTimer = new QTimer(this);
- QTimer::singleShot(5000, this, SLOT(startLanguagePolling()));
+}
+
+void QSystemInfoLinuxCommonPrivate::pollCurrentLanguage()
+{
+ QString oldLang = currentLang;
+ currentLang = currentLanguage();
+ if (oldLang != currentLang)
+ Q_EMIT currentLanguageChanged(currentLang);
}
QString QSystemInfoLinuxCommonPrivate::currentLanguage() const
{
QString lang;
- if (langCached.isEmpty()) {
- lang = QLocale::system().name().left(2);
- if (lang.isEmpty() || lang == QLatin1String("C")) {
+
+ if (currentLang.isEmpty()) {
+ lang = QLocale::system().name().left(2);
+ if (lang.isEmpty() || lang == QLatin1String("C"))
lang = QLatin1String("en");
- }
} else {
- lang = langCached;
+ lang = currentLang;
}
+
return lang;
}
@@ -228,323 +242,304 @@ bool QSystemInfoLinuxCommonPrivate::fmTransmitterAvailable()
memset(&capability, 0, sizeof(struct v4l2_capability));
if (-1 != (fd = open(device, O_RDWR)) && (-1 != ioctl(fd, VIDIOC_QUERYCAP, &capability))) {
- if ((capability.capabilities & (V4L2_CAP_RADIO | V4L2_CAP_MODULATOR)) ==
- (V4L2_CAP_RADIO | V4L2_CAP_MODULATOR)) {
+ if ((capability.capabilities & (V4L2_CAP_RADIO | V4L2_CAP_MODULATOR))
+ == (V4L2_CAP_RADIO | V4L2_CAP_MODULATOR)) {
available = true;
}
}
if (fd != -1) {
- close(fd), fd = -1;
+ close(fd);
+ fd = -1;
}
}
-#endif
+#endif // __LINUX_VIDEODEV2_H
return available;
}
bool QSystemInfoLinuxCommonPrivate::hasFeatureSupported(QSystemInfo::Feature feature)
{
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- QUdevService udevService;
+ QUdevService udevService;
#endif
- bool featureSupported = false;
- switch (feature) {
- case QSystemInfo::BluetoothFeature :
- {
+
+ bool featureSupported = false;
+ switch (feature) {
+ case QSystemInfo::BluetoothFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_BLUETOOTH);
-#endif
- const QString sysPath = "/sys/class/bluetooth/";
- const QDir sysDir(sysPath);
- QStringList filters;
- filters << "*";
- const QStringList sysList = sysDir.entryList( filters ,QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
- foreach (const QString &dir, sysList) {
- const QFileInfo btFile(sysPath + dir+"/address");
- if (btFile.exists()) {
- return true;
- }
- }
- }
- break;
- case QSystemInfo::CameraFeature :
- {
+ return udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_BLUETOOTH);
+#endif
+ const QString sysPath("/sys/class/bluetooth/");
+ const QDir sysDir(sysPath);
+ QStringList filters;
+ filters << "*";
+ const QStringList sysList = sysDir.entryList(filters, QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
+ foreach (const QString &dir, sysList) {
+ const QFileInfo btFile(sysPath + dir + "/address");
+ if (btFile.exists())
+ return true;
+ }
+ break;
+ }
+
+ case QSystemInfo::CameraFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isPropertyAvailable(UDEV_PROPERTY_V4L_CAP, "*:capture:*");
+ return udevService.isPropertyAvailable(UDEV_PROPERTY_V4L_CAP, "*:capture:*");
#endif
#if !defined(QT_NO_DBUS)
- featureSupported = hasHalUsbFeature(0x06); // image
- if (featureSupported)
- return featureSupported;
- #endif
- featureSupported = hasSysFeature("video");
- }
- break;
- case QSystemInfo::FmradioFeature :
- {
+ featureSupported = hasHalUsbFeature(0x06); // image
+ if (featureSupported)
+ return featureSupported;
+ #endif // QT_NO_DBUS
+ featureSupported = hasSysFeature("video");
+ break;
+ }
+
+ case QSystemInfo::FmradioFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isPropertyAvailable(UDEV_PROPERTY_V4L_CAP, "*:radio:*");
-#endif
- const QString sysPath = "/sys/class/video4linux/";
- const QDir sysDir(sysPath);
- QStringList filters;
- filters << "*";
- QStringList sysList = sysDir.entryList( filters ,QDir::Dirs, QDir::Name);
- foreach (const QString &dir, sysList) {
- if (dir.contains("radio")) {
- featureSupported = true;
- }
- }
- }
- break;
- case QSystemInfo::IrFeature :
- {
+ return udevService.isPropertyAvailable(UDEV_PROPERTY_V4L_CAP, "*:radio:*");
+#endif
+ const QString sysPath("/sys/class/video4linux/");
+ const QDir sysDir(sysPath);
+ QStringList filters;
+ filters << "*";
+ QStringList sysList = sysDir.entryList(filters, QDir::Dirs, QDir::Name);
+ foreach (const QString &dir, sysList) {
+ if (dir.contains("radio"))
+ featureSupported = true;
+ }
+ break;
+ }
+
+ case QSystemInfo::IrFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, "*irda*");
+ return udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, "*irda*");
#endif
- #if !defined(QT_NO_DBUS)
- featureSupported = hasHalUsbFeature(0xFE);
- if (featureSupported)
- return featureSupported;
- #endif
- featureSupported = hasSysFeature("irda"); //?
- }
- break;
- case QSystemInfo::LedFeature :
- {
+#if !defined(QT_NO_DBUS)
+ featureSupported = hasHalUsbFeature(0xFE);
+ if (featureSupported)
+ return featureSupported;
+#endif
+ featureSupported = hasSysFeature("irda"); //?
+ break;
+ }
+
+ case QSystemInfo::LedFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_LEDS);
+ return udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_LEDS);
#endif
- featureSupported = hasSysFeature("led"); //?
- }
- break;
- case QSystemInfo::MemcardFeature :
- {
+ featureSupported = hasSysFeature("led"); //?
+ break;
+ }
+
+ case QSystemInfo::MemcardFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- bool ok = udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_MEMCARD);
- if (!ok) {
+ bool ok = udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_MEMCARD);
+ if (!ok) {
#if !defined(QT_NO_DBUS)
#if !defined(QT_NO_UDISKS)
- // try harder
- //this only works when a drive is in
- if (udisksAvailable()) {
- QUDisksInterface udisksIface;
- foreach (const QDBusObjectPath &device,udisksIface.enumerateDevices() ) {
- QUDisksDeviceInterface devIface(device.path());
- if (devIface.deviceIsDrive()) {
- if (devIface.driveMedia().contains("flash")) {
- return true;
- }
- // just guess
- if (devIface.driveCanDetach() &&
- devIface.deviceIsRemovable()
- && !devIface.driveIsMediaEjectable()) {
- return true;
- }
- }
- }
- }
-#endif
+ // try harder
+ //this only works when a drive is in
+ if (udisksAvailable()) {
+ QUDisksInterface udisksIface;
+ foreach (const QDBusObjectPath &device, udisksIface.enumerateDevices() ) {
+ QUDisksDeviceInterface devIface(device.path());
+ if (devIface.deviceIsDrive()) {
+ if (devIface.driveMedia().contains("flash"))
+ return true;
+
+ // just guess
+ if (devIface.driveCanDetach() && devIface.deviceIsRemovable() && !devIface.driveIsMediaEjectable())
+ return true;
+ }
+ }
+ }
+#endif // QT_NO_UDISKS
+#endif // QT_NO_DBUS
+ }
+ return ok;
#endif
- }
- return ok;
+#if !defined(QT_NO_DBUS)
+ QHalInterface iface;
+ if (iface.isValid()) {
+ QHalInterface halIface;
+ const QStringList halDevices = halIface.findDeviceByCapability("mmc_host");
+ foreach (const QString &device, halDevices) {
+ QHalDeviceInterface ifaceDevice(device);
+ if (ifaceDevice.isValid()) {
+ if (ifaceDevice.getPropertyString("info.subsystem") == "mmc_host")
+ return true;
+ if (ifaceDevice.getPropertyBool("storage.removable"))
+ return true;
+ }
+ }
+ }
#endif
- #if !defined(QT_NO_DBUS)
- QHalInterface iface;
- if (iface.isValid()) {
- QHalInterface halIface;
- const QStringList halDevices = halIface.findDeviceByCapability("mmc_host");
- foreach (const QString &device, halDevices) {
- QHalDeviceInterface ifaceDevice(device);
- if (ifaceDevice.isValid()) {
- if (ifaceDevice.getPropertyString("info.subsystem") == "mmc_host") {
- return true;
- }
- if (ifaceDevice.getPropertyBool("storage.removable")) {
- return true;
- }
- }
- }
- }
- #endif
- }
- break;
- case QSystemInfo::UsbFeature :
- {
+ break;
+ }
+
+ case QSystemInfo::UsbFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- if (udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, UDEV_DRIVER_MUSB))
- return true;
- if(udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, UDEV_DRIVER_USB))
- return true;
- if(udevService.isPropertyAvailable(UDEV_PROPERTY_INTERFACE, "usb*"))
- return true;
+ if (udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, UDEV_DRIVER_MUSB))
+ return true;
+ if(udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, UDEV_DRIVER_USB))
+ return true;
+ if(udevService.isPropertyAvailable(UDEV_PROPERTY_INTERFACE, "usb*"))
+ return true;
#endif
- #if !defined(QT_NO_DBUS)
- featureSupported = hasHalDeviceFeature("usb");
- if (featureSupported)
- return featureSupported;
- #endif
- featureSupported = hasSysFeature("usb_host");
- }
- break;
- case QSystemInfo::VibFeature :
+#if !defined(QT_NO_DBUS)
+ featureSupported = hasHalDeviceFeature("usb");
+ if (featureSupported)
+ return featureSupported;
+#endif // QT_NO_DBUS
+ featureSupported = hasSysFeature("usb_host");
+ break;
+ }
+
+ case QSystemInfo::VibFeature:
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- if (udevService.isPropertyAvailable(UDEV_PROPERTY_NAME, "*vibra*"))
+ if (udevService.isPropertyAvailable(UDEV_PROPERTY_NAME, "*vibra*"))
+ return true;
+ if(udevService.isPropertyAvailable(UDEV_PROPERTY_NAME, "*Vibra*"))
return true;
- if(udevService.isPropertyAvailable(UDEV_PROPERTY_NAME, "*Vibra*"))
- return true;
-#endif
- #if !defined(QT_NO_DBUS)
- if (hasHalDeviceFeature("vibrator") || hasHalDeviceFeature("vib")) {
- return true;
- }
#endif
- break;
- case QSystemInfo::WlanFeature :
- {
+#if !defined(QT_NO_DBUS)
+ if (hasHalDeviceFeature("vibrator") || hasHalDeviceFeature("vib"))
+ return true;
+#endif // QT_NO_DBUS
+ break;
+
+ case QSystemInfo::WlanFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_WLAN);
+ return udevService.isSubsystemAvailable(UDEV_SUBSYSTEM_WLAN);
#endif
- #if !defined(QT_NO_DBUS)
- QHalInterface iface;
- if (iface.isValid()) {
- const QStringList list = iface.findDeviceByCapability("net.80211");
- if (!list.isEmpty()) {
- featureSupported = true;
- break;
- }
- }
- #endif
- featureSupported = hasSysFeature("80211");
- }
- break;
- case QSystemInfo::SimFeature :
- {
-#if !defined(QT_NO_CONNMAN)
- if (ofonoAvailable()) {
- QOfonoManagerInterface ofonoManager(this);
- QString modempath = ofonoManager.currentModem().path();
- if (!modempath.isEmpty()) {
- QOfonoSimInterface simInterface(modempath,this);
- return simInterface.isValid();
- }
- }
+#if !defined(QT_NO_DBUS)
+ QHalInterface iface;
+ if (iface.isValid()) {
+ const QStringList list = iface.findDeviceByCapability("net.80211");
+ if (!list.isEmpty()) {
+ featureSupported = true;
+ break;
+ }
+ }
#endif
+ featureSupported = hasSysFeature("80211");
+ break;
+ }
- }
- break;
- case QSystemInfo::LocationFeature :
+ case QSystemInfo::SimFeature: {
+#if !defined(QT_NO_CONNMAN)
+ if (ofonoAvailable()) {
+ QOfonoManagerInterface ofonoManager(this);
+ QString modempath = ofonoManager.currentModem().path();
+ if (!modempath.isEmpty()) {
+ QOfonoSimInterface simInterface(modempath, this);
+ return simInterface.isValid();
+ }
+ }
+#endif // QT_NO_CONNMAN
+ break;
+ }
+
+ case QSystemInfo::LocationFeature:
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, "*gps*");
+ return udevService.isPropertyAvailable(UDEV_PROPERTY_DRIVER, "*gps*");
#endif
- #if !defined(QT_NO_DBUS)
- featureSupported = hasHalDeviceFeature("gps"); //might not always be true
- if (featureSupported)
- return featureSupported;
+#if !defined(QT_NO_DBUS)
+ featureSupported = hasHalDeviceFeature("gps"); //might not always be true
+ if (featureSupported)
+ return featureSupported;
- #endif
- break;
- case QSystemInfo::VideoOutFeature :
- {
+#endif // QT_NO_DBUS
+ break;
+
+ case QSystemInfo::VideoOutFeature: {
#if !defined(Q_WS_MAEMO_6) && !defined(Q_WS_MAEMO_5) && defined(UDEV_SUPPORTED)
- return udevService.isPropertyAvailable(UDEV_PROPERTY_V4L_CAP, "*:video_output:*");
-#endif
- const QString sysPath = "/sys/class/video4linux/";
- const QDir sysDir(sysPath);
- QStringList filters;
- filters << "*";
- const QStringList sysList = sysDir.entryList( filters ,QDir::Dirs, QDir::Name);
- if (sysList.contains("video")) {
- featureSupported = true;
- }
- }
- break;
- case QSystemInfo::HapticsFeature:
-
- break;
- case QSystemInfo::FmTransmitterFeature:
- featureSupported = fmTransmitterAvailable();
- break;
- default:
- featureSupported = false;
- break;
- };
- return featureSupported;
- }
+ return udevService.isPropertyAvailable(UDEV_PROPERTY_V4L_CAP, "*:video_output:*");
+#endif
+ const QString sysPath("/sys/class/video4linux/");
+ const QDir sysDir(sysPath);
+ QStringList filters;
+ filters << "*";
+ const QStringList sysList = sysDir.entryList(filters, QDir::Dirs, QDir::Name);
+ if (sysList.contains("video"))
+ featureSupported = true;
+ break;
+ }
- #if !defined(QT_NO_DBUS)
- bool QSystemInfoLinuxCommonPrivate::hasHalDeviceFeature(const QString &param)
- {
- QHalInterface halIface;
- const QStringList halDevices = halIface.getAllDevices();
- foreach (const QString &device, halDevices) {
- if (device.contains(param)) {
- return true;
- }
- }
- return false;
- }
+ case QSystemInfo::HapticsFeature:
+ break;
- bool QSystemInfoLinuxCommonPrivate::hasHalUsbFeature(qint32 usbClass)
- {
- QHalInterface halIface;
- const QStringList halDevices = halIface.findDeviceByCapability("usb_device");
- foreach (const QString &device, halDevices) {
- QHalDeviceInterface ifaceDevice(device);
- if (ifaceDevice.isValid()) {
- if (ifaceDevice.getPropertyString("info.subsystem") == "usb_device") {
- if (ifaceDevice.getPropertyInt("usb.interface.class") == usbClass) {
- return true;
- }
- }
- }
- }
- return false;
+ case QSystemInfo::FmTransmitterFeature:
+ featureSupported = fmTransmitterAvailable();
+ break;
+
+ default:
+ featureSupported = false;
+ break;
+ };
+
+ return featureSupported;
}
- #endif
- QString QSystemInfoLinuxCommonPrivate::version(QSystemInfo::Version type,
- const QString &parameter)
- {
- QString errorStr = QLatin1String("Not Available");
+#if !defined(QT_NO_DBUS)
+bool QSystemInfoLinuxCommonPrivate::hasHalDeviceFeature(const QString &param)
+{
+ QHalInterface halIface;
+ const QStringList halDevices = halIface.getAllDevices();
+ foreach (const QString &device, halDevices) {
+ if (device.contains(param))
+ return true;
+ }
+ return false;
+}
- bool useDate = false;
- if (parameter == QLatin1String("versionDate")) {
- useDate = true;
- }
+bool QSystemInfoLinuxCommonPrivate::hasHalUsbFeature(qint32 usbClass)
+{
+ QHalInterface halIface;
+ const QStringList halDevices = halIface.findDeviceByCapability("usb_device");
+ foreach (const QString &device, halDevices) {
+ QHalDeviceInterface ifaceDevice(device);
+ if (ifaceDevice.isValid()) {
+ if (ifaceDevice.getPropertyString("info.subsystem") == "usb_device") {
+ if (ifaceDevice.getPropertyInt("usb.interface.class") == usbClass)
+ return true;
+ }
+ }
+ }
+ return false;
+}
+#endif // QT_NO_DBUS
- switch(type) {
- case QSystemInfo::Firmware :
- {
+QString QSystemInfoLinuxCommonPrivate::version(QSystemInfo::Version type, const QString &parameter)
+{
+ switch(type) {
+ case QSystemInfo::Firmware: {
#if !defined(QT_NO_DBUS)
- QHalDeviceInterface iface(QLatin1String("/org/freedesktop/Hal/devices/computer"));
- QString str;
- if (iface.isValid()) {
- str = iface.getPropertyString(QLatin1String("system.kernel.version"));
- if (!str.isEmpty()) {
- return str;
- }
- if (useDate) {
- str = iface.getPropertyString(QLatin1String("system.firmware.release_date"));
- if (!str.isEmpty()) {
- return str;
- }
- } else {
- str = iface.getPropertyString(QLatin1String("system.firmware.version"));
- if (str.isEmpty()) {
- if (!str.isEmpty()) {
- return str;
- }
- }
- }
- }
- break;
+ QHalDeviceInterface iface(QLatin1String("/org/freedesktop/Hal/devices/computer"));
+ QString str;
+ if (iface.isValid()) {
+ str = iface.getPropertyString(QLatin1String("system.kernel.version"));
+ if (!str.isEmpty())
+ return str;
+ if (parameter == "versionDate") {
+ str = iface.getPropertyString(QLatin1String("system.firmware.release_date"));
+ if (!str.isEmpty())
+ return str;
+ } else {
+ str = iface.getPropertyString(QLatin1String("system.firmware.version"));
+ if (str.isEmpty()) {
+ if (!str.isEmpty())
+ return str;
+ }
+ }
+ }
+ break;
#endif
- }
- case QSystemInfo::Os :
- {
+ }
- if(QFileInfo("/usr/bin/lsb_release").exists()) {
+ case QSystemInfo::Os: {
+ if (QFile::exists("/usr/bin/lsb_release")) {
QProcess syscall;
QString program = "/usr/bin/lsb_release";
QStringList arguments;
@@ -556,8 +551,8 @@ bool QSystemInfoLinuxCommonPrivate::hasFeatureSupported(QSystemInfo::Feature fea
return desc.simplified();
}
- QFile versionFile2(QLatin1String("/etc/issue"));
- if(!versionFile2.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ QFile versionFile2("/etc/issue");
+ if (!versionFile2.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "File not opened";
} else {
QString line;
@@ -571,13 +566,12 @@ bool QSystemInfoLinuxCommonPrivate::hasFeatureSupported(QSystemInfo::Feature fea
break;
} while (!line.isNull());
versionFile2.close();
- if(!strvalue.isEmpty()) {
+ if(!strvalue.isEmpty())
return strvalue;
- }
}
QFile versionFile3(QLatin1String("/proc/version"));
- if(!versionFile3.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ if (!versionFile3.open(QIODevice::ReadOnly | QIODevice::Text)) {
qDebug() << "File not opened";
} else {
QString strvalue;
@@ -585,15 +579,18 @@ bool QSystemInfoLinuxCommonPrivate::hasFeatureSupported(QSystemInfo::Feature fea
versionFile3.close();
return strvalue;
}
+
break;
}
+
case QSystemInfo::QtCore :
- return QLatin1String(qVersion());
- break;
- default:
- break;
+ return QString(qVersion());
+
+ default:
+ break;
};
- return errorStr;
+
+ return QString("Not Available");
}
QString QSystemInfoLinuxCommonPrivate::currentCountryCode() const
@@ -603,18 +600,17 @@ QString QSystemInfoLinuxCommonPrivate::currentCountryCode() const
bool QSystemInfoLinuxCommonPrivate::hasSysFeature(const QString &featureStr)
{
- const QString sysPath = QLatin1String("/sys/class/");
+ const QString sysPath("/sys/class/");
const QDir sysDir(sysPath);
QStringList filters;
filters << QLatin1String("*");
- const QStringList sysList = sysDir.entryList( filters ,QDir::Dirs, QDir::Name);
+ const QStringList sysList = sysDir.entryList(filters, QDir::Dirs, QDir::Name);
foreach (const QString &dir, sysList) {
const QDir sysDir2(sysPath + dir);
if (dir.contains(featureStr)) {
- const QStringList sysList2 = sysDir2.entryList( filters ,QDir::Dirs, QDir::Name);
- if (!sysList2.isEmpty()) {
+ const QStringList sysList2 = sysDir2.entryList(filters, QDir::Dirs, QDir::Name);
+ if (!sysList2.isEmpty())
return true;
- }
}
}
return false;
@@ -1621,7 +1617,7 @@ bool q_XEventFilter(void *message)
XRRScreenChangeNotifyEvent *rrev = (XRRScreenChangeNotifyEvent *)(xev);
if (rrev->rotation != rot) {
- rot = rrev->rotation;
+ rot = rrev->rotation;
QTM_NAMESPACE::QSystemDisplayInfoLinuxCommonPrivate::instance()->emitOrientationChanged(rot);
QTM_NAMESPACE::QSystemDisplayInfoLinuxCommonPrivate::instance()->lastRotation = rot;
}
@@ -1629,14 +1625,14 @@ bool q_XEventFilter(void *message)
}
return false;
}
-#endif
+#endif // Q_WS_X11
+
QSystemDisplayInfoLinuxCommonPrivate::QSystemDisplayInfoLinuxCommonPrivate(QObject *parent)
- : QObject(parent), wid(0)
+ : QObject(parent)
{
- halIsAvailable = halAvailable();
- wid = new QDesktopWidget();
- if(!self)
+ if (!self)
self = this;
+
#if defined(Q_WS_X11)
QAbstractEventDispatcher::instance()->setEventFilter(q_XEventFilter);
Display *display = QX11Info::display();
@@ -1655,7 +1651,7 @@ QSystemDisplayInfoLinuxCommonPrivate::QSystemDisplayInfoLinuxCommonPrivate(QObje
lastRotation = cur_rotation;
}
}
-#endif
+#endif // Q_WS_X11
}
QSystemDisplayInfoLinuxCommonPrivate::~QSystemDisplayInfoLinuxCommonPrivate()
@@ -1680,46 +1676,45 @@ void QSystemDisplayInfoLinuxCommonPrivate::emitOrientationChanged(int curRotatio
break;
};
}
-#endif
-
+#endif // Q_WS_X11
bool QSystemDisplayInfoLinuxCommonPrivate::isScreenValid(int screen)
{
- if (screen > wid->screenCount() || screen < 0) {
+ if (screen > QApplication::desktop()->screenCount() || screen < 0)
return false;
- }
+
return true;
}
int QSystemDisplayInfoLinuxCommonPrivate::colorDepth(int screen)
{
- if (!isScreenValid(screen)) {
+ if (!isScreenValid(screen))
return -1;
- }
+
#if defined(Q_WS_MAEMO_6) || defined(Q_WS_MEEGO)
struct fb_var_screeninfo *screenInfo = allocFrameBufferInfo(screen);
if (screenInfo) {
- int colorDepth = screenInfo->bits_per_pixel;
- free(screenInfo), screenInfo = 0;
- return colorDepth;
+ int colorDepth = screenInfo->bits_per_pixel;
+ free(screenInfo), screenInfo = 0;
+ return colorDepth;
}
#endif
#ifdef Q_WS_X11
- return wid->screen(screen)->x11Info().depth();
-#endif
+ return QApplication::desktop()->screen(screen)->x11Info().depth();
+#endif // Q_WS_X11
- /* as a last resort, use the default depth */
+ // as a last resort, use the default depth
return QPixmap::defaultDepth();
}
int QSystemDisplayInfoLinuxCommonPrivate::displayBrightness(int screen)
{
- if (!isScreenValid(screen)) {
+ if (!isScreenValid(screen))
return -1;
- }
#if !defined(QT_NO_DBUS)
+ halIsAvailable = halAvailable();
if (halIsAvailable) {
QHalInterface iface;
if (iface.isValid()) {
@@ -1735,24 +1730,23 @@ int QSystemDisplayInfoLinuxCommonPrivate::displayBrightness(int screen)
}
}
}
-#endif
- const QString backlightPath = "/proc/acpi/video/";
+#endif // QT_NO_DBUS
+
+ const QString backlightPath("/proc/acpi/video/");
const QDir videoDir(backlightPath);
QStringList filters;
filters << "*";
const QStringList brightnessList = videoDir.entryList(filters,
- QDir::Dirs
- | QDir::NoDotAndDotDot,
+ QDir::Dirs | QDir::NoDotAndDotDot,
QDir::Name);
foreach (const QString &brightnessFileName, brightnessList) {
float numLevels = 0.0;
float curLevel = 0.0;
- const QDir videoSubDir(backlightPath+"/"+brightnessFileName);
+ const QDir videoSubDir(backlightPath + "/" + brightnessFileName);
const QStringList vidDirList = videoSubDir.entryList(filters,
- QDir::Dirs
- | QDir::NoDotAndDotDot,
+ QDir::Dirs | QDir::NoDotAndDotDot,
QDir::Name);
foreach (const QString &vidFileName, vidDirList) {
QFile curBrightnessFile(backlightPath+brightnessFileName+"/"+vidFileName+"/brightness");
@@ -1761,10 +1755,10 @@ int QSystemDisplayInfoLinuxCommonPrivate::displayBrightness(int screen)
} else {
QTextStream bri(&curBrightnessFile);
QString line = bri.readLine();
- while(!line.isNull()) {
+ while (!line.isNull()) {
if (!line.contains("not supported")) {
if (line.contains("levels")) {
- QString level = line.section(" ",-1);
+ QString level = line.section(" ", -1);
bool ok;
numLevels = level.toFloat(&ok);
if (!ok)
@@ -1780,27 +1774,33 @@ int QSystemDisplayInfoLinuxCommonPrivate::displayBrightness(int screen)
line = bri.readLine();
}
curBrightnessFile.close();
- if (curLevel > -1 && numLevels > 0) {
+ if (curLevel > -1 && numLevels > 0)
return curLevel / numLevels * 100;
- }
-
}
}
}
+
return -1;
}
-QSystemDisplayInfo::BacklightState QSystemDisplayInfoLinuxCommonPrivate::backlightStatus(int screen)
+float QSystemDisplayInfoLinuxCommonPrivate::contrast(int screen)
{
- if (!isScreenValid(screen)) {
- return QSystemDisplayInfo::BacklightStateUnknown;
- }
+ Q_UNUSED(screen);
+
+ return -1;
+}
+
+QSystemDisplayInfo::BacklightState QSystemDisplayInfoLinuxCommonPrivate::backlightStatus(int screen)
+{
+ Q_UNUSED(screen);
+
return QSystemDisplayInfo::BacklightStateUnknown;
}
QSystemDisplayInfo::DisplayOrientation QSystemDisplayInfoLinuxCommonPrivate::orientation(int screen)
{
QSystemDisplayInfo::DisplayOrientation orientation = QSystemDisplayInfo::Unknown;
+
#if defined(Q_WS_X11)
XRRScreenConfiguration *sc;
Rotation cur_rotation;
@@ -1809,7 +1809,7 @@ QSystemDisplayInfo::DisplayOrientation QSystemDisplayInfoLinuxCommonPrivate::ori
if (display && (sc = XRRGetScreenInfo(display, RootWindow(display, screen)))) {
XRRConfigRotations(sc, &cur_rotation);
- if(screen < 16 && screen > -1) {
+ if (screen < 16 && screen > -1) {
switch(cur_rotation) {
case RR_Rotate_0:
orientation = QSystemDisplayInfo::Landscape;
@@ -1824,103 +1824,105 @@ QSystemDisplayInfo::DisplayOrientation QSystemDisplayInfoLinuxCommonPrivate::ori
orientation = QSystemDisplayInfo::InvertedPortrait;
break;
};
+ return orientation;
}
}
#endif
- if (wid->width() > wid->height()) {//landscape
- if (orientation == QSystemDisplayInfo::Unknown || orientation == QSystemDisplayInfo::Portrait) {
+ if (QApplication::desktop()->width() > QApplication::desktop()->height()) {//landscape
+ if (orientation == QSystemDisplayInfo::Unknown || orientation == QSystemDisplayInfo::Portrait)
orientation = QSystemDisplayInfo::Landscape;
- }
} else { //portrait
- if (orientation == QSystemDisplayInfo::Unknown || orientation == QSystemDisplayInfo::Landscape) {
+ if (orientation == QSystemDisplayInfo::Unknown || orientation == QSystemDisplayInfo::Landscape)
orientation = QSystemDisplayInfo::Portrait;
- }
}
+
return orientation;
}
int QSystemDisplayInfoLinuxCommonPrivate::physicalHeight(int screen)
{
- if (!isScreenValid(screen)) {
+ if (!isScreenValid(screen))
return -1;
- }
- int height = 0;
+
+ int height = -1;
+
#if defined(Q_WS_X11)
XRRScreenResources *sr;
sr = XRRGetScreenResources(QX11Info::display(), RootWindow(QX11Info::display(), screen));
for (int i = 0; i < sr->noutput; ++i) {
XRROutputInfo *output = XRRGetOutputInfo(QX11Info::display(),sr,sr->outputs[i]);
- if (output->crtc) {
+ if (output->crtc)
height = output->mm_height;
- }
XRRFreeOutputInfo(output);
}
XRRFreeScreenResources(sr);
-#endif
- if(height == 0) {
- struct fb_var_screeninfo *screenInfo = allocFrameBufferInfo(screen);
+#endif // Q_WS_X11
+ if (height == 0) {
+ struct fb_var_screeninfo *screenInfo = allocFrameBufferInfo(screen);
if (screenInfo) {
height = screenInfo->height;
- free(screenInfo), screenInfo = 0;
+ free(screenInfo);
}
}
+
return height;
}
int QSystemDisplayInfoLinuxCommonPrivate::physicalWidth(int screen)
{
- if (!isScreenValid(screen)) {
+ if (!isScreenValid(screen))
return -1;
- }
- int width = 0;
+
+ int width = -1;
+
#if defined(Q_WS_X11)
XRRScreenResources *sr;
sr = XRRGetScreenResources(QX11Info::display(), RootWindow(QX11Info::display(), screen));
for (int i = 0; i < sr->noutput; ++i) {
XRROutputInfo *output = XRRGetOutputInfo(QX11Info::display(),sr,sr->outputs[i]);
- if (output->crtc) {
+ if (output->crtc)
width = output->mm_width;
- }
XRRFreeOutputInfo(output);
}
XRRFreeScreenResources(sr);
-#endif
- if(width == 0) {
- struct fb_var_screeninfo *screenInfo = allocFrameBufferInfo(screen);
+#endif // Q_WS_X11
+ if (width == 0) {
+ struct fb_var_screeninfo *screenInfo = allocFrameBufferInfo(screen);
if (screenInfo) {
width = screenInfo->width;
- free(screenInfo), screenInfo = 0;
+ free(screenInfo);
}
}
+
return width;
}
int QSystemDisplayInfoLinuxCommonPrivate::getDPIWidth(int screen)
{
- if (!isScreenValid(screen)) {
+ if (!isScreenValid(screen))
return -1;
- }
+
#if defined(Q_WS_X11)
return QX11Info::appDpiY(screen);
#else
- return 0;
+ return -1;
#endif
}
int QSystemDisplayInfoLinuxCommonPrivate::getDPIHeight(int screen)
{
- if (!isScreenValid(screen)) {
+ if (!isScreenValid(screen))
return -1;
- }
+
#if defined(Q_WS_X11)
return QX11Info::appDpiX(screen);
#else
- return 0;
+ return -1;
#endif
}
diff --git a/src/systeminfo/linux/qsysteminfo_linux_common_p.h b/src/systeminfo/linux/qsysteminfo_linux_common_p.h
index 604e763066..49315ed3ca 100644
--- a/src/systeminfo/linux/qsysteminfo_linux_common_p.h
+++ b/src/systeminfo/linux/qsysteminfo_linux_common_p.h
@@ -96,12 +96,12 @@ class QSystemInfoLinuxCommonPrivate : public QObject
Q_OBJECT
public:
-
QSystemInfoLinuxCommonPrivate(QObject *parent = 0);
virtual ~QSystemInfoLinuxCommonPrivate();
- QString currentLanguage() const;
- QString version(QSystemInfo::Version, const QString &/*parameter*/ = QString());
+ virtual QString currentLanguage() const;
+
+ QString version(QSystemInfo::Version, const QString &parameter = QString());
QString currentCountryCode() const;
bool fmTransmitterAvailable();
@@ -109,21 +109,24 @@ public:
bool hasSysFeature(const QString &featureStr);
Q_SIGNALS:
- void currentLanguageChanged(const QString &);
+ void currentLanguageChanged(const QString &lang);
private:
QTimer *langTimer;
- QString langCached;
protected Q_SLOTS:
- void startLanguagePolling();
+ void pollCurrentLanguage();
protected:
+ QString currentLang;
+
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+
#if !defined(QT_NO_DBUS)
bool hasHalDeviceFeature(const QString &param);
bool hasHalUsbFeature(qint32 usbClass);
- QHalInterface halIface;
-#endif
+#endif // QT_NO_DBUS
};
class QNetworkManagerInterface;
@@ -208,7 +211,6 @@ class QSystemDisplayInfoLinuxCommonPrivate : public QObject
Q_OBJECT
public:
-
QSystemDisplayInfoLinuxCommonPrivate(QObject *parent = 0);
virtual ~QSystemDisplayInfoLinuxCommonPrivate();
@@ -216,7 +218,7 @@ public:
int colorDepth(int screen);
QSystemDisplayInfo::DisplayOrientation orientation(int screen);
- float contrast(int /*screen*/) {return 0.0;};
+ float contrast(int screen);
int getDPIWidth(int screen);
int getDPIHeight(int screen);
int physicalHeight(int screen);
@@ -236,7 +238,7 @@ Q_SIGNALS:
private:
bool isScreenValid(int screen);
- QDesktopWidget *wid;
+
static QSystemDisplayInfoLinuxCommonPrivate *self;
};
diff --git a/src/systeminfo/linux/qsysteminfo_linux_p.h b/src/systeminfo/linux/qsysteminfo_linux_p.h
index a6b191fc20..5a14344c66 100644
--- a/src/systeminfo/linux/qsysteminfo_linux_p.h
+++ b/src/systeminfo/linux/qsysteminfo_linux_p.h
@@ -81,17 +81,10 @@ class QSystemInfoPrivate : public QSystemInfoLinuxCommonPrivate
Q_OBJECT
public:
-
QSystemInfoPrivate(QSystemInfoLinuxCommonPrivate *parent = 0);
virtual ~QSystemInfoPrivate();
- QStringList availableLanguages() const;
-private:
-#if !defined(QT_NO_DBUS)
- bool hasHalDeviceFeature(const QString &param);
- bool hasHalUsbFeature(qint32 usbClass);
- QHalInterface halIface;
-#endif
+ QStringList availableLanguages() const;
};
class QNetworkManagerInterface;
@@ -139,10 +132,6 @@ class QSystemDisplayInfoPrivate : public QSystemDisplayInfoLinuxCommonPrivate
public:
QSystemDisplayInfoPrivate(QSystemDisplayInfoLinuxCommonPrivate *parent = 0);
virtual ~QSystemDisplayInfoPrivate();
-
- float contrast(int screen);
-
- QSystemDisplayInfo::BacklightState backlightStatus(int screen); //1.2
};
class QSystemDeviceInfoPrivate : public QSystemDeviceInfoLinuxCommonPrivate
diff --git a/src/systeminfo/qsystemalignedtimer.cpp b/src/systeminfo/qsystemalignedtimer.cpp
index ca4ccbbc2f..981443089d 100644
--- a/src/systeminfo/qsystemalignedtimer.cpp
+++ b/src/systeminfo/qsystemalignedtimer.cpp
@@ -45,11 +45,18 @@
QTM_BEGIN_NAMESPACE
+Q_GLOBAL_STATIC(QSystemAlignedTimerPrivate, alignedTimerPrivate)
+
+#ifdef QT_SIMULATOR
+QSystemAlignedTimerPrivate *getSystemAlignedTimerPrivate() { return alignedTimerPrivate(); }
+#endif
+
/*!
\class QSystemAlignedTimer
\ingroup systeminfo
\inmodule QtSystemInfo
\brief The QSystemAlignedTimer class provides a service for applications to synchronize their activity.
+ \since 1.2
QSystemAlignedTimer is a fuzzy timer that allows applications that must do periodic activity like
after being in sleep mode a certain period, to synchronize their activities in the same window of time.
diff --git a/src/systeminfo/qsystembatteryinfo.cpp b/src/systeminfo/qsystembatteryinfo.cpp
index b04b5b86a1..2e38b248d5 100644
--- a/src/systeminfo/qsystembatteryinfo.cpp
+++ b/src/systeminfo/qsystembatteryinfo.cpp
@@ -57,6 +57,7 @@ QSystemBatteryInfoPrivate *getSystemBatteryInfoPrivate() { return batteryInfoPri
\ingroup systeminfo
\inmodule QtSystemInfo
\brief The QSystemBatteryInfo class provides access to battery and power information from the system.
+ \since 1.2
*/
/*!
\enum QSystemBatteryInfo::BatteryStatus
diff --git a/src/systeminfo/qsystembatteryinfo.h b/src/systeminfo/qsystembatteryinfo.h
index 757611e362..ee95edf002 100644
--- a/src/systeminfo/qsystembatteryinfo.h
+++ b/src/systeminfo/qsystembatteryinfo.h
@@ -109,13 +109,12 @@ public:
enum EnergyUnit {
UnitUnknown = -1,
UnitmAh,
- UnitmWh,
+ UnitmWh
};
QSystemBatteryInfo::ChargerType chargerType() const;
QSystemBatteryInfo::ChargingState chargingState() const;
-
int nominalCapacity() const;
int remainingCapacityPercent() const;
int remainingCapacity() const;
diff --git a/src/systeminfo/qsystemdeviceinfo.cpp b/src/systeminfo/qsystemdeviceinfo.cpp
index bd5b34f8ef..b720e669d2 100644
--- a/src/systeminfo/qsystemdeviceinfo.cpp
+++ b/src/systeminfo/qsystemdeviceinfo.cpp
@@ -44,7 +44,7 @@
#include <QMetaType>
QTM_BEGIN_NAMESPACE
- Q_GLOBAL_STATIC(QSystemDeviceInfoPrivate, deviceInfoPrivate)
+Q_GLOBAL_STATIC(QSystemDeviceInfoPrivate, deviceInfoPrivate)
#ifdef QT_SIMULATOR
QSystemDeviceInfoPrivate *getSystemDeviceInfoPrivate() { return deviceInfoPrivate(); }
@@ -56,6 +56,7 @@ QSystemDeviceInfoPrivate *getSystemDeviceInfoPrivate() { return deviceInfoPrivat
\ingroup systeminfo
\inmodule QtSystemInfo
\brief The QSystemDeviceInfo class provides access to device information from the system.
+ \since 1.2
*/
/*!
@@ -66,6 +67,7 @@ QSystemDeviceInfoPrivate *getSystemDeviceInfoPrivate() { return deviceInfoPrivat
\brief The ProfileDetails class provides access to
details of the currently active phone profile.
+ \since 1.2
*/
/*!
\fn void QSystemDeviceInfo::batteryLevelChanged(int level)
diff --git a/src/systeminfo/qsystemdisplayinfo.cpp b/src/systeminfo/qsystemdisplayinfo.cpp
index cdfbeb0789..33109a71aa 100644
--- a/src/systeminfo/qsystemdisplayinfo.cpp
+++ b/src/systeminfo/qsystemdisplayinfo.cpp
@@ -45,13 +45,13 @@
#include <QMetaType>
QTM_BEGIN_NAMESPACE
- Q_GLOBAL_STATIC(QSystemDisplayInfoPrivate, displayInfoPrivate)
+
+Q_GLOBAL_STATIC(QSystemDisplayInfoPrivate, displayInfoPrivate)
#ifdef QT_SIMULATOR
QSystemDisplayInfoPrivate *getSystemDisplayInfoPrivate() { return displayInfoPrivate(); }
-#endif
+#endif // QT_SIMULATOR
-// display
/*!
\enum QSystemDisplayInfo::DisplayOrientation
This enum describes the orientation of the default window.
@@ -61,81 +61,78 @@ QSystemDisplayInfoPrivate *getSystemDisplayInfoPrivate() { return displayInfoPri
\value Portrait Portrait is higher than wide.
\value InvertedLandscape Landscape that is inverted.
\value InvertedPortrait Portrait that is inverted.
- */
+*/
/*!
- \enum QSystemDisplayInfo::BacklightState
- This enum describes the state of the Backlight.
-
- \value BacklightStateUnknown Error, no, or unknown Backlight state.
- \value BacklightStateOff Backlight is turned off.
- \value BacklightStateDimmed Backlight has been dimmed.
- \value BacklightStateOn Backlight is on.
- */
- /*!
- \class QSystemDisplayInfo
- \ingroup systeminfo
- \inmodule QtSystemInfo
+ \enum QSystemDisplayInfo::BacklightState
+ This enum describes the state of the Backlight.
+ \value BacklightStateUnknown Error, no, or unknown Backlight state.
+ \value BacklightStateOff Backlight is turned off.
+ \value BacklightStateDimmed Backlight has been dimmed.
+ \value BacklightStateOn Backlight is on.
+*/
+
+/*!
+ \class QSystemDisplayInfo
+ \ingroup systeminfo
+ \inmodule QtSystemInfo
+ \since 1.1
\brief The QSystemDisplayInfo class provides access to display information from the system.
*/
- /*!
- \fn void QSystemDisplayInfo::orientationChanged(QSystemDisplayInfo::DisplayOrientation orientation)
+/*!
+ \fn void QSystemDisplayInfo::orientationChanged(QSystemDisplayInfo::DisplayOrientation orientation)
- This signal is emitted when QDesktopWidget's orientation has changed.
- \a orientation is the new orientation.
- */
+ This signal is emitted when QDesktopWidget's orientation has changed to \a orientation.
+*/
/*!
- Constructs a QSystemDisplayInfo object with the given \a parent.
- */
+ Constructs a QSystemDisplayInfo object with the given \a parent.
+*/
QSystemDisplayInfo::QSystemDisplayInfo(QObject *parent)
: QObject(parent)
{
qRegisterMetaType<QSystemDisplayInfo::DisplayOrientation>("QSystemDisplayInfo::DisplayOrientation");
qRegisterMetaType<QSystemDisplayInfo::BacklightState>("QSystemDisplayInfo::BacklightState");
- connect(displayInfoPrivate(),SIGNAL(orientationChanged(QSystemDisplayInfo::DisplayOrientation )),
- this,SIGNAL(orientationChanged(QSystemDisplayInfo::DisplayOrientation )),Qt::UniqueConnection);
+ connect(displayInfoPrivate(), SIGNAL(orientationChanged(QSystemDisplayInfo::DisplayOrientation)),
+ this, SIGNAL(orientationChanged(QSystemDisplayInfo::DisplayOrientation)), Qt::UniqueConnection);
}
/*!
- Destroys the QSystemDisplayInfo object.
- */
+ Destroys the QSystemDisplayInfo object.
+*/
QSystemDisplayInfo::~QSystemDisplayInfo()
{
}
/*!
- Returns the display brightness of the screen with index \a screenNumber in %, 1 - 100 scale.
-
- Depending on platform, displayBrightness may not be available due to
- differing hardware, software or driver implementation. In which case this
- will return -1.
+ Returns the display brightness of the screen with index \a screenNumber, in 1 - 100 scale.
+ -1 is returned if not available or on error.
\sa QDesktopWidget::screenCount()
*/
int QSystemDisplayInfo::displayBrightness(int screenNumber)
{
QDesktopWidget wid;
- if(wid.screenCount() < 1 || wid.screenCount() - 1 < screenNumber) {
+ if (wid.screenCount() < 1 || wid.screenCount() - 1 < screenNumber)
return -1;
- }
+
return displayInfoPrivate()->displayBrightness(screenNumber);
}
/*!
- Returns the color depth of the screen with the index \a screenNumber, in bits per pixel. Will return -1 in
- the event of an error.
+ Returns the color depth of the screen with the index \a screenNumber, in bits per pixel.
+ -1 is returned if not available or on error.
\sa QDesktopWidget::screenCount()
*/
int QSystemDisplayInfo::colorDepth(int screenNumber)
{
QDesktopWidget wid;
- if(wid.screenCount() < 1 || wid.screenCount() - 1 < screenNumber) {
+ if (wid.screenCount() < 1 || wid.screenCount() - 1 < screenNumber)
return -1;
- }
+
return displayInfoPrivate()->colorDepth(screenNumber);
}
@@ -149,54 +146,59 @@ QSystemDisplayInfo::DisplayOrientation QSystemDisplayInfo::orientation(int scree
return displayInfoPrivate()->orientation(screen);
}
-
/*!
- Returns the current contrast of the screen \a screen, from 0 to 1.
- \bold sNOTE: Some platforms do not support detecting the contrast of the display.
+ Returns the current contrast of the screen \a screen, from 0 to 1. -1 is returned if
+ not available or on error.
\sa QDesktopWidget::screenCount()
*/
float QSystemDisplayInfo::contrast(int screen)
{
- return displayInfoPrivate()->contrast(screen);
+ return displayInfoPrivate()->contrast(screen);
}
/*!
- Returns the current dots per inch (DPI) for the width of \a screen.
+ Returns the current dots per inch (DPI) for the width of \a screen. -1 is returned if
+ not available or on error.
\sa QDesktopWidget::screenCount()
*/
int QSystemDisplayInfo::getDPIWidth(int screen)
{
- return displayInfoPrivate()->getDPIWidth(screen);
+ return displayInfoPrivate()->getDPIWidth(screen);
}
/*!
- Returns the dpi (Dot Per Inch) of the height os \a screen.
+ Returns the dpi (Dot Per Inch) of the height os \a screen. -1 is returned if not available
+ or on error.
\sa QDesktopWidget::screenCount()
*/
int QSystemDisplayInfo::getDPIHeight(int screen)
{
- return displayInfoPrivate()->getDPIHeight(screen);
+ return displayInfoPrivate()->getDPIHeight(screen);
}
/*!
- Returns the physical height of the \a screen in millimeters.
+ Returns the physical height of the \a screen in millimeters. -1 is returned if not available
+ or on error.
+
\sa QDesktopWidget::screenCount()
*/
int QSystemDisplayInfo::physicalHeight(int screen)
{
- return displayInfoPrivate()->physicalHeight(screen);
+ return displayInfoPrivate()->physicalHeight(screen);
}
/*!
- Returns the physical width of \a screen in millimeters.
+ Returns the physical width of \a screen in millimeters. -1 is returned if not available or
+ on error.
+
\sa QDesktopWidget::screenCount()
*/
int QSystemDisplayInfo::physicalWidth(int screen)
{
- return displayInfoPrivate()->physicalWidth(screen);
+ return displayInfoPrivate()->physicalWidth(screen);
}
/*!
@@ -207,8 +209,6 @@ QSystemDisplayInfo::BacklightState QSystemDisplayInfo::backlightStatus(int scree
return displayInfoPrivate()->backlightStatus(screen);
}
-
-
#include "moc_qsystemdisplayinfo.cpp"
QTM_END_NAMESPACE
diff --git a/src/systeminfo/qsystemdisplayinfo.h b/src/systeminfo/qsystemdisplayinfo.h
index abb5509de7..a77ed4bb57 100644
--- a/src/systeminfo/qsystemdisplayinfo.h
+++ b/src/systeminfo/qsystemdisplayinfo.h
@@ -49,14 +49,14 @@ QTM_BEGIN_NAMESPACE
class QSystemDisplayInfoPrivate;
-class Q_SYSINFO_EXPORT QSystemDisplayInfo : public QObject
+class Q_SYSINFO_EXPORT QSystemDisplayInfo : public QObject
{
Q_OBJECT
+
Q_ENUMS(DisplayOrientation)
Q_ENUMS(BacklightState)
public:
-
explicit QSystemDisplayInfo(QObject *parent = 0);
~QSystemDisplayInfo();
@@ -73,28 +73,24 @@ public:
BacklightStateOff,
BacklightStateDimmed,
BacklightStateOn
- };//1.2
+ }; //1.2
static int displayBrightness(int screen);
static int colorDepth(int screen);
- QSystemDisplayInfo::DisplayOrientation orientation(int screen);//1.2
- float contrast(int screen);//1.2
- int getDPIWidth(int screen);//1.2
- int getDPIHeight(int screen);//1.2
- int physicalHeight(int screen);//1.2
- int physicalWidth(int screen);//1.2
-
+ QSystemDisplayInfo::DisplayOrientation orientation(int screen); //1.2
+ float contrast(int screen); //1.2
+ int getDPIWidth(int screen); //1.2
+ int getDPIHeight(int screen); //1.2
+ int physicalHeight(int screen); //1.2
+ int physicalWidth(int screen); //1.2
QSystemDisplayInfo::BacklightState backlightStatus(int screen); //1.2
-
Q_SIGNALS:
void orientationChanged(QSystemDisplayInfo::DisplayOrientation newOrientation);
};
-
QTM_END_NAMESPACE
-
QT_END_HEADER
#endif // QSYSTEMDISPLAYINFO_H
diff --git a/src/systeminfo/qsystemgeneralinfo.cpp b/src/systeminfo/qsystemgeneralinfo.cpp
index 54f81fa35f..0553f4eda4 100644
--- a/src/systeminfo/qsystemgeneralinfo.cpp
+++ b/src/systeminfo/qsystemgeneralinfo.cpp
@@ -39,58 +39,48 @@
**
****************************************************************************/
-#include "qmobilityglobal.h"
#include "qsystemgeneralinfo.h"
#include "qsysteminfocommon_p.h"
-#include <QStringList>
-#include <QSize>
-#include <QFile>
-#include <QTextStream>
-#include <QLocale>
-#include <QLibraryInfo>
-#include <QApplication>
-#include <QDesktopWidget>
-#include <QDebug>
-#include <QFileSystemWatcher>
#include <QMetaType>
-#include <locale.h>
-
QTM_BEGIN_NAMESPACE
- /*!
- \class QSystemInfo
+Q_GLOBAL_STATIC(QSystemInfoPrivate, sysinfoPrivate)
- \ingroup systeminfo
- \inmodule QtSystemInfo
+#ifdef QT_SIMULATOR
+QSystemInfoPrivate *getSystemInfoPrivate() { return sysinfoPrivate(); }
+#endif // QT_SIMULATOR
+/*!
+ \class QSystemInfo
+ \ingroup systeminfo
+ \inmodule QtSystemInfo
+ \since 1.0
\brief The QSystemInfo class provides access to various general information from the system.
-
- \bold NOTE: In the future, parts of the QtSystemInfo API may be moved and renamed into an existing Qt class that provides similiar functionality.
-
-\table
-\header
- \o Class
-\row
- \o QSystemInfo::currentLanguage
-\row
- \o QSystemInfo::availableLanguages
-\row
- \o QSystemInfo::currentCountryCode
-\row
- \o QSystemDisplayInfo::displayBrightness
-\row
- \o QSystemDisplayInfo::colorDepth
-\row
- \o QSystemScreenSaver::screenSaverInhibited
-\row
- \o QSystemScreenSaver::setScreenSaverInhibit
-\endtable
-
- Platform notes
- Some functionality may or may not be supported on various platforms. Depending on if there
-is a reliable way to gather such information.
+ \bold NOTE: In the future, parts of the QtSystemInfo API may be moved and renamed into an existing Qt class that provides similiar functionality.
+
+ \table
+ \header
+ \o Class
+ \row
+ \o QSystemInfo::currentLanguage
+ \row
+ \o QSystemInfo::availableLanguages
+ \row
+ \o QSystemInfo::currentCountryCode
+ \row
+ \o QSystemDisplayInfo::displayBrightness
+ \row
+ \o QSystemDisplayInfo::colorDepth
+ \row
+ \o QSystemScreenSaver::screenSaverInhibited
+ \row
+ \o QSystemScreenSaver::setScreenSaverInhibit
+ \endtable
+
+ Platform notes: Some functionality may or may not be supported on various platforms, depending on if there
+ is a reliable way to gather such information.
*/
/*!
@@ -101,8 +91,8 @@ is a reliable way to gather such information.
\value QtCore Qt library version.
\value Firmware Version of (flashable) system as a whole.
\value QtMobility QtMobility library version.
+*/
- */
/*!
\enum QSystemInfo::Feature
This enum describes the features of the device or computer.
@@ -121,40 +111,28 @@ is a reliable way to gather such information.
\value VideoOutFeature Video out feature available.
\value HapticsFeature Haptics feature available.
\value FmTransmitterFeature FM Radio transmitter available.
- */
-
-
-
+*/
/*!
- \fn void QSystemInfo::currentLanguageChanged(const QString &lang)
-
- This signal is emitted whenever the current language changes, specified by \a lang,
- which is in 2 letter, ISO 639-1 specification form.
- */
-
+ \fn void QSystemInfo::currentLanguageChanged(const QString &lang)
-
-Q_GLOBAL_STATIC(QSystemInfoPrivate, sysinfoPrivate)
-
-#ifdef QT_SIMULATOR
-QSystemInfoPrivate *getSystemInfoPrivate() { return sysinfoPrivate(); }
-#endif
+ This signal is emitted whenever the current language changes, specified by \a lang,
+ which is in 2 letter, ISO 639-1 specification form.
+*/
/*!
-\fn QSystemInfo::QSystemInfo(QObject *parent)
- Constructs a QSystemInfo object with the given \a parent.
- */
-
+ Constructs a QSystemInfo object with the given \a parent.
+*/
QSystemInfo::QSystemInfo(QObject *parent)
- : QObject(parent), d(sysinfoPrivate())
+ : QObject(parent)
+ , d(sysinfoPrivate())
{
qRegisterMetaType<QSystemInfo::Version>("QSystemInfo::Version");
qRegisterMetaType<QSystemInfo::Feature>("QSystemInfo::Feature");
}
/*!
- Destroys the QSystemInfo object
+ Destroys the QSystemInfo object
*/
QSystemInfo::~QSystemInfo()
{
@@ -162,40 +140,35 @@ QSystemInfo::~QSystemInfo()
/*!
\internal
-
- This function is called when the client connects to signals.
-
- \sa connectNotify()
*/
-
void QSystemInfo::connectNotify(const char *signal)
{
- if (QLatin1String(signal) == QLatin1String(QMetaObject::normalizedSignature(SIGNAL(
- currentLanguageChanged(QString))))) {
- connect(d,SIGNAL(currentLanguageChanged(QString)),
- this,SIGNAL(currentLanguageChanged(QString)),Qt::UniqueConnection);
+ if (QLatin1String(signal) == SIGNAL(currentLanguageChanged(QString))) {
+ connect(d, SIGNAL(currentLanguageChanged(QString)),
+ this, SIGNAL(currentLanguageChanged(QString)),
+ Qt::UniqueConnection);
}
}
/*!
\internal
-
- This function is called when the client disconnects from the signals.
-
- \sa connectNotify()
*/
void QSystemInfo::disconnectNotify(const char *signal)
{
- if (QLatin1String(signal) == QLatin1String(QMetaObject::normalizedSignature(SIGNAL(
- currentLanguageChanged(QString))))) {
- disconnect(d,SIGNAL(currentLanguageChanged(QString)),
- this,SIGNAL(currentLanguageChanged(QString)));
+ // disconnect only when there's no connections
+ if (receivers(signal) > 0)
+ return;
+
+ if (QLatin1String(signal) == SIGNAL(currentLanguageChanged(QString))) {
+ disconnect(d, SIGNAL(currentLanguageChanged(QString)),
+ this, SIGNAL(currentLanguageChanged(QString)));
}
}
/*!
- \property QSystemInfo::currentLanguage
- \brief The current Language
+ \property QSystemInfo::currentLanguage
+ \brief The current Language
+
Returns the current language in 2 letter ISO 639-1 format.
*/
QString QSystemInfo::currentLanguage()
@@ -203,40 +176,40 @@ QString QSystemInfo::currentLanguage()
return sysinfoPrivate()->currentLanguage();
}
/*!
- \property QSystemInfo::availableLanguages
- \brief List of available languages.
+ \property QSystemInfo::availableLanguages
+ \brief List of available languages.
Returns a QStringList of available Qt language translations in 2 letter ISO 639-1 format.
If the Qt translations cannot be found, returns the current system language.
- */
+*/
QStringList QSystemInfo::availableLanguages()
{
return sysinfoPrivate()->availableLanguages();
}
/*!
- Returns the version of QSystemInfo::Version \a type,
- with optional platform dependent \a parameter as a string.
+ Returns the version of QSystemInfo::Version \a type,
+ with optional platform dependent \a parameter as a string.
- Version will be returned in "major.minor.build" form.
+ Version will be returned in "major.minor.build" form.
- In case a particular version does not use the "build" part, it is set to 0.
- If a particular element is not available at all, an error "Not Installed" will be returned by
- the API.
+ In case a particular version does not use the "build" part, it is set to 0.
+ If a particular element is not available at all, an error "Not Installed" will be returned by
+ the API.
*/
QString QSystemInfo::version(QSystemInfo::Version type, const QString &parameter)
{
switch(type) {
- case QSystemInfo::QtMobility:
- return QLatin1String(QTM_VERSION_STR);
- default:
- return sysinfoPrivate()->version(type, parameter);
+ case QSystemInfo::QtMobility:
+ return QLatin1String(QTM_VERSION_STR);
+ default:
+ return sysinfoPrivate()->version(type, parameter);
}
}
/*!
- \property QSystemInfo::currentCountryCode
- \brief The current locale country code.
+ \property QSystemInfo::currentCountryCode
+ \brief The current locale country code.
Returns the 2 letter ISO 3166-1 for the current country code.
*/
@@ -248,13 +221,11 @@ QString QSystemInfo::currentCountryCode()
/*!
Returns true if the QSystemInfo::Feature \a feature is supported, otherwise false.
*/
-
bool QSystemInfo::hasFeatureSupported(QSystemInfo::Feature feature)
{
return sysinfoPrivate()->hasFeatureSupported(feature);
}
-
#include "moc_qsystemgeneralinfo.cpp"
QTM_END_NAMESPACE
diff --git a/src/systeminfo/qsystemgeneralinfo.h b/src/systeminfo/qsystemgeneralinfo.h
index b896accb92..621a50782c 100644
--- a/src/systeminfo/qsystemgeneralinfo.h
+++ b/src/systeminfo/qsystemgeneralinfo.h
@@ -42,13 +42,9 @@
#define QSYSTEMGENERALINFO_H
#include "qmobilityglobal.h"
-
-#include <QObject>
-#include <QSize>
-#include <QPair>
#include <QString>
#include <QStringList>
-#include <QFileSystemWatcher>
+#include <QObject>
QT_BEGIN_HEADER
QTM_BEGIN_NAMESPACE
@@ -58,6 +54,7 @@ class QSystemInfoPrivate;
class Q_SYSINFO_EXPORT QSystemInfo : public QObject
{
Q_OBJECT
+
Q_PROPERTY(QString currentLanguage READ currentLanguage NOTIFY currentLanguageChanged)
Q_PROPERTY(QStringList availableLanguages READ availableLanguages)
Q_PROPERTY(QString currentCountryCode READ currentCountryCode)
@@ -65,13 +62,13 @@ class Q_SYSINFO_EXPORT QSystemInfo : public QObject
Q_ENUMS(Feature)
public:
-
QSystemInfo(QObject *parent = 0);
- virtual ~QSystemInfo();
+ virtual ~QSystemInfo();
QString currentLanguage(); // 2 letter ISO 639-1 //signal
QStringList availableLanguages(); // 2 letter ISO 639-1
QString currentCountryCode(); //2 letter ISO 3166-1
+
enum Version {
Os = 1,
QtCore,
@@ -82,7 +79,7 @@ public:
QString version(QSystemInfo::Version type, const QString &parameter = QString());
enum Feature {
- BluetoothFeature=0,
+ BluetoothFeature = 0,
CameraFeature,
FmradioFeature,
IrFeature,
@@ -96,24 +93,22 @@ public:
VideoOutFeature,
HapticsFeature,
FmTransmitterFeature
- };
+ };
Q_INVOKABLE bool hasFeatureSupported(QSystemInfo::Feature feature);
Q_SIGNALS:
- void currentLanguageChanged(const QString &);
+ void currentLanguageChanged(const QString &lang);
+
private:
QSystemInfoPrivate *d;
+
protected:
void connectNotify(const char *signal);
void disconnectNotify(const char *signal);
};
QTM_END_NAMESPACE
-
QT_END_HEADER
-#endif /*QSYSTEMSGENERALINFO_H*/
-
-// End of file
-
+#endif // QSYSTEMGENERALINFO_H
diff --git a/src/systeminfo/qsysteminfo_mac.mm b/src/systeminfo/qsysteminfo_mac.mm
index 2bb6f15119..6c25811e2c 100644
--- a/src/systeminfo/qsysteminfo_mac.mm
+++ b/src/systeminfo/qsysteminfo_mac.mm
@@ -107,7 +107,7 @@
#include <QtCore/qmutex.h>
#include <QEventLoop>
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
#include <CoreLocation/CLLocation.h>
#include <CoreLocation/CLLocationManager.h>
@@ -184,7 +184,7 @@ bool hasIOServiceMatching(const QString &classstr)
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
@interface QtMNSListener : NSObject
{
@@ -539,7 +539,7 @@ bool QSystemInfoPrivate::hasFeatureSupported(QSystemInfo::Feature feature)
break;
case QSystemInfo::LocationFeature:
{
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
if ([locationManager locationServicesEnabled]) {
featureSupported = true;
@@ -583,7 +583,7 @@ void networkChangeCallback(SCDynamicStoreRef /*dynamicStore*/, CFArrayRef change
return;
}
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
QtMLangListener *langListener;
#endif
@@ -602,7 +602,7 @@ QLangLoopThread::~QLangLoopThread()
void QLangLoopThread::stop()
{
keepRunning = false;
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
CFRunLoopStop(CFRunLoopGetCurrent());
[langListener release];
#endif
@@ -610,7 +610,7 @@ void QLangLoopThread::stop()
void QLangLoopThread::doWork()
{
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(QThread::currentThread() != &t) {
QMetaObject::invokeMethod(this, "doWork",
Qt::QueuedConnection);
@@ -632,7 +632,7 @@ void QLangLoopThread::doWork()
#endif
}
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
QtMNSListener *listener;
#endif
@@ -652,7 +652,7 @@ void QRunLoopThread::stop()
QMutexLocker locker(&mutex);
CFRunLoopStop(CFRunLoopGetCurrent());
keepRunning = false;
-//#ifdef MAC_SDK_10_6
+//#ifndef MAC_SDK_10_5
// [listener release];
// [delegate release];
//#endif
@@ -663,7 +663,7 @@ void QRunLoopThread::stop()
void QRunLoopThread::doWork()
{
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(QThread::currentThread() != &t) {
QMetaObject::invokeMethod(this, "doWork",
Qt::QueuedConnection);
@@ -795,7 +795,7 @@ void QDASessionThread::stop()
void QDASessionThread::doWork()
{
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(QThread::currentThread() != &t) {
QMetaObject::invokeMethod(this, "doWork",
Qt::QueuedConnection);
@@ -880,7 +880,7 @@ void QBluetoothListenerThread::stop()
void QBluetoothListenerThread::doWork()
{
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(QThread::currentThread() != &t) {
QMetaObject::invokeMethod(this, "doWork",
Qt::QueuedConnection);
@@ -973,7 +973,7 @@ QSystemNetworkInfoPrivate::QSystemNetworkInfoPrivate(QObject *parent)
qRegisterMetaType<QSystemNetworkInfo::NetworkMode>("QSystemNetworkInfo::NetworkMode");
qRegisterMetaType<QSystemNetworkInfo::NetworkStatus>("QSystemNetworkInfo::NetworkStatus");
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
if([[CWInterface supportedInterfaces] count] > 0 ) {
hasWifi = true;
@@ -991,7 +991,7 @@ if([[CWInterface supportedInterfaces] count] > 0 ) {
QSystemNetworkInfoPrivate::~QSystemNetworkInfoPrivate()
{
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(hasWifi && networkThreadOk && runloopThread->keepRunning) {
runloopThread->stop();
delete runloopThread;
@@ -1012,7 +1012,7 @@ void QSystemNetworkInfoPrivate::connectNotify(const char *signal)
}
if (QLatin1String(signal) == SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString))
|| QLatin1String(signal) == SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus))) {
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(hasWifi) {
runloopThread = new QRunLoopThread();
runloopThread->doWork();
@@ -1030,7 +1030,7 @@ void QSystemNetworkInfoPrivate::disconnectNotify(const char *signal)
}
if (QLatin1String(signal) == SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString))
|| QLatin1String(signal) == SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus))) {
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(hasWifi && networkThreadOk) {
runloopThread->stop();
[delegate release];
@@ -1152,7 +1152,7 @@ QSystemNetworkInfo::NetworkStatus QSystemNetworkInfoPrivate::networkStatus(QSyst
break;
case QSystemNetworkInfo::WlanMode:
{
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(hasWifi) {
NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
CWInterface *wifiInterface = [CWInterface interfaceWithName: qstringToNSString(interfaceForMode(mode).name())];
@@ -1223,7 +1223,7 @@ int QSystemNetworkInfoPrivate::networkSignalStrength(QSystemNetworkInfo::Network
{
int signalQuality = 0;
if(hasWifi) {
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
QString name = interfaceForMode(mode).name();
CWInterface *wifiInterface = [CWInterface interfaceWithName:qstringToNSString(name)];
@@ -1350,7 +1350,7 @@ QString QSystemNetworkInfoPrivate::networkName(QSystemNetworkInfo::NetworkMode m
{
QString name = interfaceForMode(mode).name();
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
if(hasWifi) {
CWInterface *wifiInterface = [CWInterface interfaceWithName:qstringToNSString(name)];
QString netname = nsstringToQString([wifiInterface ssid]);
@@ -1451,7 +1451,7 @@ void QSystemNetworkInfoPrivate::wifiNetworkChanged(const QString &notification,
Q_EMIT networkStatusChanged( QSystemNetworkInfo::WlanMode, status);
}
if(notification == QLatin1String("POWER_CHANGED_NOTIFICATION")) {
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
CWInterface *wifiInterface = [CWInterface interfaceWithName: qstringToNSString(interfaceName)];
if([wifiInterface power]) {
if(!rssiTimer->isActive()) {
@@ -1516,7 +1516,12 @@ int QSystemDisplayInfoPrivate::displayBrightness(int screen)
int QSystemDisplayInfoPrivate::colorDepth(int screen)
{
long bitsPerPixel = 0;
+#ifndef MAC_SDK_10_5
+ CGDisplayModeRef mode = CGDisplayCopyDisplayMode(getCGId(screen));
+ bitsPerPixel = stringFromCFString(CGDisplayModeCopyPixelEncoding(mode)).toLong();
+#else
bitsPerPixel = CGDisplayBitsPerPixel(getCGId(screen));
+#endif
return (int)bitsPerPixel;
}
@@ -1938,7 +1943,7 @@ void QSystemStorageInfoPrivate::disconnectNotify(const char *signal)
if (QLatin1String(signal) ==
QLatin1String(QMetaObject::normalizedSignature(SIGNAL(logicalDriveChanged(bool,const QString &))))) {
-#ifdef MAC_SDK_10_6
+#ifndef MAC_SDK_10_5
// DAUnregisterApprovalCallback(daSessionThread->session,(void*)mountCallback,NULL);
#else
// DAUnregisterApprovalCallback((__DAApprovalSession *)daSessionThread->session,(void*)unmountCallback,NULL);
diff --git a/src/systeminfo/qsysteminfo_maemo.cpp b/src/systeminfo/qsysteminfo_maemo.cpp
index ce7c727120..be168061f1 100644
--- a/src/systeminfo/qsysteminfo_maemo.cpp
+++ b/src/systeminfo/qsysteminfo_maemo.cpp
@@ -82,6 +82,16 @@
#endif
#include <QDBusInterface>
+#ifdef Q_USE_BME
+extern "C" {
+#include <errno.h>
+#include <time.h>
+#include "bme/bmeipc.h"
+#include "bme/bmemsg.h"
+#include "bme/em_isi.h"
+}
+#endif
+
static QString sysinfodValueForKey(const QString& key)
{
QString value = "";
@@ -127,7 +137,7 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, ProfileDataValue
QTM_BEGIN_NAMESPACE
QSystemInfoPrivate::QSystemInfoPrivate(QSystemInfoLinuxCommonPrivate *parent)
- : QSystemInfoLinuxCommonPrivate(parent)
+ : QSystemInfoLinuxCommonPrivate(parent)
{
}
@@ -141,17 +151,17 @@ QStringList QSystemInfoPrivate::availableLanguages() const
#if defined(Q_WS_MAEMO_6)
QDir langDir("/etc/meego-supported-languages");
- languages = langDir.entryList(QStringList() <<"??",QDir::Files | QDir::NoDotAndDotDot, QDir::Name);
-#else
+ languages = langDir.entryList(QStringList() << "??", QDir::Files | QDir::NoDotAndDotDot, QDir::Name);
+#else // Q_WS_MAEMO_6
GConfItem languagesItem("/meegotouch/inputmethods/languages");
const QStringList locales = languagesItem.value().toStringList();
- foreach(const QString &locale, locales) {
- languages << locale.mid(0,2);
- }
+ foreach (const QString &locale, locales)
+ languages << locale.mid(0, 2);
+
languages << currentLanguage();
languages.removeDuplicates();
-#endif
+#endif // Q_WS_MAEMO_6
return languages;
}
@@ -159,109 +169,105 @@ QStringList QSystemInfoPrivate::availableLanguages() const
QString QSystemInfoPrivate::currentLanguage() const
{
#if defined(Q_WS_MAEMO_6)
- GConfItem langItem("/meegotouch/i18n/language");
- QString lang = langItem.value().toString();
- if(lang.count() > 2) lang = lang.left(2);
- if (lang.isEmpty()) {
- lang = QString::fromLocal8Bit(qgetenv("LANG")).left(2);
+ QString lang;
+ if (currentLang.isEmpty()) {
+ GConfItem langItem("/meegotouch/i18n/language");
+ lang = langItem.value().toString();
+ if (lang.count() > 2)
+ lang = lang.left(2);
+ if (lang.isEmpty())
+ lang = QString::fromLocal8Bit(qgetenv("LANG")).left(2);
+ } else {
+ lang = currentLang;
}
+
return lang;
-#else
+#else // Q_WS_MAEMO_6
return QSystemInfoLinuxCommonPrivate::currentLanguage();
-#endif
+#endif // Q_WS_MAEMO_6
}
-
QString QSystemInfoPrivate::currentCountryCode() const
{
#if defined(Q_WS_MAEMO_6)
GConfItem langItem("/meegotouch/i18n/region");
- QString langCC = langItem.value().toString().section("_",1,1);
- if (langCC.isEmpty()) {
- langCC = QString::fromLocal8Bit(qgetenv("LANG")).section("_",1,1);
- langCC = langCC.remove(".UTF-8",Qt::CaseSensitive);
- return langCC;
- }
-#endif
+ QString langCC = langItem.value().toString().section("_", 1, 1);
+ if (langCC.isEmpty()) {
+ langCC = QString::fromLocal8Bit(qgetenv("LANG")).section("_", 1, 1);
+ langCC = langCC.remove(".UTF-8", Qt::CaseSensitive);
+ }
+ return langCC;
+#else // Q_WS_MAEMO_6
return QSystemInfoLinuxCommonPrivate::currentCountryCode();
+#endif // Q_WS_MAEMO_6
}
-QString QSystemInfoPrivate::version(QSystemInfo::Version type,const QString &parameter)
+QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &parameter)
{
- QString errorStr = "Not Available";
-
switch(type) {
- case QSystemInfo::Os :
- {
- QString sysinfodValue = sysinfodValueForKey("/device/sw-release-ver");//("/device/content-ver");
+ case QSystemInfo::Os: {
+ QString sysinfodValue = sysinfodValueForKey("/device/sw-release-ver"); //("/device/content-ver");
if (!sysinfodValue.isEmpty()) {
- sysinfodValue = sysinfodValue.section("_",2,4);
+ sysinfodValue = sysinfodValue.section("_", 2, 4);
return sysinfodValue;
}
}
- break;
- case QSystemInfo::Firmware :
- {
+
+ case QSystemInfo::Firmware: {
QString sysinfodValue = sysinfodValueForKey("/device/sw-release-ver");
- if (!sysinfodValue.isEmpty()) {
+ if (!sysinfodValue.isEmpty())
return sysinfodValue;
- }
}
default:
return QSystemInfoLinuxCommonPrivate::version(type, parameter);
- break;
};
- return errorStr;
}
bool QSystemInfoPrivate::hasFeatureSupported(QSystemInfo::Feature feature)
{
bool featureSupported = false;
+
switch (feature) {
- case QSystemInfo::SimFeature :
- {
- QSystemDeviceInfoPrivate d;
- featureSupported = (d.simStatus() != QSystemDeviceInfo::SimNotAvailable);
- }
+ case QSystemInfo::SimFeature: {
+ QSystemDeviceInfoPrivate d;
+ featureSupported = (d.simStatus() != QSystemDeviceInfo::SimNotAvailable);
break;
- case QSystemInfo::LocationFeature :
- {
+ }
+
+ case QSystemInfo::LocationFeature: {
#if defined(Q_WS_MAEMO_6)
- GConfItem satellitePositioning("/system/osso/location/settings/satellitePositioning");
- GConfItem networkPositioning("/system/osso/location/settings/networkPositioning");
-
- bool satellitePositioningAvailable = satellitePositioning.value(false).toBool();
- bool networkPositioningAvailable = networkPositioning.value(false).toBool();
-
- featureSupported = (satellitePositioningAvailable || networkPositioningAvailable);
-#else /* Maemo 5 */
- GConfItem locationValues("/system/nokia/location");
- const QStringList locationKeys = locationValues.listEntries();
- if(locationKeys.count()) {
- featureSupported = true;
- }
-#endif /* Maemo 5 */
- }
+ GConfItem satellitePositioning("/system/osso/location/settings/satellitePositioning");
+ GConfItem networkPositioning("/system/osso/location/settings/networkPositioning");
+
+ bool satellitePositioningAvailable = satellitePositioning.value(false).toBool();
+ bool networkPositioningAvailable = networkPositioning.value(false).toBool();
+
+ featureSupported = (satellitePositioningAvailable || networkPositioningAvailable);
+#else // Q_WS_MAEMO_6
+ GConfItem locationValues("/system/nokia/location");
+ const QStringList locationKeys = locationValues.listEntries();
+ if (locationKeys.count())
+ featureSupported = true;
+#endif // Q_WS_MAEMO_6
break;
- case QSystemInfo::HapticsFeature:
- {
- // if(halIsAvailable) {
- QHalInterface iface;
- const QStringList touchSupport =
- iface.findDeviceByCapability("input.touchpad");
- if(touchSupport.count()) {
- featureSupported = true;
- } else {
- featureSupported = false;
- }
- }
- // }
+ }
+
+ case QSystemInfo::HapticsFeature: {
+ QHalInterface iface;
+ const QStringList touchSupport(iface.findDeviceByCapability("input.touchpad"));
+ if (touchSupport.count())
+ featureSupported = true;
+ else
+ featureSupported = false;
break;
+ }
+
default:
featureSupported = QSystemInfoLinuxCommonPrivate::hasFeatureSupported(feature);
break;
};
+
return featureSupported;
}
@@ -1120,7 +1126,7 @@ QSystemNetworkInfo::CellDataTechnology QSystemNetworkInfoPrivate::cellDataTechno
}
QSystemDisplayInfoPrivate::QSystemDisplayInfoPrivate(QSystemDisplayInfoLinuxCommonPrivate *parent)
- : QSystemDisplayInfoLinuxCommonPrivate(parent)
+ : QSystemDisplayInfoLinuxCommonPrivate(parent)
{
}
@@ -1131,47 +1137,40 @@ QSystemDisplayInfoPrivate::~QSystemDisplayInfoPrivate()
int QSystemDisplayInfoPrivate::displayBrightness(int screen)
{
QDesktopWidget wid;
- if(wid.screenCount() - 1 < screen) {
+ if (wid.screenCount() - 1 < screen)
return -1;
- }
+
GConfItem currentBrightness("/system/osso/dsm/display/display_brightness");
GConfItem maxBrightness("/system/osso/dsm/display/max_display_brightness_levels");
- if(maxBrightness.value().toInt()) {
- float retVal = 100 * (currentBrightness.value().toFloat() /
- maxBrightness.value().toFloat());
+ if (maxBrightness.value().toInt()) {
+ float retVal = 100 * (currentBrightness.value().toFloat() / maxBrightness.value().toFloat());
return retVal;
}
return -1;
}
-float QSystemDisplayInfoPrivate::contrast(int screen)
-{
- Q_UNUSED(screen);
-
- return 0.0;
-}
-
QSystemDisplayInfo::BacklightState QSystemDisplayInfoPrivate::backlightStatus(int screen)
{
Q_UNUSED(screen)
+
QSystemDisplayInfo::BacklightState backlightState = QSystemDisplayInfo::BacklightStateUnknown;
#if !defined(QT_NO_DBUS)
QDBusReply<QString> reply = QDBusConnection::systemBus().call(
- QDBusMessage::createMethodCall("com.nokia.mce", "/com/nokia/mce/request",
- "com.nokia.mce.request", "get_display_status"));
+ QDBusMessage::createMethodCall("com.nokia.mce", "/com/nokia/mce/request",
+ "com.nokia.mce.request", "get_display_status"));
if (reply.isValid()) {
QString displayStatus = reply.value();
- if (displayStatus == "off") {
+ if (displayStatus == "off")
backlightState = QSystemDisplayInfo::BacklightStateOff;
- } else if (displayStatus == "dimmed") {
+ else if (displayStatus == "dimmed")
backlightState = QSystemDisplayInfo::BacklightStateDimmed;
- } else if (displayStatus == "on") {
+ else if (displayStatus == "on")
backlightState = QSystemDisplayInfo::BacklightStateOn;
- }
}
-#endif
+#endif // QT_NO_DBUS
+
return backlightState;
}
@@ -1846,7 +1845,6 @@ QByteArray QSystemDeviceInfoPrivate::uniqueDeviceID()
hash.addData(bytes);
hash.addData(wlanmac.toLocal8Bit());
hash.addData(btmac.toLocal8Bit());
- qDebug() << Q_FUNC_INFO << hash.result().toHex();
return hash.result().toHex();
#endif
@@ -1952,8 +1950,276 @@ void QSystemScreenSaverPrivate::setScreenSaverInhibited(bool on)
}
}
+
+#ifdef Q_USE_BME
+////////////
+// from QmSystem remove if/when QmSystem can be a dependency.
+
+template <typename T>
+class EmHandle
+{
+public:
+ EmHandle() { }
+
+ virtual ~EmHandle() { close(); }
+
+ bool open()
+ {
+ T *self = static_cast<T*>(this);
+ if (!self->is_opened()) {
+ self->open_();
+ }
+
+ if (!self->is_opened()) {
+ qCritical() << "EM: error opening: " << strerror(errno);
+ }
+ return self->is_opened();
+ }
+
+ void close()
+ {
+ T *self = static_cast<T*>(this);
+ if (self->is_opened()) {
+ self->close_();
+ }
+ }
+
+};
+
+#define BMEIPC_MAX_TRIES 2
+
+class EmIpc : public EmHandle<EmIpc>
+{
+ friend class EmHandle<EmIpc>;
+public:
+
+ EmIpc() : EmHandle<EmIpc>(), sd_(-1), restart_count_(0) {}
+
+ bool query(const void *msg1, int len1, void *msg2 = NULL, int len2 = -1)
+ {
+ if (!is_opened()) {
+ qCritical() << "EM: not open";
+ return false;
+ }
+
+ int tries = 0;
+ while (true) {
+ tries++;
+ if (::bmeipc_query(sd_, msg1, len1, msg2, len2) >= 0)
+ return true;
+ if (errno == EIO)
+ restart_count_++;
+ if (tries >= BMEIPC_MAX_TRIES) {
+ qCritical() << "EM: Query failed: " << strerror(errno);
+ return false;
+ }
+ qWarning() << "EM:" << strerror(errno) << "(trying to reopen)";
+ close();
+ if (!open())
+ return false;
+ }
+ }
+
+ bool is_opened() { return sd_ >= 0; }
+ int restart_count() { return restart_count_; }
+
+private:
+
+ inline void open_()
+ {
+ sd_ = ::bmeipc_open();
+ }
+
+ inline void close_()
+ {
+ ::bmeipc_close(sd_);
+ sd_ = -1;
+ }
+
+
+ int sd_;
+ int restart_count_;
+};
+
+
+class EmEvents : public EmHandle<EmEvents>
+{
+ friend class EmHandle<EmEvents>;
+
+public:
+ EmEvents(int mask = -1)
+ : EmHandle<EmEvents>(),
+ sd_(-1),
+ mask_(mask)
+ { }
+
+ int read()
+ {
+ if (!is_opened()) {
+ return BMEVENT_ERROR;
+ }
+
+ int res = ::bmeipc_eread(sd_);
+ if (res == BMEVENT_ERROR) {
+ qDebug() << "bmeipc_eread returned error" << strerror(errno);
+ }
+ return res;
+ }
+
+ inline bool is_opened() { return sd_ >= 0; }
+
+ QSocketNotifier const* notifier() const { return notifier_.data(); }
+
+private:
+
+ inline void open_()
+ {
+ sd_ = ::bmeipc_eopen(mask_);
+ if (is_opened())
+ notifier_.reset(new QSocketNotifier(sd_, QSocketNotifier::Read));
+ }
+
+ inline void close_()
+ {
+ notifier_.reset(0);
+ ::bmeipc_eclose(sd_);
+ sd_ = -1;
+ }
+
+ int sd_;
+ int mask_;
+ QScopedPointer<QSocketNotifier> notifier_;
+};
+
+
+class EmCurrentMeasurement : public EmHandle<EmCurrentMeasurement>
+{
+ friend class EmHandle<EmCurrentMeasurement>;
+
+public:
+
+ EmCurrentMeasurement(unsigned int period)
+ : EmHandle<EmCurrentMeasurement>(),
+ period_(period),
+ mq_(-1),
+ em_ipc_(new EmIpc())
+ { }
+
+ inline bool is_opened() { return mq_ >= 0; }
+
+ bool measure(int &current)
+ {
+ current = 0;
+
+ if (!is_opened())
+ return false;
+
+ int n;
+ bmeipc_meas_t msg;
+ n = mq_receive(mq_, (char *)&msg, sizeof(msg), 0);
+
+ if (0 > n) {
+ qDebug() << "failed to receive message: "
+ << strerror(errno);
+ } else if (n != sizeof(msg)) {
+ qDebug() << "bad message size: need "
+ << sizeof (msg) << ", got " << n;
+ } else if (MEASUREMENTS_ERROR == msg.state) {
+ qDebug() << " error message received";
+ } else if (MEASUREMENTS_OFF == msg.state) {
+ qDebug() << "measurements are off";
+ } else {
+ current = msg.bat_current;
+ return true;
+ }
+ return false;
+ }
+
+ QSocketNotifier const* notifier() const { return notifier_.data(); }
+
+private:
+
+ inline bool request_measurements_(unsigned int period)
+ {
+ struct emsg_measurement_req req;
+ struct emsg_measurement_req_elem req_elem;
+
+ if (!em_ipc_->open()) {
+ qCritical() << "failed to contact bme server: "
+ << strerror(errno);
+ return false;
+ }
+
+ /* Send message header */
+ req.type = EM_MEASUREMENT_REQ;
+ req.subtype = 0;
+ req.measurement_action = EM_MEASUREMENT_ACTION_START;
+ req.channel_count = 1;
+
+ if (!em_ipc_->query(&req, sizeof(req))) {
+ qCritical() << "failed to request measurments: "
+ << strerror(errno);
+ return false;
+ }
+
+ req_elem.type = EM_MEASUREMENT_TYPE_CURRENT;
+ req_elem.period = period;
+
+ if (!em_ipc_->query(&req_elem, sizeof(req_elem))) {
+ qCritical() << "failed to request data: " << strerror(errno);
+ return false;
+ }
+
+ return true;
+
+ }
+
+ void open_()
+ {
+ if (!request_measurements_(period_))
+ return;
+
+ mq_ = mq_open(BMEIPC_MQNAME, O_RDONLY);
+ if (!is_opened())
+ return;
+
+ notifier_.reset(new QSocketNotifier(mq_, QSocketNotifier::Read));
+ }
+
+ void close_()
+ {
+ struct emsg_measurement_req req;
+
+ req.type = EM_MEASUREMENT_REQ;
+ req.subtype = 0;
+ req.measurement_action = EM_MEASUREMENT_ACTION_STOP;
+ req.channel_count = 0;
+
+ if (!em_ipc_->query(&req, sizeof(req))) {
+ qCritical() << "failed to stop measurements"
+ << strerror(errno);
+ }
+
+ em_ipc_->close();
+
+ notifier_.reset(0);
+ ::mq_close(mq_);
+ mq_ = -1;
+ }
+
+ int period_;
+ mqd_t mq_;
+ QScopedPointer<EmIpc> em_ipc_;
+ QScopedPointer<QSocketNotifier> notifier_;
+};
+#endif
+
QSystemBatteryInfoPrivate::QSystemBatteryInfoPrivate(QSystemBatteryInfoLinuxCommonPrivate *parent)
: QSystemBatteryInfoLinuxCommonPrivate(parent)
+#ifdef Q_USE_BME
+ ,emIpc(new EmIpc()),
+ emEvents(new EmEvents())
+#endif
{
#if !defined(QT_NO_DBUS)
QHalInterface iface;
@@ -1977,7 +2243,6 @@ QSystemBatteryInfoPrivate::QSystemBatteryInfoPrivate(QSystemBatteryInfoLinuxComm
QSystemBatteryInfoPrivate::~QSystemBatteryInfoPrivate()
{
-
}
#if !defined(QT_NO_DBUS)
@@ -2014,6 +2279,100 @@ void QSystemBatteryInfoPrivate::halChangedMaemo(int count,QVariantList map)
}
#endif
+void QSystemBatteryInfoPrivate::connectNotify(const char *signal)
+{
+#ifdef Q_USE_BME
+ if (QLatin1String(signal) ==
+ QLatin1String(QMetaObject::normalizedSignature(SIGNAL(currentFlowChanged(int))))) {
+ startMeasurements();
+ }
+#endif
+}
+
+void QSystemBatteryInfoPrivate::disconnectNotify(const char *signal)
+{
+#ifdef Q_USE_BME
+ if (QLatin1String(signal) ==
+ QLatin1String(QMetaObject::normalizedSignature(SIGNAL(currentFlowChanged(int))))) {
+ stopMeasurements();
+ }
+#endif
+}
+
+#ifdef Q_USE_BME
+void QSystemBatteryInfoPrivate::startMeasurements()
+{
+ emCurrentMeasurements.reset(new EmCurrentMeasurement(2));//every 1 second
+ if (emCurrentMeasurements->open()) {
+ connect(emCurrentMeasurements->notifier(),SIGNAL(activated(int)),this,SLOT(onMeasurement(int)));
+ }
+}
+
+
+void QSystemBatteryInfoPrivate::stopMeasurements()
+{
+ disconnect(emCurrentMeasurements->notifier(),SIGNAL(activated(int)),this,SLOT(onMeasurement(int)));
+ emCurrentMeasurements->close();
+ if (emCurrentMeasurements->is_opened()) {
+ qDebug() << "disconnect failed";
+ } else {
+ emCurrentMeasurements.reset(0);
+ }
+}
+
+void QSystemBatteryInfoPrivate::onMeasurement(int)
+{
+ bool rc;
+ int current;
+
+ if (emCurrentMeasurements.isNull()) {
+ qWarning() << "onMeasurement: null";
+ return;
+ }
+
+ rc = emCurrentMeasurements->measure(current);
+ Q_EMIT currentFlowChanged(current);
+}
+#endif
+
+int QSystemBatteryInfoPrivate::currentFlow() const
+{
+#ifdef Q_USE_BME
+ QDateTime now(QDateTime::currentDateTime());
+
+ if (!isDataActual || now >= cacheExpire) {
+ if (!emIpc->open()) {
+ return 0;
+ }
+
+ int prevCc = bmeStat[COULOMB_COUNTER];
+
+ bmeipc_msg_t request;
+ request.type = BME_SYSMSG_GETSTAT;
+ request.subtype = 0;
+ if (!emIpc->query(&request, sizeof(request), &bmeStat, sizeof(bmeStat))) {
+ return 0;
+ }
+
+ isDataActual = true;
+ cacheExpire = now.addSecs(5);
+
+ if (prevColoumbCounterRestartCount != emIpc->restart_count()) {
+ coloumbCounterOffset += (prevCc - bmeStat[COULOMB_COUNTER]);
+ qDebug() << "CC reset, prev_cc:" << prevCc
+ << "new_cc" << bmeStat[COULOMB_COUNTER]
+ << "new offset:" << coloumbCounterOffset;
+ prevColoumbCounterRestartCount = emIpc->restart_count();
+ }
+ }
+
+ return bmeStat[BATTERY_CURRENT];
+#endif
+ return 0;
+}
+
+
+
#include "moc_qsysteminfo_maemo_p.cpp"
QTM_END_NAMESPACE
diff --git a/src/systeminfo/qsysteminfo_maemo_p.h b/src/systeminfo/qsysteminfo_maemo_p.h
index 9563b4592c..2843b8b028 100644
--- a/src/systeminfo/qsysteminfo_maemo_p.h
+++ b/src/systeminfo/qsysteminfo_maemo_p.h
@@ -74,6 +74,13 @@ Q_DECLARE_METATYPE(QList<ProfileDataValue>)
#endif
+#ifdef Q_USE_BME
+extern "C" {
+#include "bme/bmeipc.h"
+}
+#include <mqueue.h>
+#endif
+
QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -89,12 +96,12 @@ class QSystemInfoPrivate : public QSystemInfoLinuxCommonPrivate
Q_OBJECT
public:
-
QSystemInfoPrivate(QSystemInfoLinuxCommonPrivate *parent = 0);
virtual ~QSystemInfoPrivate();
+
QStringList availableLanguages() const;
QString version(QSystemInfo::Version, const QString &parameter = QString());
- QString currentLanguage() const;
+ virtual QString currentLanguage() const;
QString currentCountryCode() const;
bool hasFeatureSupported(QSystemInfo::Feature feature);
@@ -213,16 +220,11 @@ class QSystemDisplayInfoPrivate : public QSystemDisplayInfoLinuxCommonPrivate
Q_OBJECT
public:
-
QSystemDisplayInfoPrivate(QSystemDisplayInfoLinuxCommonPrivate *parent = 0);
virtual ~QSystemDisplayInfoPrivate();
- float contrast(int screen);
+
int displayBrightness(int screen);
QSystemDisplayInfo::BacklightState backlightStatus(int screen);
-Q_SIGNALS:
- void orientationChanged(QSystemDisplayInfo::DisplayOrientation newOrientation);
-
-
};
class QSystemDeviceInfoPrivate : public QSystemDeviceInfoLinuxCommonPrivate
@@ -338,6 +340,12 @@ private:
#endif
};
+#ifdef Q_USE_BME
+class EmIpc;
+class EmEvents;
+class EmCurrentMeasurement;
+#endif
+
class QSystemBatteryInfoPrivate : public QSystemBatteryInfoLinuxCommonPrivate
{
Q_OBJECT
@@ -345,10 +353,35 @@ public:
QSystemBatteryInfoPrivate(QSystemBatteryInfoLinuxCommonPrivate *parent = 0);
~QSystemBatteryInfoPrivate();
+ int currentFlow() const;
+
private Q_SLOTS:
#if !defined(QT_NO_DBUS)
void halChangedMaemo(int,QVariantList);
#endif
+#ifdef Q_USE_BME
+ void onMeasurement(int socket);
+#endif
+
+private:
+ void connectNotify(const char *signal);
+ void disconnectNotify(const char *signal);
+
+#ifdef Q_USE_BME
+ mutable bmestat_t bmeStat;
+ mutable bool isDataActual;
+ mutable QDateTime cacheExpire;
+
+ mutable int coloumbCounterOffset;
+ mutable int prevColoumbCounterRestartCount;
+
+ void startMeasurements();
+ void stopMeasurements();
+
+ QScopedPointer<EmIpc> emIpc;
+ QScopedPointer<EmEvents> emEvents;
+ QScopedPointer<EmCurrentMeasurement> emCurrentMeasurements;
+#endif
};
diff --git a/src/systeminfo/qsysteminfo_s60.cpp b/src/systeminfo/qsysteminfo_s60.cpp
index 3febfbefe0..b9e1f904a0 100644
--- a/src/systeminfo/qsysteminfo_s60.cpp
+++ b/src/systeminfo/qsysteminfo_s60.cpp
@@ -697,6 +697,11 @@ void QSystemNetworkInfoPrivate::changedNetworkStatus()
emit networkStatusChanged(mode, networkStatus(mode));
}
+void QSystemNetworkInfoPrivate::changedCellDataTechnology()
+ {
+ emit cellDataTechnologyChanged(cellDataTechnology());
+ }
+
void QSystemNetworkInfoPrivate::changedCellId(int cellIdTel)
{
emit cellIdChanged(cellIdTel);
@@ -777,6 +782,23 @@ QSystemNetworkInfo::NetworkMode QSystemNetworkInfoPrivate::currentMode()
QSystemNetworkInfo::CellDataTechnology QSystemNetworkInfoPrivate::cellDataTechnology()
{
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TUint celldatatechnology = DeviceInfo::instance()->networkInfo()->CellDataTechnology();
+ switch (celldatatechnology )
+ {
+ case KHsdpaBearer:
+ return QSystemNetworkInfo::HspaDataTechnology;
+
+ case KEGprsBearer:
+ return QSystemNetworkInfo::EdgeDataTechnology;
+
+ case KGprsBearer:
+ return QSystemNetworkInfo::GprsDataTechnology;
+
+ case KUmtsBearer:
+ return QSystemNetworkInfo::UmtsDataTechnology;
+ }
+#endif
return QSystemNetworkInfo::UnknownDataTechnology;
}
diff --git a/src/systeminfo/qsysteminfo_s60_p.h b/src/systeminfo/qsysteminfo_s60_p.h
index caabc19dad..dd2f44a27e 100644
--- a/src/systeminfo/qsysteminfo_s60_p.h
+++ b/src/systeminfo/qsysteminfo_s60_p.h
@@ -153,6 +153,7 @@ Q_SIGNALS:
void networkNameChanged(QSystemNetworkInfo::NetworkMode,const QString &);
void networkModeChanged(QSystemNetworkInfo::NetworkMode);
void cellIdChanged(int);//1.2
+ void cellDataTechnologyChanged(QSystemNetworkInfo::CellDataTechnology);
protected: //from MTelephonyInfoObserver
void batteryLevelChanged(){};
@@ -168,6 +169,7 @@ protected: //from MTelephonyInfoObserver
void changedCellId(int);
virtual void changedNetworkStatus();
virtual void changedNetworkMode();
+ virtual void changedCellDataTechnology();
public slots:
void wlanNetworkNameChanged();
diff --git a/src/systeminfo/qsysteminfo_simulator.cpp b/src/systeminfo/qsysteminfo_simulator.cpp
index 6089f59430..ff04061cab 100644
--- a/src/systeminfo/qsysteminfo_simulator.cpp
+++ b/src/systeminfo/qsysteminfo_simulator.cpp
@@ -69,6 +69,41 @@
QTM_BEGIN_NAMESPACE
#endif
+#ifdef TESTR
+SystemInfoConnection::SystemInfoConnection(QObject *parent)
+ : QObject(parent)
+{
+}
+
+QSystemInfoPrivate *SystemInfoConnection::systeminfoPrivate()
+{
+ return getSystemInfoPrivate();
+}
+
+QSystemNetworkInfoPrivate *SystemInfoConnection::networkInfoPrivate()
+{
+ return getSystemNetworkInfoPrivate();
+}
+
+QSystemDeviceInfoPrivate *SystemInfoConnection::deviceInfoPrivate()
+{
+ return getSystemDeviceInfoPrivate();
+}
+
+QSystemStorageInfoPrivate *SystemInfoConnection::storageInfoPrivate()
+{
+ return getSystemStorageInfoPrivate();
+}
+
+QSystemBatteryInfoPrivate *SystemInfoConnection::batteryInfoPrivate()
+{
+ return getSystemBatteryInfoPrivate();
+}
+
+#include "qsysteminfo_simulator.moc"
+#endif
+
+
#ifdef QT_BUILD_SYSINFO_LIB
#include <mobilityconnection_p.h>
#include <private/qsimulatordata_p.h>
@@ -241,6 +276,9 @@ QSystemInfoPrivate::QSystemInfoPrivate(QObject *parent)
data.features.fill(false, featureMeta.keyCount());
QMetaEnum versionMeta = QSystemInfo::staticMetaObject.enumerator(QSystemInfo::staticMetaObject.indexOfEnumerator("Version"));
data.versions.fill("unknown", versionMeta.keyCount() + 1);
+#ifdef TESTR
+ setInitialData();
+#endif
}
void QSystemInfoPrivate::setInitialData()
@@ -336,6 +374,9 @@ QSystemNetworkInfoPrivate::QSystemNetworkInfoPrivate(QObject *parent)
QMetaEnum modeMeta = QSystemNetworkInfo::staticMetaObject.enumerator(QSystemNetworkInfo::staticMetaObject.indexOfEnumerator("NetworkMode"));
data.networkInfo.fill(init, modeMeta.keyCount());
+#ifdef TESTR
+ setInitialData();
+#endif
}
QSystemNetworkInfoPrivate::~QSystemNetworkInfoPrivate()
@@ -482,6 +523,9 @@ QSystemDisplayInfoPrivate::QSystemDisplayInfoPrivate(QObject *parent)
: QObject(parent)
{
ensureSimulatorConnection();
+#ifdef TESTR
+ setInitialData();
+#endif
}
void QSystemDisplayInfoPrivate::setInitialData()
@@ -533,6 +577,9 @@ QSystemDeviceInfoPrivate::QSystemDeviceInfoPrivate(QObject *parent)
: QObject(parent)
{
ensureSimulatorConnection();
+#ifdef TESTR
+ setInitialData();
+#endif
}
void QSystemDeviceInfoPrivate::setInitialData()
@@ -772,6 +819,9 @@ QSystemStorageInfoPrivate::QSystemStorageInfoPrivate(QObject *parent)
: QObject(parent)
{
ensureSimulatorConnection();
+#ifdef TESTR
+ setInitialData();
+#endif
}
void QSystemStorageInfoPrivate::setInitialData()
@@ -1004,6 +1054,9 @@ bool QSystemScreenSaverPrivate::isScreenLockOn()
QSystemBatteryInfoPrivate::QSystemBatteryInfoPrivate(QObject *parent)
: QObject(parent)
{
+#ifdef TESTR
+ setInitialData();
+#endif
}
QSystemBatteryInfoPrivate::~QSystemBatteryInfoPrivate()
@@ -1113,6 +1166,14 @@ void QSystemBatteryInfoPrivate::setMaxBars(int v)
}
}
+//QSystemBatteryInfo::EnergyUnit QSystemBatteryInfoPrivate::energyMeasurementUnit()
+//{
+// if (data.energyMeasurementUnit != v) {
+// data.energyMeasurementUnit = v;
+// }
+
+//}
+
int QtMobility::QSystemDisplayInfoPrivate::getDPIHeight(int screen) const
{
Q_UNUSED(screen)
diff --git a/src/systeminfo/qsysteminfo_simulator_p.h b/src/systeminfo/qsysteminfo_simulator_p.h
index 408687443b..c294783616 100644
--- a/src/systeminfo/qsysteminfo_simulator_p.h
+++ b/src/systeminfo/qsysteminfo_simulator_p.h
@@ -73,7 +73,7 @@ QTM_BEGIN_NAMESPACE
class QSystemNetworkInfo;
-class QSystemInfoPrivate : public QObject
+class Q_SYSINFO_EXPORT QSystemInfoPrivate : public QObject
{
Q_OBJECT
public:
@@ -105,7 +105,7 @@ private:
};
QSystemInfoPrivate *getSystemInfoPrivate();
-class QSystemNetworkInfoPrivate : public QObject
+class Q_SYSINFO_EXPORT QSystemNetworkInfoPrivate : public QObject
{
Q_OBJECT
public:
@@ -158,7 +158,7 @@ private:
};
QSystemNetworkInfoPrivate *getSystemNetworkInfoPrivate();
-class QSystemDisplayInfoPrivate : public QObject
+class Q_SYSINFO_EXPORT QSystemDisplayInfoPrivate : public QObject
{
Q_OBJECT
public:
@@ -190,7 +190,7 @@ private:
};
QSystemDisplayInfoPrivate *getSystemDisplayInfoPrivate();
-class QSystemDeviceInfoPrivate : public QObject
+class Q_SYSINFO_EXPORT QSystemDeviceInfoPrivate : public QObject
{
Q_OBJECT
public:
@@ -284,7 +284,7 @@ private:
};
QSystemDeviceInfoPrivate *getSystemDeviceInfoPrivate();
-class QSystemStorageInfoPrivate : public QObject
+class Q_SYSINFO_EXPORT QSystemStorageInfoPrivate : public QObject
{
Q_OBJECT
public:
@@ -322,7 +322,7 @@ private:
};
QSystemStorageInfoPrivate *getSystemStorageInfoPrivate();
-class QSystemScreenSaverPrivate : public QObject
+class Q_SYSINFO_EXPORT QSystemScreenSaverPrivate : public QObject
{
Q_OBJECT
@@ -341,7 +341,7 @@ private:
};
-class QSystemBatteryInfoPrivate : public QObject
+class Q_SYSINFO_EXPORT QSystemBatteryInfoPrivate : public QObject
{
Q_OBJECT
@@ -404,6 +404,21 @@ private:
};
QSystemBatteryInfoPrivate *getSystemBatteryInfoPrivate();
+#ifdef TESTR
+class Q_SYSINFO_EXPORT SystemInfoConnection : public QObject
+{
+ Q_OBJECT
+public:
+ SystemInfoConnection(QObject *parent = 0);
+ QSystemInfoPrivate *systeminfoPrivate();
+ QSystemNetworkInfoPrivate *networkInfoPrivate();
+ QSystemDeviceInfoPrivate *deviceInfoPrivate();
+ QSystemStorageInfoPrivate *storageInfoPrivate();
+ QSystemBatteryInfoPrivate *batteryInfoPrivate();
+ QSystemDeviceInfoPrivate *alignedTImerPrivate();
+};
+#endif
+
QTM_END_NAMESPACE
QT_END_HEADER
diff --git a/src/systeminfo/qsysteminfocommon_p.h b/src/systeminfo/qsysteminfocommon_p.h
index 4731d786dd..59f856e722 100644
--- a/src/systeminfo/qsysteminfocommon_p.h
+++ b/src/systeminfo/qsysteminfocommon_p.h
@@ -49,6 +49,7 @@
#include "qsysteminfo_simulator_p.h"
#else
+#ifndef TESTR
#ifdef Q_OS_LINUX
#if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
#include "qsysteminfo_maemo_p.h"
@@ -66,6 +67,9 @@
#ifdef Q_OS_SYMBIAN
#include "qsysteminfo_s60_p.h"
#endif
+#else
+#include "qsysteminfo_simulator_p.h"
+#endif
#endif // QT_SIMULATOR
diff --git a/src/systeminfo/qsystemnetworkinfo.cpp b/src/systeminfo/qsystemnetworkinfo.cpp
index 55088c0b46..29e2dba7f2 100644
--- a/src/systeminfo/qsystemnetworkinfo.cpp
+++ b/src/systeminfo/qsystemnetworkinfo.cpp
@@ -44,7 +44,6 @@
#include <QMetaType>
QTM_BEGIN_NAMESPACE
-
Q_GLOBAL_STATIC(QSystemNetworkInfoPrivate, netInfoPrivate)
#ifdef QT_SIMULATOR
@@ -56,6 +55,7 @@ QSystemNetworkInfoPrivate *getSystemNetworkInfoPrivate() { return netInfoPrivate
\ingroup systeminfo
\inmodule QtSystemInfo
\brief The QSystemNetworkInfo class provides access to various networking status and signals.
+ \since 1.1
*/
/*!
@@ -301,10 +301,6 @@ QSystemNetworkInfo::NetworkMode QSystemNetworkInfo::currentMode()
*/
void QSystemNetworkInfo::connectNotify(const char *signal)
{
- // connect only once
- if (receivers(signal) > 1)
- return;
-
//check for networkSignalStrengthChanged() signal connect notification
//This is not required on all platforms
#if defined(Q_WS_MAEMO_5)
@@ -314,28 +310,28 @@ void QSystemNetworkInfo::connectNotify(const char *signal)
#endif // Q_WS_MAEMO_5
if (QLatin1String(signal) == SIGNAL(currentMobileCountryCodeChanged(QString))) {
connect(d, SIGNAL(currentMobileCountryCodeChanged(QString)),
- this, SIGNAL(currentMobileCountryCodeChanged(QString)));
+ this, SIGNAL(currentMobileCountryCodeChanged(QString)),Qt::UniqueConnection);
} else if (QLatin1String(signal) == SIGNAL(currentMobileNetworkCodeChanged(QString))) {
connect(d, SIGNAL(currentMobileNetworkCodeChanged(QString)),
- this, SIGNAL(currentMobileNetworkCodeChanged(QString)));
+ this, SIGNAL(currentMobileNetworkCodeChanged(QString)),Qt::UniqueConnection);
} else if (QLatin1String(signal) == SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode))) {
connect(d, SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode)),
- this, SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode)));
+ this, SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode)),Qt::UniqueConnection);
} else if (QLatin1String(signal) == SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString))) {
connect(d, SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)),
- this, SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)));
+ this, SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)),Qt::UniqueConnection);
} else if (QLatin1String(signal) == SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode,int))) {
connect(d, SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode,int)),
- this, SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode,int)));
+ this, SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode,int)),Qt::UniqueConnection);
} else if (QLatin1String(signal) == SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus))) {
connect(d, SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus)),
- this, SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus)));
+ this, SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus)),Qt::UniqueConnection);
} else if (QLatin1String(signal) == SIGNAL(cellIdChanged(int))) {
connect(d, SIGNAL(cellIdChanged(int)),
- this, SIGNAL(cellIdChanged(int)));
+ this, SIGNAL(cellIdChanged(int)),Qt::UniqueConnection);
} else if (QLatin1String(signal) == SIGNAL(cellIdChanged(int))) {
connect(d, SIGNAL(cellDataTechnologyChanged(QSystemNetworkInfo::CellDataTechnology)),
- this, SIGNAL(cellDataTechnologyChanged(QSystemNetworkInfo::CellDataTechnology)));
+ this, SIGNAL(cellDataTechnologyChanged(QSystemNetworkInfo::CellDataTechnology)),Qt::UniqueConnection);
}
}
@@ -345,7 +341,7 @@ void QSystemNetworkInfo::connectNotify(const char *signal)
void QSystemNetworkInfo::disconnectNotify(const char *signal)
{
// disconnect only when there's no connections
- if (receivers(signal) == 0)
+ if (receivers(signal) > 0)
return;
//check for networkSignalStrengthChanged() signal disconnect notification
diff --git a/src/systeminfo/qsystemscreensaver.cpp b/src/systeminfo/qsystemscreensaver.cpp
index 4d31a75bb4..3bfe151459 100644
--- a/src/systeminfo/qsystemscreensaver.cpp
+++ b/src/systeminfo/qsystemscreensaver.cpp
@@ -49,6 +49,7 @@ QTM_BEGIN_NAMESPACE
\ingroup systeminfo
\inmodule QtSystemInfo
\brief The QSystemScreenSaver class provides access to screen saver and blanking.
+ \since 1.1
On platforms where there is no one default screensaver mechanism, such as Linux, this class
may not be available.
diff --git a/src/systeminfo/qsystemstorageinfo.cpp b/src/systeminfo/qsystemstorageinfo.cpp
index 3d87f1d6b1..96feed5c99 100644
--- a/src/systeminfo/qsystemstorageinfo.cpp
+++ b/src/systeminfo/qsystemstorageinfo.cpp
@@ -56,6 +56,7 @@ QSystemStorageInfoPrivate *getSystemStorageInfoPrivate() { return storageInfoPri
\ingroup systeminfo
\inmodule QtSystemInfo
\brief The QSystemStorageInfo class provides access to disk storage information from the system.
+ \since 1.1
*/
/*!
@@ -114,9 +115,8 @@ QSystemStorageInfo::QSystemStorageInfo(QObject *parent)
this, SIGNAL(logicalDriveChanged(bool,QString)),
Qt::UniqueConnection);
- connect(d, SIGNAL(storageStateChanged(QString,QSystemStorageInfo::StorageState)),
- this, SIGNAL(storageStateChanged(QString,QSystemStorageInfo::StorageState)),
- Qt::UniqueConnection);
+ connect(d,SIGNAL(storageStateChanged(const QString &,QSystemStorageInfo::StorageState)),
+ this,SIGNAL(storageStateChanged(const QString &,QSystemStorageInfo::StorageState)),Qt::UniqueConnection);
}
/*!
diff --git a/src/systeminfo/symbian/networkinfo_s60.cpp b/src/systeminfo/symbian/networkinfo_s60.cpp
index 2022e78fd5..bd2b29589e 100644
--- a/src/systeminfo/symbian/networkinfo_s60.cpp
+++ b/src/systeminfo/symbian/networkinfo_s60.cpp
@@ -39,37 +39,63 @@
**
****************************************************************************/
#include "networkinfo_s60.h"
+#include "trace.h"
+//This const is added as alternative for EPacketNotifyDynamicCapsChange in pcktcs.h
+const TInt KPacketNofityDynamicCapsChange = 40021;
-CNetworkBase::CNetworkBase() : CActive(EPriorityStandard),
-iConstructed(EFalse), iObserver(NULL)
+
+CNetworkBase::CNetworkBase() : CActive(EPriorityNormal),
+iConstructed(EFalse), iObserver(NULL),iDynCaps(0)
{
TInt err = 0;
+ TRACES(qDebug() << "CNetworkBase::CNetworkBase<---");
+ CActiveScheduler::Add(this);
+
TRAP_IGNORE(
err = iTelServer.Connect();
- RDebug::Print(_L("Err val for RTelServer::Connect = %d"),err);
+ TRACES(qDebug() << "Err val for RTelServer::Connect" << err);
User::LeaveIfError(err);
- CleanupClosePushL(iTelServer);
+ )
+
+ CleanupClosePushL(iTelServer);
+
+ TRAP_IGNORE(
err = iTelServer.GetPhoneInfo( 0, iPhoneInfo );
- RDebug::Print(_L("Err val for RTelServer::GetPhoneInfo = %d"),err);
+ TRACES(qDebug() << "Err val for RTelServer::GetPhoneInfo =" << err);
User::LeaveIfError(err);
err = iMobilePhone.Open(iTelServer,iPhoneInfo.iName);
- RDebug::Print(_L("Err val for RMobilePhone::Open = %d"),err);
+ TRACES(qDebug() << "Err val for RMobilePhone::Open =" << err);
User::LeaveIfError(err);
err = iMobilePhone.Initialise();
- RDebug::Print(_L("Err val for RMobilePhone::Initialise = %d"),err);
+ TRACES(qDebug() << "Err val for RMobilePhone::Initialise =" << err);
User::LeaveIfError(err);
- CleanupStack::Pop(&iTelServer);
)
+
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TRAP_IGNORE(
+ err = iPacketService.Open(iMobilePhone);
+ TRACES(qDebug() << "Err val for iPacketService.Open =" << err);
+ User::LeaveIfError(err);
+ err = iPacketService.GetStatus(iPacketServiceStatus);
+ TRACES(qDebug() << "Err val for iPacketService.GetStatus =" << err);
+ User::LeaveIfError(err);
+ )
+#endif
if (!err)
{
iConstructed = ETrue;
}
+ CleanupStack::Pop(&iTelServer);
+ TRACES(qDebug() << "CNetworkBase::CNetworkBase--->");
}
CNetworkBase::~CNetworkBase()
{
iMobilePhone.Close();
iTelServer.Close();
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ iPacketService.Close();
+#endif
}
void CNetworkBase::AddObserver(MNetworkObserver *aObserver)
@@ -85,13 +111,14 @@ void CNetworkBase::RemoveObserver()
CNetworkMode::CNetworkMode()
{
#ifdef ETELMM_SUPPORTED
+ TRACES(qDebug() << "CNetworkMode::CNetworkMode--Start");
if (iConstructed)
{
TInt err = iMobilePhone.GetCurrentMode( iNetworkMode );
+ TRACES(qDebug() << "Current Network mode in ctr" << iNetworkMode);
if (!err)
{
- CActiveScheduler::Add(this);
StartMonitoring();
}
else
@@ -107,15 +134,19 @@ CNetworkMode::~CNetworkMode()
void CNetworkMode::DoCancel()
{
#ifdef ETELMM_SUPPORTED
+ TRACES ( qDebug() << "CNetworkMode::DoCancel<--" );
iMobilePhone.CancelAsyncRequest(EMobilePhoneNotifyModeChange);
+ TRACES ( qDebug() << "CNetworkMode::DoCancel-->" );
#endif
}
void CNetworkMode::RunL()
{
- RDebug::Print(_L("CNetworkMode::RunL Called"));
+ TRACES(qDebug() << "CNetworkMode::RunL-Networkmode is<--:" << iNetworkMode);
+ User::LeaveIfError(iStatus.Int());
iObserver->ChangedNetworkMode();
StartMonitoring();
+ TRACES(qDebug() << "CNetworkMode::RunL()--->");
}
void CNetworkMode::StartMonitoring()
@@ -123,6 +154,7 @@ void CNetworkMode::StartMonitoring()
#ifdef ETELMM_SUPPORTED
iMobilePhone.NotifyModeChange ( iStatus,iNetworkMode);
SetActive();
+ TRACES(qDebug() << "CNetworkMode::StartMonitoring--End");
#endif
}
@@ -131,10 +163,11 @@ RMobilePhone::TMobilePhoneNetworkMode CNetworkMode::GetMode() const
return iNetworkMode;
}
-CNetworkStatus :: CNetworkStatus()
+CNetworkStatus::CNetworkStatus()
{
#ifdef ETELMM_SUPPORTED
+ TRACES (qDebug() << "CNetworkStatus::CNetworkStatus<----");
if (iConstructed)
{
TInt err = iMobilePhone.GetMultimodeCaps( iCapsPhone );
@@ -143,37 +176,42 @@ CNetworkStatus :: CNetworkStatus()
TRequestStatus reqStatus;
iMobilePhone.GetNetworkRegistrationStatus (reqStatus,iNetStatus);
User::WaitForRequest(reqStatus);
- CActiveScheduler::Add(this);
+ //CActiveScheduler::Add(this);
StartMonitoring();
}
else
iConstructed = EFalse;
}
+ TRACES (qDebug() << "CNetworkStatus::CNetworkStatus---->");
#endif
}
CNetworkStatus::~CNetworkStatus()
{
- DoCancel();
+ TRACES (qDebug() << "CNetworkStatus::~CNetworkStatus");
+ Cancel();
}
void CNetworkStatus::DoCancel()
{
#ifdef ETELMM_SUPPORTED
+ TRACES (qDebug() << "CNetworkStatus::DoCancel");
iMobilePhone.CancelAsyncRequest(EMobilePhoneNotifyNetworkRegistrationStatusChange);
#endif
}
void CNetworkStatus::RunL()
{
-
- RDebug::Print(_L("CNetworkStatus::RunL Called"));
+ TRACES (qDebug() << "CNetworkStatus::RunL()<---");
+ User::LeaveIfError(iStatus.Int());
iObserver->ChangedNetworkStatus();
StartMonitoring();
+ TRACES (qDebug() << "CNetworkStatus::RunL()--->");
}
void CNetworkStatus::StartMonitoring()
{
#ifdef ETELMM_SUPPORTED
+ TRACES (qDebug() << "CNetworkStatus::StartMonitoring");
iMobilePhone.NotifyNetworkRegistrationStatusChange ( iStatus,iNetStatus);
SetActive();
#endif
@@ -190,10 +228,86 @@ RMobilePhone::TMobilePhoneRegistrationStatus CNetworkStatus::GetStatus () const
return iNetStatus;
}
#endif
-CNetworkInfo::CNetworkInfo()
+
+CPacketDataStatus::CPacketDataStatus()
+ {
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TRACES (qDebug() << "CPacketDataStatus::CPacketDataStatus");
+ if (iPacketServiceStatus == RPacketService::EStatusActive)
+ {
+ iPacketService.GetDynamicCaps(iDynCaps); //Initialize dynamic caps
+ }
+ StartMonitoring();
+#endif
+ }
+
+CPacketDataStatus::~CPacketDataStatus()
+ {
+ TRACES (qDebug() << "CPacketDataStatus::~CPacketDataStatus");
+ Cancel();
+ }
+
+TBool CPacketDataStatus::IsDynamicCapsSupported()
+ {
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TInt err = iPacketService.GetStatus(iPacketServiceStatus);
+ if (iPacketServiceStatus == RPacketService::EStatusActive)
{
+ if (iPacketService.GetDynamicCaps(iDynCaps) == KErrNone) //other than KErrNotSupported
+ {
+ return ETrue;
+ }
+ }
+#endif
+ return EFalse;
+ }
+
+TUint CPacketDataStatus::DynamicCaps()
+ {
+ TRACES (qDebug() << "CPacketDataStatus::DynamicCaps value:" << iDynCaps);
+ return iDynCaps;
+ }
+
+void CPacketDataStatus::DoCancel()
+ {
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TRACES (qDebug() << "CPacketDataStatus::DoCancel<---");
+ iPacketService.CancelAsyncRequest(KPacketNofityDynamicCapsChange);
+ TRACES (qDebug() << "CPacketDataStatus::DoCancel--->");
+#endif
+ }
+
+void CPacketDataStatus::RunL()
+ {
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TRACES (qDebug() << "CPacketDataStatus::RunL()<---");
+ TRACES (qDebug() << "iStatus code:" << iStatus.Int());
+ User::LeaveIfError(iStatus.Int());
+ iObserver->ChangedCellDataTechnology();
+ StartMonitoring();
+ TRACES(qDebug() << "CPacketDataStatus::RunL()--->");
+#endif
+ }
+
+void CPacketDataStatus::StartMonitoring()
+ {
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TRACES (qDebug() << "CPacketDataStatus::StartMonitoring<---");
+ if (!IsActive())
+ {
+ iPacketService.NotifyDynamicCapsChange(iStatus,iDynCaps);
+ SetActive();
+ }
+ TRACES (qDebug() << "CPacketDataStatus::StartMonitoring--->");
+#endif
+ }
+
+CNetworkInfo::CNetworkInfo():iCellDataTechnology(KDefaultBearer)
+ {
+ //Add observers
iNetStat.Add(this);
iNetMode.Add(this);
+ iPacketDataStatus.Add(this);
}
RMobilePhone::TMobilePhoneNetworkMode CNetworkInfo::GetMode() const
@@ -231,3 +345,62 @@ void CNetworkInfo::ChangedNetworkStatus()
foreach (MNetworkInfoObserver *observer, iObservers)
observer->changedNetworkStatus();
}
+
+void CNetworkInfo::ChangedCellDataTechnology()
+ {
+ TRACES (qDebug() << "CNetworkInfo::ChangedCellDataTechnology");
+ TUint celldatatech = CellDataTechnology();
+ if ( celldatatech != iCellDataTechnology )
+ {
+ TRACES (qDebug() << "Notify observers");
+ foreach (MNetworkInfoObserver *observer, iObservers)
+ observer->changedCellDataTechnology();
+ }
+ iCellDataTechnology = celldatatech;
+ }
+
+ TUint CNetworkInfo::CellDataTechnology()
+ {
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ TRACES (qDebug() << "CNetworkInfo::CellDataTechnology<---");
+ TUint dynamicCaps = 0;
+ if (iPacketDataStatus.IsDynamicCapsSupported())
+ {
+ dynamicCaps = iPacketDataStatus.DynamicCaps();
+ }
+
+ RMobilePhone::TMobilePhoneNetworkMode networkMode = iNetMode.GetMode();
+
+ if ((dynamicCaps & RPacketService::KCapsHSUPA) || (dynamicCaps & RPacketService::KCapsHSDPA))
+ {
+ TRACES ( qDebug() << "KHsdpaBearer" );
+ return KHsdpaBearer;
+ }
+ else
+ if ( dynamicCaps & RPacketService::KCapsEGPRS )
+ {
+ TRACES ( qDebug() << "KEGprsBearer" );
+ return KEGprsBearer;
+ }
+ else
+ {
+ if (networkMode == RMobilePhone::ENetworkModeGsm)
+ {
+ TRACES ( qDebug() << "KGprsBearer" );
+ return KGprsBearer;
+ }
+ else if (networkMode == RMobilePhone::ENetworkModeWcdma)
+ {
+ TRACES ( qDebug() << "KUmtsBearer" );
+ return KUmtsBearer;
+ }
+ else
+ {
+ TRACES ( qDebug() << "KDefaultBearer" );
+ return KDefaultBearer;
+ }
+ }
+#else
+ return KDefaultBearer;
+#endif
+ }
diff --git a/src/systeminfo/symbian/networkinfo_s60.h b/src/systeminfo/symbian/networkinfo_s60.h
index 9889b83111..25da0334c6 100644
--- a/src/systeminfo/symbian/networkinfo_s60.h
+++ b/src/systeminfo/symbian/networkinfo_s60.h
@@ -45,14 +45,23 @@
#include <e32base.h>
#include <e32debug.h>
#include <etelmm.h>
+#include <etelpckt.h>
#include <etel.h>
#include <QList>
+//from etelbearers.h
+const TUint KGprsBearer = 20;
+const TUint KEGprsBearer = 21;
+const TUint KUmtsBearer = 22;
+const TUint KHsdpaBearer = 23;
+const TUint KDefaultBearer = 24;
+
class MNetworkObserver
{
public:
virtual void ChangedNetworkMode() = 0;
virtual void ChangedNetworkStatus() = 0;
+ virtual void ChangedCellDataTechnology() = 0;
};
class MNetworkInfoObserver
@@ -60,6 +69,7 @@ class MNetworkInfoObserver
public:
virtual void changedNetworkStatus() = 0;
virtual void changedNetworkMode() = 0;
+ virtual void changedCellDataTechnology() = 0;
};
class CNetworkBase : public CActive
@@ -82,6 +92,12 @@ protected:
RTelServer::TPhoneInfo iPhoneInfo;
TBool iConstructed;
MNetworkObserver *iObserver;
+ //For CellData Technology
+ RPacketService::TDynamicCapsFlags iDynCaps;
+#ifdef ETELPACKETSERVICE_SUPPORTED
+ RPacketService iPacketService;
+#endif
+ RPacketService::TStatus iPacketServiceStatus;
};
class CNetworkMode : private CNetworkBase
@@ -155,16 +171,34 @@ private:
*/
};
+class CPacketDataStatus : private CNetworkBase
+ {
+ public:
+ CPacketDataStatus();
+ ~CPacketDataStatus();
+ TBool IsDynamicCapsSupported();
+ TUint DynamicCaps();
+ void Add(MNetworkObserver *aObserver) { AddObserver(aObserver);} ;
+ void Remove() {RemoveObserver();};
+ private : //From CNetworkBase
+ virtual void DoCancel();
+ virtual void RunL() ;
+ virtual void StartMonitoring();
+ };
+
class CNetworkInfo : public CBase, public MNetworkObserver
{
private :
CNetworkMode iNetMode;
CNetworkStatus iNetStat;
+ CPacketDataStatus iPacketDataStatus;
QList<MNetworkInfoObserver *> iObservers;
+ TUint32 iCellDataTechnology;
protected :
virtual void ChangedNetworkMode() ;
virtual void ChangedNetworkStatus();
+ virtual void ChangedCellDataTechnology();
public :
CNetworkInfo();
@@ -176,6 +210,7 @@ public :
RMobilePhone::TMobilePhoneRegistrationStatus GetStatus() const;
#endif
TUint32 GetCapability () const;
+ TUint CellDataTechnology();
};
diff --git a/src/systeminfo/symbian/telephonyinfo_s60.cpp b/src/systeminfo/symbian/telephonyinfo_s60.cpp
index 270dadee3d..93afdd83ce 100644
--- a/src/systeminfo/symbian/telephonyinfo_s60.cpp
+++ b/src/systeminfo/symbian/telephonyinfo_s60.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include "telephonyinfo_s60.h"
+#include "trace.h"
#ifdef ETELMM_SUPPORTED
#include <etelmm.h>
#include <mmtsy_names.h>
@@ -87,6 +88,7 @@ void CTelephonyInfo::makeRequest()
CPhoneInfo::CPhoneInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
m_phoneIdV1Pckg(m_phoneIdV1)
{
+ TRACES (qDebug() << "CPhoneInfo::CPhoneInfo<---");
m_telephony.GetPhoneId(iStatus, m_phoneIdV1Pckg);
makeRequest();
@@ -99,6 +101,7 @@ CPhoneInfo::CPhoneInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
TBuf<CTelephony::KPhoneModelIdSize> model = m_phoneIdV1.iModel;
m_model = QString::fromUtf16(model.Ptr(), model.Length());
+ TRACES (qDebug() << "CPhoneInfo::CPhoneInfo--->");
}
void CPhoneInfo::DoCancel()
@@ -124,11 +127,13 @@ QString CPhoneInfo::model() const
CSubscriberInfo::CSubscriberInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
m_subscriberIdV1Pckg(m_subscriberIdV1)
{
+ TRACES (qDebug() << "CSubscriberInfo::CSubscriberInfo<---");
m_telephony.GetSubscriberId(iStatus, m_subscriberIdV1Pckg);
makeRequest();
TBuf<CTelephony::KIMSISize> imsi = m_subscriberIdV1.iSubscriberId;
m_imsi = QString::fromUtf16(imsi.Ptr(), imsi.Length());
+ TRACES (qDebug() << "CSubscriberInfo::CSubscriberInfo--->");
}
void CSubscriberInfo::DoCancel()
@@ -144,6 +149,7 @@ QString CSubscriberInfo::imsi() const
CBatteryInfo::CBatteryInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
m_initializing(true), m_batteryInfoV1Pckg(m_batteryInfoV1)
{
+ TRACES (qDebug() << "CBatteryInfo::CBatteryInfo<---");
m_telephony.GetBatteryInfo(iStatus, m_batteryInfoV1Pckg);
makeRequest();
@@ -152,10 +158,12 @@ CBatteryInfo::CBatteryInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
m_previousBatteryLevel = m_batteryLevel;
startMonitoring();
+ TRACES (qDebug() << "CBatteryInfo::CBatteryInfo--->");
}
void CBatteryInfo::RunL()
{
+ TRACES (qDebug() << "CBatteryInfo::RunL<---");
if (m_initializing) {
CTelephonyInfo::RunL();
m_initializing = false;
@@ -169,15 +177,18 @@ void CBatteryInfo::RunL()
}
m_previousBatteryLevel = m_batteryLevel;
startMonitoring();
+ TRACES (qDebug() << "CBatteryInfo::RunL--->");
}
void CBatteryInfo::DoCancel()
{
+ TRACES (qDebug() << "CBatteryInfo::DoCancel<---");
if (m_initializing) {
m_telephony.CancelAsync(CTelephony::EGetBatteryInfoCancel);
} else {
m_telephony.CancelAsync(CTelephony::EBatteryInfoChangeCancel);
}
+ TRACES (qDebug() << "CBatteryInfo::DoCancel--->");
}
@@ -188,15 +199,18 @@ int CBatteryInfo::batteryLevel() const
void CBatteryInfo::startMonitoring()
{
+ TRACES (qDebug() << "CBatteryInfo::startMonitoring<---");
if (!IsActive()) {
m_telephony.NotifyChange(iStatus, CTelephony::EBatteryInfoChange, m_batteryInfoV1Pckg);
SetActive();
}
+ TRACES (qDebug() << "CBatteryInfo::startMonitoring--->");
}
CCellNetworkInfo::CCellNetworkInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
m_initializing(true), m_networkInfoV1Pckg(m_networkInfoV1)
{
+ TRACES (qDebug() << "CCellNetworkInfo::CCellNetworkInfo<---");
m_telephony.GetCurrentNetworkInfo(iStatus, m_networkInfoV1Pckg);
makeRequest();
@@ -226,10 +240,12 @@ CCellNetworkInfo::CCellNetworkInfo(CTelephony &telephony) : CTelephonyInfo(telep
m_initializing = false;
startMonitoring();
+ TRACES (qDebug() << "CCellNetworkInfo::CCellNetworkInfo--->");
}
void CCellNetworkInfo::RunL()
{
+ TRACES (qDebug() << "CCellNetworkInfo::RunL<---");
if (m_initializing) {
CTelephonyInfo::RunL();
m_initializing = false;
@@ -278,15 +294,18 @@ void CCellNetworkInfo::RunL()
m_previouscellId = m_cellId;
startMonitoring();
}
+ TRACES (qDebug() << "CCellNetworkInfo::RunL--->");
}
void CCellNetworkInfo::DoCancel()
{
+ TRACES (qDebug() << "CCellNetworkInfo::DoCancel--->");
if (m_initializing) {
m_telephony.CancelAsync(CTelephony::EGetCurrentNetworkInfoCancel);
} else {
m_telephony.CancelAsync(CTelephony::ECurrentNetworkInfoChangeCancel);
}
+ TRACES (qDebug() << "CCellNetworkInfo::DoCancel<---");
}
int CCellNetworkInfo::cellId() const
@@ -370,13 +389,16 @@ CTelephony::TNetworkMode CCellNetworkInfo::networkMode() const
void CCellNetworkInfo::startMonitoring()
{
+ TRACES (qDebug() << "CCellNetworkInfo::startMonitoring<---");
m_telephony.NotifyChange(iStatus, CTelephony::ECurrentNetworkInfoChange, m_networkInfoV1Pckg);
SetActive();
+ TRACES (qDebug() << "CCellNetworkInfo::startMonitoring--->");
}
CCellNetworkRegistrationInfo::CCellNetworkRegistrationInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
m_initializing(true), m_networkRegistrationV1Pckg(m_networkRegistrationV1)
{
+ TRACES (qDebug() << "CCellNetworkRegistrationInfo::CCellNetworkRegistrationInfo--->");
m_telephony.GetNetworkRegistrationStatus(iStatus, m_networkRegistrationV1Pckg);
makeRequest();
@@ -386,10 +408,12 @@ CCellNetworkRegistrationInfo::CCellNetworkRegistrationInfo(CTelephony &telephony
m_initializing = false;
startMonitoring();
+ TRACES (qDebug() << "CCellNetworkRegistrationInfo::CCellNetworkRegistrationInfo<---");
}
void CCellNetworkRegistrationInfo::RunL()
{
+ TRACES (qDebug() << "CCellNetworkRegistrationInfo::RunL<---");
if (m_initializing) {
CTelephonyInfo::RunL();
m_initializing = false;
@@ -405,15 +429,18 @@ void CCellNetworkRegistrationInfo::RunL()
m_previousNetworkStatus = m_networkStatus;
startMonitoring();
}
+ TRACES (qDebug() << "CCellNetworkRegistrationInfo::RunL--->");
}
void CCellNetworkRegistrationInfo::DoCancel()
{
+ TRACES (qDebug() << "CCellNetworkRegistrationInfo::DoCancel<---");
if (m_initializing) {
m_telephony.CancelAsync(CTelephony::EGetNetworkRegistrationStatusCancel);
} else {
m_telephony.CancelAsync(CTelephony::ENetworkRegistrationStatusChangeCancel);
}
+ TRACES (qDebug() << "CCellNetworkRegistrationInfo::DoCancel--->");
}
CTelephony::TRegistrationStatus CCellNetworkRegistrationInfo::cellNetworkStatus() const
@@ -423,13 +450,16 @@ CTelephony::TRegistrationStatus CCellNetworkRegistrationInfo::cellNetworkStatus(
void CCellNetworkRegistrationInfo::startMonitoring()
{
+ TRACES (qDebug() << "CCellNetworkRegistrationInfo::startMonitoring<---");
m_telephony.NotifyChange(iStatus, CTelephony::ENetworkRegistrationStatusChange, m_networkRegistrationV1Pckg);
SetActive();
+TRACES (qDebug() << "CCellNetworkRegistrationInfo::startMonitoring--->");
}
CCellSignalStrengthInfo::CCellSignalStrengthInfo(CTelephony &telephony) : CTelephonyInfo(telephony),
m_initializing(true), m_signalStrengthV1Pckg(m_signalStrengthV1)
{
+ TRACES (qDebug() << "CCellSignalStrengthInfo::CCellSignalStrengthInfo<---");
m_telephony.GetSignalStrength(iStatus, m_signalStrengthV1Pckg);
makeRequest();
@@ -442,10 +472,12 @@ CCellSignalStrengthInfo::CCellSignalStrengthInfo(CTelephony &telephony) : CTelep
m_initializing = false;
startMonitoring();
+ TRACES (qDebug() << "CCellSignalStrengthInfo::CCellSignalStrengthInfo--->");
}
void CCellSignalStrengthInfo::RunL()
{
+ TRACES (qDebug() << "CCellSignalStrengthInfo::RunL<---");
if (m_initializing) {
CTelephonyInfo::RunL();
} else {
@@ -461,15 +493,18 @@ void CCellSignalStrengthInfo::RunL()
m_previousSignalBar = m_signalBar;
startMonitoring();
}
+ TRACES (qDebug() << "CCellSignalStrengthInfo::RunL--->");
}
void CCellSignalStrengthInfo::DoCancel()
{
+ TRACES (qDebug() << "CCellSignalStrengthInfo::DoCancel<---");
if (m_initializing) {
m_telephony.CancelAsync(CTelephony::EGetSignalStrengthCancel);
} else {
m_telephony.CancelAsync(CTelephony::ESignalStrengthChangeCancel);
}
+ TRACES (qDebug() << "CCellSignalStrengthInfo::DoCancel--->");
}
int CCellSignalStrengthInfo::cellNetworkSignalStrength() const
@@ -480,6 +515,8 @@ int CCellSignalStrengthInfo::cellNetworkSignalStrength() const
void CCellSignalStrengthInfo::startMonitoring()
{
+ TRACES (qDebug() << "CCellSignalStrengthInfo::startMonitoring<---");
m_telephony.NotifyChange(iStatus, CTelephony::ESignalStrengthChange, m_signalStrengthV1Pckg);
SetActive();
+ TRACES (qDebug() << "CCellSignalStrengthInfo::startMonitoring--->");
}
diff --git a/src/systeminfo/systeminfo.pro b/src/systeminfo/systeminfo.pro
index aa5664d20f..65e85a66b1 100644
--- a/src/systeminfo/systeminfo.pro
+++ b/src/systeminfo/systeminfo.pro
@@ -28,7 +28,7 @@ SOURCES += \
PRIVATE_HEADERS += qsysteminfocommon_p.h
-DEFINES += QT_BUILD_SYSINFO_LIB QT_MAKEDLL
+DEFINES += QT_MAKEDLL QT_BUILD_SYSINFO_LIB
simulator {
SOURCES += qsystemalignedtimer_stub.cpp
@@ -75,8 +75,23 @@ unix:!simulator {
QT += gui
PRIVATE_HEADERS += linux/qsysteminfo_dbus_p.h
- maemo5|maemo6|linux-*: {
- contains(bluez_enabled, yes): DEFINES += BLUEZ_SUPPORTED
+ contains(build_unit_tests, yes):contains(test_use_sim, yes) {
+
+ ## for using simulator backend to test frontend signals
+ ## configure with -test-sim -tests
+
+ SOURCES += qsysteminfo_simulator.cpp qsysteminfodata_simulator.cpp
+ HEADERS += qsysteminfo_simulator_p.h qsysteminfodata_simulator_p.h
+ DEFINES += TESTR QT_SIMULATOR
+ SOURCES += qsystemalignedtimer_stub.cpp
+ HEADERS += qsystemalignedtimer_stub_p.h
+
+ } else {
+
+
+ linux-*: {
+ contains(bluez_enabled, yes):DEFINES += BLUEZ_SUPPORTED
+
SOURCES += linux/qsysteminfo_linux_common.cpp
HEADERS += linux/qsysteminfo_linux_common_p.h
@@ -104,6 +119,7 @@ unix:!simulator {
}
!maemo5:!maemo6:linux-*: {
+
SOURCES += linux/qsysteminfo_linux.cpp
HEADERS += linux/qsysteminfo_linux_p.h
contains(QT_CONFIG, dbus): {
@@ -151,15 +167,21 @@ unix:!simulator {
DEFINES += QT_NO_NETWORKMANAGER QT_NO_UDISKS QT_NO_CONNMAN
!embedded:!contains(QT_CONFIG,qpa): LIBS += -lX11 -lXrandr
}
- }
+ }
maemo5|maemo6: {
+
#Qt GConf wrapper added here until a proper place is found for it.
CONFIG += link_pkgconfig
SOURCES += qsysteminfo_maemo.cpp linux/gconfitem.cpp
HEADERS += qsysteminfo_maemo_p.h linux/gconfitem_p.h
DEFINES += QT_NO_CONNMAN QT_NO_UDISKS QT_NO_NETWORKMANAGER
+ contains(bme_enabled, yes): {
+ LIBS += -lbmeipc
+ DEFINES += Q_USE_BME
+ }
+
contains(QT_CONFIG,dbus): {
QT += dbus
SOURCES += linux/qhalservice_linux.cpp
@@ -174,7 +196,9 @@ unix:!simulator {
}
mac: {
- SOURCES += qsysteminfo_mac.mm qsystemalignedtimer_stub.cpp
+ OBJECTIVE_SOURCES += qsysteminfo_mac.mm
+ SOURCES += qsystemalignedtimer_stub.cpp
+
HEADERS += qsysteminfo_mac_p.h qsystemalignedtimer_stub_p.h
LIBS += -framework SystemConfiguration -framework CoreFoundation \
-framework IOKit -framework ApplicationServices -framework Foundation \
@@ -192,14 +216,15 @@ unix:!simulator {
!isEmpty(SDK6) {
LIBS += -framework CoreWLAN -framework CoreLocation
- DEFINES += MAC_SDK_10_6
}
} else {
+ DEFINES += MAC_SDK_10_5
CONFIG += no_keywords
}
TEMPLATE = lib
}
+ }
symbian: {
contains(S60_VERSION, 3.1) {
@@ -223,7 +248,7 @@ unix:!simulator {
LIBS += -lhwrmfmtxclient
}
- contains(DiskNotifyClient_tenabled, yes) {
+ contains(DiskNotifyClient_enabled, yes) {
message("DiskNotiferClient available")
DEFINES += DISKNOTIFY_SUPPORTED
LIBS += -ldisknotifyhandler
@@ -305,6 +330,12 @@ unix:!simulator {
message("ETELMM enabled")
}
+ contains(etelpacketservice_symbian_enabled, yes) {
+ message("etel packet service enabled")
+ LIBS += -letelpckt
+ DEFINES += ETELPACKETSERVICE_SUPPORTED
+ }
+
contains(thermalstatus_symbian_enabled, yes) {
DEFINES += THERMALSTATUS_SUPPORTED
SOURCES += thermalstatus_s60.cpp
@@ -327,8 +358,16 @@ unix:!simulator {
simulator {
SOURCES += qsysteminfo_simulator.cpp qsysteminfodata_simulator.cpp
HEADERS += qsysteminfo_simulator_p.h qsysteminfodata_simulator_p.h
+ SOURCES += qsystemalignedtimer_stub.cpp
+ HEADERS += qsystemalignedtimer_stub_p.h
+
+# contains(build_unit_tests, yes) {
+ # DEFINES += TESTR QT_SIMULATOR
+ # } else {
INCLUDEPATH += ../mobilitysimulator
qtAddLibrary(QtMobilitySimulator)
+ # }
+
}
HEADERS += $$PUBLIC_HEADERS
diff --git a/src/versit/qversitcontactexporter.cpp b/src/versit/qversitcontactexporter.cpp
index 2dfaad47d2..84d1d05f05 100644
--- a/src/versit/qversitcontactexporter.cpp
+++ b/src/versit/qversitcontactexporter.cpp
@@ -54,6 +54,7 @@ QTM_USE_NAMESPACE
\class QVersitContactExporterDetailHandler
\brief The QVersitContactExporterDetailHandler class is the legacy interface for clients wishing
to implement custom export behaviour for certain contact details.
+ \since 1.1
This interface is replaced by QVersitContactExporterDetailHandlerV2. For general information on
extending Qt Versit, see the document on \l{Versit Plugins}.
@@ -114,7 +115,7 @@ QTM_USE_NAMESPACE
\fn void QVersitContactExporterDetailHandlerV2::detailProcessed(const QContact& contact, const QContactDetail& detail, const QVersitDocument& document, QSet<QString>* processedFields, QList<QVersitProperty>* toBeRemoved, QList<QVersitProperty>* toBeAdded)
Process \a detail and provide a list of updated \l{QVersitProperty}{QVersitProperties} by
- modifying the \a toBeRemoved and \a toBeAdded lists.
+ modifying the \a toBeRemoved and \a toBeAdded lists.
This function is called on every QContactDetail encountered during an export, after the detail has
been processed by the QVersitContactExporter. An implementation of this function can be made to
@@ -124,7 +125,7 @@ QTM_USE_NAMESPACE
fields in the \a detail that were considered by the QVersitContactExporter or another handler in
processing the detail. \a document holds the state of the document before the detail was
processed by the exporter.
-
+
\a toBeRemoved and \a toBeAdded are initially filled with a list of properties that the exporter
will remove from and add to the document. These lists can be modified (by removing, modifying or
adding properties) by the handler to control the changes that will actually be made to the
@@ -280,6 +281,12 @@ bool QVersitContactExporter::exportContacts(
d->mErrors.clear();
bool ok = true;
foreach (const QContact& contact, contacts) {
+ if (contact.isEmpty()) {
+ d->mErrors[contactIndex] = EmptyContactError;
+ ok = false;
+ continue;
+ }
+
QVersitDocument versitDocument;
versitDocument.setType(versitType);
versitDocument.setComponentType(QLatin1String("VCARD"));
diff --git a/src/versit/qversitcontactimporter.cpp b/src/versit/qversitcontactimporter.cpp
index a75d39a345..f0b6ec6416 100644
--- a/src/versit/qversitcontactimporter.cpp
+++ b/src/versit/qversitcontactimporter.cpp
@@ -53,6 +53,7 @@ QTM_USE_NAMESPACE
\class QVersitContactImporterPropertyHandler
\brief The QVersitContactImporterPropertyHandler class is the legacy interface for specifying
custom import behaviour for vCard properties.
+ \since 1.1
This interface is replaced by QVersitContactImporterPropertyHandlerV2. For general information on
extending Qt Versit, see the document on \l{Versit Plugins}.
diff --git a/src/versit/qversitdocumentwriter_p.cpp b/src/versit/qversitdocumentwriter_p.cpp
index e8f5093aea..afb882f1c8 100644
--- a/src/versit/qversitdocumentwriter_p.cpp
+++ b/src/versit/qversitdocumentwriter_p.cpp
@@ -50,6 +50,7 @@ QTM_USE_NAMESPACE
/*!
\class QVersitDocumentWriter
\internal
+ \since 1.0
\brief The QVersitDocumentWriter class provides an interface for writing a
single versit document into a vCard text string.
*/
diff --git a/src/versit/qversitresourcehandler.cpp b/src/versit/qversitresourcehandler.cpp
index 328bc407d9..88cbb0782a 100644
--- a/src/versit/qversitresourcehandler.cpp
+++ b/src/versit/qversitresourcehandler.cpp
@@ -52,6 +52,7 @@ QTM_USE_NAMESPACE
behaviour for loading and saving files to disk when exporting and importing.
\ingroup versit-extension
\inmodule QtVersit
+ \since 1.0
\sa QVersitContactImporter
\sa QVersitContactExporter
@@ -66,7 +67,7 @@ QTM_USE_NAMESPACE
/*!
\fn virtual bool QVersitResourceHandler::saveResource(const QByteArray& contents, const QVersitProperty& property, QString* location) = 0;
Saves the binary data \a contents to a file on a persistent storage medium.
-
+
\a property holds the QVersitProperty which is the context in which the binary is coming from.
The QVersitResourceHandler can use this, for example, to determine file extension it should choose.
*\a location is filled with the contents of the file.
@@ -83,14 +84,14 @@ QTM_USE_NAMESPACE
/*!
\class QVersitDefaultResourceHandler
-
+
\brief The QVersitDefaultResourceHandler class provides a default implementation of a Versit
resource handler.
\ingroup versit-extension
-
+
An example resource handler implementation:
\snippet ../../doc/src/snippets/qtversitdocsample/qtversitdocsample.cpp Resource handler
-
+
\sa QVersitContactImporter, QVersitContactExporter, QVersitResourceHandler
*/
diff --git a/src/versitorganizer/qversitorganizerexporter.cpp b/src/versitorganizer/qversitorganizerexporter.cpp
index d222935154..6615db32c2 100644
--- a/src/versitorganizer/qversitorganizerexporter.cpp
+++ b/src/versitorganizer/qversitorganizerexporter.cpp
@@ -55,6 +55,7 @@ QTM_USE_NAMESPACE
\ingroup versit
\inmodule QtVersit
+ \since 1.1
This class is used to convert a list of \l {QOrganizerItem}{QOrganizerItems} (which may be stored
in a QOrganizerManager) into a QVersitDocument (which may be written to an I/O device using
@@ -95,7 +96,7 @@ QTM_USE_NAMESPACE
fields in the \a detail that were considered by the QVersitOrganizerExporter or another handler in
processing the detail. \a document holds the state of the document before the detail was
processed by the exporter.
-
+
\a toBeRemoved and \a toBeAdded are initially filled with a list of properties that the exporter
will remove from and add to the document. These lists can be modified (by removing, modifying or
adding properties) by the handler to control the changes that will actually be made to the
diff --git a/src/versitorganizer/qversitorganizerhandler.cpp b/src/versitorganizer/qversitorganizerhandler.cpp
index 4fdf1869ef..47d2577db4 100644
--- a/src/versitorganizer/qversitorganizerhandler.cpp
+++ b/src/versitorganizer/qversitorganizerhandler.cpp
@@ -52,6 +52,7 @@ Q_DEFINE_LATIN1_CONSTANT(QVersitOrganizerHandlerFactory::ProfileBackup, "Backup"
QVersitOrganizerImporterPropertyHandlerV2 and QVersitOrganizerExporterDetailHandlerV2 interfaces.
\ingroup versit-extension
\inmodule QtVersit
+ \since 1.1
*/
/*!
@@ -59,6 +60,7 @@ Q_DEFINE_LATIN1_CONSTANT(QVersitOrganizerHandlerFactory::ProfileBackup, "Backup"
\brief The QVersitOrganizerHandlerFactory class provides the interface for Versit plugins.
\ingroup versit-extension
\inmodule QtVersit
+ \since 1.2
This class provides a simple interface for the creation of QVersitOrganizerHandler instances.
Implement this interface to write a Versit plugin. For more details, see \l{Versit Plugins}.
diff --git a/src/versitorganizer/qversitorganizerimporter.cpp b/src/versitorganizer/qversitorganizerimporter.cpp
index 199850e598..c2855da739 100644
--- a/src/versitorganizer/qversitorganizerimporter.cpp
+++ b/src/versitorganizer/qversitorganizerimporter.cpp
@@ -54,6 +54,7 @@ QTM_USE_NAMESPACE
\ingroup versit
\inmodule QtVersit
+ \since 1.1
This class is used to convert a \l QVersitDocument (which may be produced by a
QVersitReader) to lists of \l{QOrganizerItem}{QOrganizerItems} (which may be saved into a
diff --git a/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp b/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
index 7528065814..dc1bf51946 100644
--- a/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
+++ b/tests/auto/qbluetoothdevicediscoveryagent/tst_qbluetoothdevicediscoveryagent.cpp
@@ -94,9 +94,23 @@ void tst_QBluetoothDeviceDiscoveryAgent::initTestCase()
qRegisterMetaType<QBluetoothDeviceInfo>("QBluetoothDeviceInfo");
qRegisterMetaType<QBluetoothDeviceDiscoveryAgent::InquiryType>("QBluetoothDeviceDiscoveryAgent::InquiryType");
- // start Bluetooth if not started
+ // turn on BT in case it is not on
QBluetoothLocalDevice *device = new QBluetoothLocalDevice();
- device->powerOn();
+ if (device->hostMode() == QBluetoothLocalDevice::HostPoweredOff) {
+ QSignalSpy hostModeSpy(device, SIGNAL(hostModeStateChanged(QBluetoothLocalDevice::HostMode)));
+ QVERIFY(hostModeSpy.isEmpty());
+ device->powerOn();
+ int connectTime = 5000; // ms
+ while (hostModeSpy.count() < 1 && connectTime > 0) {
+ QTest::qWait(500);
+ connectTime -= 500;
+ }
+ QVERIFY(hostModeSpy.count() > 0);
+ }
+ QBluetoothLocalDevice::HostMode hostMode= device->hostMode();
+ QVERIFY(hostMode == QBluetoothLocalDevice::HostConnectable
+ || hostMode == QBluetoothLocalDevice::HostDiscoverable
+ || hostMode == QBluetoothLocalDevice::HostDiscoverableLimitedInquiry);
delete device;
}
@@ -118,14 +132,6 @@ void tst_QBluetoothDeviceDiscoveryAgent::deviceDiscoveryDebug(const QBluetoothDe
qDebug() << "Discovered device:" << info.address().toString() << info.name();
}
-void tst_QBluetoothDeviceDiscoveryAgent::tst_deviceDiscovery_data()
-{
- QTest::addColumn<QBluetoothDeviceDiscoveryAgent::InquiryType>("inquiryType");
-
- QTest::newRow("general unlimited inquiry") << QBluetoothDeviceDiscoveryAgent::GeneralUnlimitedInquiry;
- QTest::newRow("limited inquiry") << QBluetoothDeviceDiscoveryAgent::LimitedInquiry;
-}
-
void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
{
{
@@ -141,10 +147,8 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
QSignalSpy cancelSpy(&discoveryAgent, SIGNAL(canceled()));
QSignalSpy errorSpy(&discoveryAgent, SIGNAL(error(QBluetoothDeviceDiscoveryAgent::Error)));
QSignalSpy discoveredSpy(&discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)));
-// connect(&discoveryAgent, SIGNAL(finished()), this, SLOT(finished()));
-// connect(&discoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)),
-// this, SLOT(deviceDiscoveryDebug(const QBluetoothDeviceInfo&)));
+ // Starting case 1: start-stop, expecting cancel signal
discoveryAgent.setInquiryType(inquiryType);
// we should have no errors at this point.
QVERIFY(errorSpy.isEmpty());
@@ -158,8 +162,8 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
// Wait for up to MaxWaitTime for the cancel to finish
int waitTime = MaxWaitTime;
while (cancelSpy.count() == 0 && waitTime > 0) {
- QTest::qWait(1);
- waitTime--;
+ QTest::qWait(100);
+ waitTime-=100;
}
// we should not be active anymore
@@ -167,7 +171,7 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
QVERIFY(errorSpy.isEmpty());
QVERIFY(cancelSpy.count() == 1);
cancelSpy.clear();
- // start again
+ // Starting case 2: start-start-stop, expecting cancel signal
discoveryAgent.start();
// we should be active now
QVERIFY(discoveryAgent.isActive());
@@ -182,8 +186,8 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
// Wait for up to MaxWaitTime for the cancel to finish
waitTime = MaxWaitTime;
while (cancelSpy.count() == 0 && waitTime > 0) {
- QTest::qWait(1);
- waitTime--;
+ QTest::qWait(100);
+ waitTime-=100;
}
// we should not be active anymore
@@ -192,7 +196,7 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
QVERIFY(cancelSpy.count() == 1);
cancelSpy.clear();
- // stop
+ // Starting case 3: stop
discoveryAgent.stop();
QVERIFY(!discoveryAgent.isActive());
QVERIFY(errorSpy.isEmpty());
@@ -203,7 +207,7 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
QVERIFY(discoveryAgent.errorString().isEmpty());
- // call start while there's a pending cancel should only get 1 cancel
+ // Starting case 4: start-stop-start-stop, expecting only 1 cancel signal
discoveryAgent.start();
QVERIFY(discoveryAgent.isActive());
QVERIFY(errorSpy.isEmpty());
@@ -219,9 +223,9 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
// Wait for up to MaxWaitTime for the cancel to finish
waitTime = MaxWaitTime;
- while (cancelSpy.count() == 0 && waitTime > 0) {
- QTest::qWait(1);
- waitTime--;
+ while (waitTime > 0) {
+ QTest::qWait(100);
+ waitTime-=100;
}
// we should not be active anymore
@@ -231,7 +235,7 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
QVERIFY(cancelSpy.count() == 1);
cancelSpy.clear();
- // call start while there's a pending cancel should start
+ // Starting case 5: start-stop-start: expecting finished signal & no cancel
discoveryAgent.start();
QVERIFY(discoveryAgent.isActive());
QVERIFY(errorSpy.isEmpty());
@@ -243,7 +247,7 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_startStopDeviceDiscoveries()
QVERIFY(discoveryAgent.isActive());
QVERIFY(errorSpy.isEmpty());
- // Wait for up to MaxWaitTime for the cancel to finish
+ // Wait for up to MaxScanTime for the cancel to finish
waitTime = MaxScanTime;
while (finishedSpy.count() == 0 && waitTime > 0) {
QTest::qWait(1000);
@@ -264,6 +268,14 @@ void tst_QBluetoothDeviceDiscoveryAgent::finished()
qDebug() << "Finished called";
}
+void tst_QBluetoothDeviceDiscoveryAgent::tst_deviceDiscovery_data()
+{
+ QTest::addColumn<QBluetoothDeviceDiscoveryAgent::InquiryType>("inquiryType");
+
+ QTest::newRow("general unlimited inquiry") << QBluetoothDeviceDiscoveryAgent::GeneralUnlimitedInquiry;
+ QTest::newRow("limited inquiry") << QBluetoothDeviceDiscoveryAgent::LimitedInquiry;
+}
+
void tst_QBluetoothDeviceDiscoveryAgent::tst_deviceDiscovery()
{
{
@@ -291,8 +303,8 @@ void tst_QBluetoothDeviceDiscoveryAgent::tst_deviceDiscovery()
// Wait for up to MaxScanTime for the scan to finish
int scanTime = MaxScanTime;
while (finishedSpy.count() == 0 && scanTime > 0) {
- QTest::qWait(1000);
- scanTime -= 1000;
+ QTest::qWait(15000);
+ scanTime -= 15000;
}
qDebug() << scanTime << MaxScanTime;
// verify that we are finished
diff --git a/tests/auto/qcamerabackend/tst_qcamerabackend.cpp b/tests/auto/qcamerabackend/tst_qcamerabackend.cpp
index eb800fa05a..8a81b91b4b 100644
--- a/tests/auto/qcamerabackend/tst_qcamerabackend.cpp
+++ b/tests/auto/qcamerabackend/tst_qcamerabackend.cpp
@@ -137,6 +137,7 @@ private slots:
void testCtorWithDevice();
void testCameraStates();
+ void testCaptureMode();
void testCameraCapture();
void testCaptureToBuffer();
void testCameraCaptureMetadata();
@@ -240,6 +241,82 @@ void tst_QCameraBackend::testCameraStates()
QCOMPARE(errorSignal.count(), 0);
}
+void tst_QCameraBackend::testCaptureMode()
+{
+ QCamera camera;
+
+ QSignalSpy errorSignal(&camera, SIGNAL(error(QCamera::Error)));
+ QSignalSpy stateChangedSignal(&camera, SIGNAL(stateChanged(QCamera::State)));
+ QSignalSpy captureModeSignal(&camera, SIGNAL(captureModeChanged(QCamera::CaptureMode)));
+
+ QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage);
+
+ if (!camera.isCaptureModeSupported(QCamera::CaptureVideo)) {
+ camera.setCaptureMode(QCamera::CaptureVideo);
+ QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage);
+ QSKIP("Video capture not supported", SkipAll);
+ }
+
+ camera.setCaptureMode(QCamera::CaptureVideo);
+ QCOMPARE(camera.captureMode(), QCamera::CaptureVideo);
+ QTRY_COMPARE(captureModeSignal.size(), 1);
+ QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureVideo);
+ captureModeSignal.clear();
+
+ camera.load();
+ QTRY_COMPARE(camera.status(), QCamera::LoadedStatus);
+ //capture mode should still be video
+ QCOMPARE(camera.captureMode(), QCamera::CaptureVideo);
+
+ //it should be possible to switch capture mode in Loaded state
+ camera.setCaptureMode(QCamera::CaptureStillImage);
+ QTRY_COMPARE(captureModeSignal.size(), 1);
+ QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureStillImage);
+ captureModeSignal.clear();
+
+ camera.setCaptureMode(QCamera::CaptureVideo);
+ QTRY_COMPARE(captureModeSignal.size(), 1);
+ QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureVideo);
+ captureModeSignal.clear();
+
+ camera.start();
+ QTRY_COMPARE(camera.status(), QCamera::ActiveStatus);
+ //capture mode should still be video
+ QCOMPARE(camera.captureMode(), QCamera::CaptureVideo);
+
+ stateChangedSignal.clear();
+ //it should be possible to switch capture mode in Active state
+ camera.setCaptureMode(QCamera::CaptureStillImage);
+ //camera may leave Active status, but should return to Active
+ QTest::qWait(10); //camera may leave Active status async
+ QTRY_COMPARE(camera.status(), QCamera::ActiveStatus);
+ QCOMPARE(camera.captureMode(), QCamera::CaptureStillImage);
+ QVERIFY2(stateChangedSignal.isEmpty(), "camera should not change the state during capture mode changes");
+
+ QCOMPARE(captureModeSignal.size(), 1);
+ QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureStillImage);
+ captureModeSignal.clear();
+
+ camera.setCaptureMode(QCamera::CaptureVideo);
+ //camera may leave Active status, but should return to Active
+ QTest::qWait(10); //camera may leave Active status async
+ QTRY_COMPARE(camera.status(), QCamera::ActiveStatus);
+ QCOMPARE(camera.captureMode(), QCamera::CaptureVideo);
+
+ QVERIFY2(stateChangedSignal.isEmpty(), "camera should not change the state during capture mode changes");
+
+ QCOMPARE(captureModeSignal.size(), 1);
+ QCOMPARE(captureModeSignal.last().first().value<QCamera::CaptureMode>(), QCamera::CaptureVideo);
+ captureModeSignal.clear();
+
+ camera.stop();
+ QCOMPARE(camera.captureMode(), QCamera::CaptureVideo);
+ camera.unload();
+ QCOMPARE(camera.captureMode(), QCamera::CaptureVideo);
+
+ QVERIFY2(errorSignal.isEmpty(), QString("Camera error: %1").arg(camera.errorString()).toLocal8Bit());
+}
+
void tst_QCameraBackend::testCameraCapture()
{
QCamera camera;
@@ -253,20 +330,12 @@ void tst_QCameraBackend::testCameraCapture()
QSignalSpy savedSignal(&imageCapture, SIGNAL(imageSaved(int,QString)));
QSignalSpy errorSignal(&imageCapture, SIGNAL(error(int, QCameraImageCapture::Error,QString)));
-
imageCapture.capture();
- QCOMPARE(capturedSignal.size(), 0);
-#ifdef Q_OS_LINUX
- QEXPECT_FAIL("", "QTMOBILITY-1480", Continue);
-#endif
- QCOMPARE(errorSignal.size(), 1);
-#ifdef Q_OS_LINUX
- QEXPECT_FAIL("", "QTMOBILITY-1480", Continue);
-#endif
+ QTRY_COMPARE(errorSignal.size(), 1);
QCOMPARE(imageCapture.error(), QCameraImageCapture::NotReadyError);
+ QCOMPARE(capturedSignal.size(), 0);
errorSignal.clear();
-
camera.start();
QTRY_VERIFY(imageCapture.isReadyForCapture());
diff --git a/tests/auto/qcontactmanager/tst_qcontactmanager.cpp b/tests/auto/qcontactmanager/tst_qcontactmanager.cpp
index 39be6bf9db..44c2eb736a 100644
--- a/tests/auto/qcontactmanager/tst_qcontactmanager.cpp
+++ b/tests/auto/qcontactmanager/tst_qcontactmanager.cpp
@@ -229,6 +229,30 @@ private slots:
void lateDeletion_data() {addManagers();}
};
+// Helper class that connects to a signal on ctor, and disconnects on dtor
+class QTestSignalSink : public QObject {
+ Q_OBJECT
+public:
+ // signal and object must remain valid for the lifetime
+ QTestSignalSink(QObject *object, const char *signal)
+ : mObject(object), mSignal(signal)
+ {
+ connect(object, signal, this, SLOT(ignored()));
+ }
+
+ ~QTestSignalSink()
+ {
+ disconnect(mObject, mSignal, this, SLOT(ignored()));
+ }
+
+public slots:
+ void ignored() {}
+
+private:
+ QObject *mObject;
+ const char * const mSignal;
+};
+
tst_QContactManager::tst_QContactManager()
{
}
@@ -290,15 +314,16 @@ void tst_QContactManager::dumpContactDifferences(const QContact& ca, const QCont
}
// Now dump the extra details that were unmatched in A (note that DisplayLabel and Type are always present).
+ // We ignore timestamp since it can get autogenerated too
aDetails = a.details();
bDetails = b.details();
foreach(QContactDetail d, aDetails) {
- if (d.definitionName() != QContactDisplayLabel::DefinitionName && d.definitionName() != QContactType::DefinitionName)
+ if (d.definitionName() != QContactDisplayLabel::DefinitionName && d.definitionName() != QContactType::DefinitionName && d.definitionName() != QContactTimestamp::DefinitionName)
qDebug() << "A contact had extra detail:" << d.definitionName() << d.variantValues();
}
// and same for B
foreach(QContactDetail d, bDetails) {
- if (d.definitionName() != QContactDisplayLabel::DefinitionName && d.definitionName() != QContactType::DefinitionName)
+ if (d.definitionName() != QContactDisplayLabel::DefinitionName && d.definitionName() != QContactType::DefinitionName && d.definitionName() != QContactTimestamp::DefinitionName)
qDebug() << "B contact had extra detail:" << d.definitionName() << d.variantValues();
}
@@ -2204,6 +2229,10 @@ void tst_QContactManager::signalEmission()
QSignalSpy spyCM(m1.data(), SIGNAL(contactsChanged(QList<QContactLocalId>)));
QSignalSpy spyCR(m1.data(), SIGNAL(contactsRemoved(QList<QContactLocalId>)));
+ QTestSignalSink casink(m1.data(), SIGNAL(contactsAdded(QList<QContactLocalId>)));
+ QTestSignalSink cmsink(m1.data(), SIGNAL(contactsChanged(QList<QContactLocalId>)));
+ QTestSignalSink crsink(m1.data(), SIGNAL(contactsRemoved(QList<QContactLocalId>)));
+
QList<QVariant> args;
QList<QContactLocalId> arg;
QContact c;
@@ -2945,6 +2974,7 @@ void tst_QContactManager::selfContactId()
// Setup signal spy
qRegisterMetaType<QContactLocalId>("QContactLocalId");
QSignalSpy spy(cm.data(), SIGNAL(selfContactIdChanged(QContactLocalId,QContactLocalId)));
+ QTestSignalSink sink(cm.data(), SIGNAL(selfContactIdChanged(QContactLocalId,QContactLocalId)));
// Set new self contact
QVERIFY(cm->setSelfContactId(newSelfContact));
diff --git a/tests/auto/qdeclarativebatteryinfo/qdeclarativebatteryinfo.pro b/tests/auto/qdeclarativebatteryinfo/qdeclarativebatteryinfo.pro
index 76149cab13..26283c97e0 100644
--- a/tests/auto/qdeclarativebatteryinfo/qdeclarativebatteryinfo.pro
+++ b/tests/auto/qdeclarativebatteryinfo/qdeclarativebatteryinfo.pro
@@ -3,7 +3,6 @@ CONFIG+=testcase
SOURCES += tst_qdeclarativebatteryinfo.cpp
QT = core
-#DEFINES += TESTR
HEADERS += ../../../plugins/declarative/systeminfo/qdeclarativebatteryinfo_p.h
SOURCES += ../../../plugins/declarative/systeminfo/qdeclarativebatteryinfo.cpp
@@ -19,3 +18,7 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qdeclarativebatteryinfo/tst_qdeclarativebatteryinfo.cpp b/tests/auto/qdeclarativebatteryinfo/tst_qdeclarativebatteryinfo.cpp
index 2b8c0bfab2..501ef49038 100644
--- a/tests/auto/qdeclarativebatteryinfo/tst_qdeclarativebatteryinfo.cpp
+++ b/tests/auto/qdeclarativebatteryinfo/tst_qdeclarativebatteryinfo.cpp
@@ -44,6 +44,9 @@
#include <QtTest/QtTest>
#include "qdeclarativebatteryinfo_p.h"
#include <QDebug>
+#ifdef TESTR
+#include "qsysteminfo_simulator_p.h"
+#endif
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QSystemBatteryInfo::BatteryStatus);
@@ -58,31 +61,67 @@ Q_DECLARE_METATYPE(QSystemBatteryInfo::EnergyUnit);
* \return \p true if the requested signal was received
* \p false on timeout
*/
-//static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
-//{
-// QEventLoop loop;
-// QObject::connect(obj, signal, &loop, SLOT(quit()));
-// QTimer timer;
-// QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
-// if (timeout > 0) {
-// QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
-// timer.setSingleShot(true);
-// timer.start(timeout);
-// }
-// loop.exec();
-// return timeoutSpy.isEmpty();
-//}
-//class ChangeBatteryThread : public QThread
-//{
-//public:
-// void run()
-// {
-// QDeclarativeBatteryInfo bi;
-// QSystemBatteryInfoPrivate *bip = bi.priv;
-// }
+#ifdef TESTR
+
+static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
+{
+ QEventLoop loop;
+ QObject::connect(obj, signal, &loop, SLOT(quit()));
+ QTimer timer;
+ QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
+ if (timeout > 0) {
+ QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.setSingleShot(true);
+ timer.start(timeout);
+ }
+ loop.exec();
+ return timeoutSpy.isEmpty();
+}
-//};
+
+class ChangeBatteryThread : public QThread
+{
+public:
+ void run()
+ {
+ QMutexLocker locker(&mutex);
+ SystemInfoConnection si;
+ QSystemBatteryInfoPrivate *d = si.batteryInfoPrivate();
+
+ d->setBatteryStatus(currentBatStatus);
+ d->setChargerType(curChargeType);
+ d->setChargingState(curChargeState);
+
+ d->setNominalCapacity(capacity);
+ d->setRemainingCapacityPercent(currentBatLevelPercent);
+ d->setRemainingCapacity(remainingCapacity);
+
+ d->setVoltage(currentVoltage);
+ d->setRemainingChargingTime(remainingEnergy);
+ d->setCurrentFlow(dischargeRate);
+// d->setRemainingCapacityBars(int v);
+// d->setMaxBars(int v);
+
+
+ this->exit();
+ }
+ QMutex mutex;
+ QSystemBatteryInfo::BatteryStatus currentBatStatus;
+ QSystemBatteryInfo::ChargingState curChargeState;
+ QSystemBatteryInfo::ChargerType curChargeType;
+ QVariantMap pMap;
+
+ int currentBatLevelPercent;
+ int currentVoltage;
+ int dischargeRate;
+ int capacity;
+ int timeToFull;
+ int remainingEnergy;
+ int remainingCapacity;
+// int capBars;
+};
+#endif
class tst_QDeclarativeBatteryInfo : public QObject
{
@@ -113,60 +152,74 @@ private slots:
void tst_energyMeasurementUnit();
+#ifdef TESTR
//signal tests
-// void tst_batteryLevelChanged();
-// void tst_batteryStatusChanged();
+ void tst_batteryStatusChanged_data();
+ void tst_batteryStatusChanged();
+ void tst_chargingStateChanged_data();
+ void tst_chargingStateChanged();
-// void tst_chargingStateChanged();
-// void tst_chargerTypeChanged();
+ void tst_chargerTypeChanged_data();
+ void tst_chargerTypeChanged();
-// void tst_nominalCapacityChanged();
-// void tst_remainingCapacityPercentChanged();
-// void tst_remainingCapacityChanged();
-// void tst_voltageChanged();
+ void tst_nominalCapacityChanged_data();
+ void tst_nominalCapacityChanged();
-// void tst_currentFlowChanged();
-// void tst_cumulativeCurrentFlowChanged();
-// void tst_remainingCapacityBarsChanged();
-// void tst_remainingChargingTimeChanged();
+ void tst_remainingCapacityPercentChanged_data();
+ void tst_remainingCapacityPercentChanged();
+ void tst_remainingCapacityChanged_data();
+ void tst_remainingCapacityChanged();
-// //signals
-// void batteryLevelChanged(int level);
-// void batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batteryStatus);
+ void tst_currentFlowChanged_data();
+ void tst_currentFlowChanged();
+ void tst_remainingCapacityBarsChanged();
+ void tst_remainingChargingTimeChanged();
-// void chargingStateChanged(QSystemBatteryInfo::ChargingState chargingState);
-// void chargerTypeChanged(QSystemBatteryInfo::ChargerType chargerType);
-// void nominalCapacityChanged(int);
-// void remainingCapacityPercentChanged(int);
-// void remainingCapacityChanged(int);
+ //signals
+ void batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batteryStatus);
-// void currentFlowChanged(int);
-// void cumulativeCurrentFlowChanged(int);
-// void remainingCapacityBarsChanged(int);
-// void remainingChargingTimeChanged(int);
+ void chargingStateChanged(QSystemBatteryInfo::ChargingState chargingState);
+ void chargerTypeChanged(QSystemBatteryInfo::ChargerType chargerType);
-// ChangeBatteryThread *changeBatteryThread;
+ void nominalCapacityChanged(int);
+ void remainingCapacityPercentChanged(int);
+ void remainingCapacityChanged(int);
+
+ void currentFlowChanged(int);
+// void remainingCapacityBarsChanged(int);
+// void remainingChargingTimeChanged(int);
+#endif
+
+private:
+
+#ifdef TESTR
+ QSystemBatteryInfo::BatteryStatus currentBatStatus;
+ QSystemBatteryInfo::ChargingState curChargeState;
+ QSystemBatteryInfo::ChargerType curChargeType;
+
+ int currentBatLevelPercent;
+ int currentVoltage;
+ int dischargeRate;
+ int capacity;
+ int timeToFull;
+ int remainingEnergy;
+ int remainingCapacity;
+// int capBars;
+#endif
};
tst_QDeclarativeBatteryInfo::tst_QDeclarativeBatteryInfo()
{
- // changeBatteryThread = new ChangeBatteryThread();
}
tst_QDeclarativeBatteryInfo::~tst_QDeclarativeBatteryInfo()
{
- //delete changeBatteryThread, changeBatteryThread = 0;
}
-/*
- SystemInfoConnection si;
- QSystemBatteryInfoPrivate *bip = si.batteryInfoPrivate();
-*/
-
void tst_QDeclarativeBatteryInfo::initTestCase()
{
qRegisterMetaType<QSystemBatteryInfo::BatteryStatus>("QSystemBatteryInfo::BatteryStatus");
@@ -335,134 +388,285 @@ void tst_QDeclarativeBatteryInfo::tst_energyMeasurementUnit()
}
}
-////signal tests
-//void tst_QDeclarativeBatteryInfo::tst_batteryLevelChanged()
-//{
-// QDeclarativeBatteryInfo bi;
-//}
+#ifdef TESTR
+//signal tests
+void tst_QDeclarativeBatteryInfo::tst_batteryStatusChanged_data()
+{
+ QTest::addColumn<QSystemBatteryInfo::BatteryStatus>("batterystatus");
-//void tst_QDeclarativeBatteryInfo::tst_batteryStatusChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ QTest::newRow("BatteryUnknown") << QSystemBatteryInfo::BatteryUnknown;
+ QTest::newRow("BatteryEmpty") << QSystemBatteryInfo::BatteryEmpty;
+ QTest::newRow("BatteryCritical") << QSystemBatteryInfo::BatteryCritical;
+ QTest::newRow("BatteryVeryLow") << QSystemBatteryInfo::BatteryVeryLow;
-//}
+ QTest::newRow("BatteryLow") << QSystemBatteryInfo::BatteryLow;
+ QTest::newRow("BatteryOk") << QSystemBatteryInfo::BatteryOk;
+ QTest::newRow("BatteryFull") << QSystemBatteryInfo::BatteryFull;
+}
-//void tst_QDeclarativeBatteryInfo::tst_chargingStateChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+void tst_QDeclarativeBatteryInfo::tst_batteryStatusChanged()
+{
+ QDeclarativeBatteryInfo bi;
-//}
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//void tst_QDeclarativeBatteryInfo::tst_chargerTypeChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ connect(&bi,SIGNAL(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)),
+ this,SLOT(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)));
-//}
+ QFETCH(QSystemBatteryInfo::BatteryStatus, batterystatus);
-//void tst_QDeclarativeBatteryInfo::tst_nominalCapacityChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ changeBatThread->currentBatStatus = currentBatStatus = batterystatus;
+ changeBatThread->start();
-//}
+// QSignalSpy errorSpy(&bi, SIGNAL(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)));
+// QVERIFY(::waitForSignal(&bi, SIGNAL(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)), 10 * 1000));
-//void tst_QDeclarativeBatteryInfo::tst_remainingCapacityPercentChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+// QVERIFY(errorSpy.count() == 1);
+}
-//}
+void tst_QDeclarativeBatteryInfo::tst_chargingStateChanged_data()
+{
+ QTest::addColumn<QSystemBatteryInfo::ChargingState>("chargingstate");
-//void tst_QDeclarativeBatteryInfo::tst_remainingCapacityChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ QTest::newRow("ChargingError") << QSystemBatteryInfo::ChargingError;
+ QTest::newRow("NotCharging") << QSystemBatteryInfo::NotCharging;
+ QTest::newRow("Charging") << QSystemBatteryInfo::Charging;
+}
-//}
+void tst_QDeclarativeBatteryInfo::tst_chargingStateChanged()
+{
+ QDeclarativeBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//void tst_QDeclarativeBatteryInfo::tst_voltageChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ connect(&bi,SIGNAL(chargingStateChanged(QSystemBatteryInfo::ChargingState)),
+ this,SLOT(chargingStateChanged(QSystemBatteryInfo::ChargingState)));
-//}
+ QFETCH(QSystemBatteryInfo::ChargingState, chargingstate);
-//void tst_QDeclarativeBatteryInfo::tst_currentFlowChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ changeBatThread->curChargeState = curChargeState = chargingstate;
+ changeBatThread->start();
-//}
+ QSignalSpy errorSpy(&bi, SIGNAL(chargingStateChanged(QSystemBatteryInfo::ChargingState)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(chargingStateChanged(QSystemBatteryInfo::ChargingState)), 10 * 1000));
-//void tst_QDeclarativeBatteryInfo::tst_cumulativeCurrentFlowChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ QVERIFY(errorSpy.count() == 1);
+}
-//}
+void tst_QDeclarativeBatteryInfo::tst_chargerTypeChanged_data()
+{
+ QTest::addColumn<QSystemBatteryInfo::ChargerType>("chargertype");
-//void tst_QDeclarativeBatteryInfo::tst_remainingCapacityBarsChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ QTest::newRow("UnknownCharger") << QSystemBatteryInfo::UnknownCharger;
+ QTest::newRow("NoCharger") << QSystemBatteryInfo::NoCharger;
+ QTest::newRow("WallCharger") << QSystemBatteryInfo::WallCharger;
-//}
+ QTest::newRow("USBCharger") << QSystemBatteryInfo::USBCharger;
+ QTest::newRow("USB_500mACharger") << QSystemBatteryInfo::USB_500mACharger;
+ QTest::newRow("USB_100mACharger") << QSystemBatteryInfo::USB_100mACharger;
-//void tst_QDeclarativeBatteryInfo::tst_remainingChargingTimeChanged()
-//{
-// QDeclarativeBatteryInfo bi;
+ QTest::newRow("VariableCurrentCharger") << QSystemBatteryInfo::VariableCurrentCharger;
+}
-//}
+void tst_QDeclarativeBatteryInfo::tst_chargerTypeChanged()
+{
+ QDeclarativeBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-////signals
-//void tst_QDeclarativeBatteryInfo::batteryLevelChanged(int level)
-//{
+ connect(&bi,SIGNAL(chargerTypeChanged(QSystemBatteryInfo::ChargerType)),
+ this,SLOT(chargerTypeChanged(QSystemBatteryInfo::ChargerType)));
-//}
+ QFETCH(QSystemBatteryInfo::ChargerType, chargertype);
-//void tst_QDeclarativeBatteryInfo::batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batteryStatus)
-//{
+ changeBatThread->curChargeType = curChargeType = chargertype;
+ changeBatThread->start();
-//}
+ QSignalSpy errorSpy(&bi, SIGNAL(chargerTypeChanged(QSystemBatteryInfo::ChargerType)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(chargerTypeChanged(QSystemBatteryInfo::ChargerType)), 10 * 1000));
-//void tst_QDeclarativeBatteryInfo::chargingStateChanged(QSystemBatteryInfo::ChargingState chargingState)
-//{
+ QVERIFY(errorSpy.count() == 1);
+}
-//}
+void tst_QDeclarativeBatteryInfo::tst_nominalCapacityChanged_data()
+{
+ QTest::addColumn<int>("intdata");
-//void tst_QDeclarativeBatteryInfo::chargerTypeChanged(QSystemBatteryInfo::ChargerType chargerType)
-//{
+ QTest::newRow("1") << 1;
+ QTest::newRow("2") << 1234;
+ QTest::newRow("3") << 4321;
+ QTest::newRow("4") << 9990;
+ QTest::newRow("5") << -1;
+}
-//}
+void tst_QDeclarativeBatteryInfo::tst_nominalCapacityChanged()
+{
+ QDeclarativeBatteryInfo bi;
-//void tst_QDeclarativeBatteryInfo::nominalCapacityChanged(int)
-//{
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//}
+ connect(&bi,SIGNAL(nominalCapacityChanged(int)),
+ this,SLOT(nominalCapacityChanged(int)));
-//void tst_QDeclarativeBatteryInfo::remainingCapacityPercentChanged(int)
-//{
+ QFETCH(int, intdata);
-//}
+ changeBatThread->capacity = capacity = intdata;
+ changeBatThread->start();
-//void tst_QDeclarativeBatteryInfo::remainingCapacityChanged(int)
-//{
+ QSignalSpy errorSpy(&bi, SIGNAL(nominalCapacityChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(nominalCapacityChanged(int)), 10 * 1000));
-//}
+ QVERIFY(errorSpy.count() == 1);
+}
-//void tst_QDeclarativeBatteryInfo::currentFlowChanged(int)
-//{
+void tst_QDeclarativeBatteryInfo::tst_remainingCapacityPercentChanged_data()
+{
+ QTest::addColumn<int>("batPercent");
-//}
+ QTest::newRow("1") << 1;
+ QTest::newRow("2") << 3;
+ QTest::newRow("3") << 5;
+ QTest::newRow("4") << 10;
+ QTest::newRow("5") << 12;
+ QTest::newRow("6") << 40;
-//void tst_QDeclarativeBatteryInfo::cumulativeCurrentFlowChanged(int)
-//{
+ QTest::newRow("4") << 41;
+ QTest::newRow("5") << 98;
+ QTest::newRow("6") << 99;
+ QTest::newRow("7") << 100;
-//}
+}
+void tst_QDeclarativeBatteryInfo::tst_remainingCapacityPercentChanged()
+{
+ QDeclarativeBatteryInfo bi;
+
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
+
+ connect(&bi,SIGNAL(remainingCapacityPercentChanged(int)),
+ this,SLOT(remainingCapacityPercentChanged(int)));
+
+ QFETCH(int, batPercent);
+
+ changeBatThread->currentBatLevelPercent = currentBatLevelPercent = batPercent;
+ changeBatThread->start();
+
+ QSignalSpy errorSpy(&bi, SIGNAL(remainingCapacityPercentChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(remainingCapacityPercentChanged(int)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+}
+
+void tst_QDeclarativeBatteryInfo::tst_remainingCapacityChanged_data()
+{
+ tst_nominalCapacityChanged_data();
+}
+
+void tst_QDeclarativeBatteryInfo::tst_remainingCapacityChanged()
+{
+ QDeclarativeBatteryInfo bi;
+
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
+
+ connect(&bi,SIGNAL(remainingCapacityChanged(int)),
+ this,SLOT(remainingCapacityChanged(int)));
+
+ QFETCH(int, intdata);
+
+ changeBatThread->remainingCapacity = remainingCapacity = intdata;
+ changeBatThread->start();
+
+ QSignalSpy errorSpy(&bi, SIGNAL(remainingCapacityChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(remainingCapacityChanged(int)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+}
+
+void tst_QDeclarativeBatteryInfo::tst_currentFlowChanged_data()
+{
+ tst_nominalCapacityChanged_data();
+}
+
+void tst_QDeclarativeBatteryInfo::tst_currentFlowChanged()
+{
+ QDeclarativeBatteryInfo bi;
+
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
+
+ connect(&bi,SIGNAL(currentFlowChanged(int)),
+ this,SLOT(currentFlowChanged(int)));
+
+ QFETCH(int, intdata);
+
+ changeBatThread->dischargeRate = dischargeRate = intdata;
+ changeBatThread->start();
+
+ QSignalSpy errorSpy(&bi, SIGNAL(currentFlowChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(currentFlowChanged(int)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+}
+
+void tst_QDeclarativeBatteryInfo::tst_remainingCapacityBarsChanged()
+{
+ // QDeclarativeBatteryInfo bi;
+
+}
+
+void tst_QDeclarativeBatteryInfo::tst_remainingChargingTimeChanged()
+{
+ // QDeclarativeBatteryInfo bi;
+
+}
+
+//signals
+void tst_QDeclarativeBatteryInfo::batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batStatus)
+{
+ QVERIFY(batStatus == currentBatStatus);
+}
+
+void tst_QDeclarativeBatteryInfo::chargingStateChanged(QSystemBatteryInfo::ChargingState chargState)
+{
+ QVERIFY(chargState == curChargeState);
+
+}
+
+void tst_QDeclarativeBatteryInfo::chargerTypeChanged(QSystemBatteryInfo::ChargerType chargType)
+{
+ QVERIFY(chargType == curChargeType);
+}
+
+void tst_QDeclarativeBatteryInfo::nominalCapacityChanged(int cap)
+{
+ QVERIFY(cap == capacity);
+}
+
+void tst_QDeclarativeBatteryInfo::remainingCapacityPercentChanged(int cap)
+{
+ QVERIFY(cap == currentBatLevelPercent);
+}
+
+void tst_QDeclarativeBatteryInfo::remainingCapacityChanged(int cap)
+{
+ QVERIFY(cap == remainingCapacity);
+}
+
+void tst_QDeclarativeBatteryInfo::currentFlowChanged(int flow)
+{
+ QVERIFY(flow == dischargeRate);
+}
-//void tst_QDeclarativeBatteryInfo::remainingCapacityBarsChanged(int)
+//void tst_QDeclarativeBatteryInfo::remainingCapacityBarsChanged(int cap)
//{
+// QVERIFY(cap == currentBatStatus);
//}
-//void tst_QDeclarativeBatteryInfo::remainingChargingTimeChanged(int)
+//void tst_QDeclarativeBatteryInfo::remainingChargingTimeChanged(int time)
//{
+// QVERIFY(time == currentBatStatus);
//}
+#endif
QTEST_MAIN(tst_QDeclarativeBatteryInfo)
diff --git a/tests/auto/qdeclarativedeviceinfo/qdeclarativedeviceinfo.pro b/tests/auto/qdeclarativedeviceinfo/qdeclarativedeviceinfo.pro
index 9ba1e6c012..3bb3c9b0f8 100644
--- a/tests/auto/qdeclarativedeviceinfo/qdeclarativedeviceinfo.pro
+++ b/tests/auto/qdeclarativedeviceinfo/qdeclarativedeviceinfo.pro
@@ -20,3 +20,6 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qdeclarativedisplayinfo/qdeclarativedisplayinfo.pro b/tests/auto/qdeclarativedisplayinfo/qdeclarativedisplayinfo.pro
index 320b5ccc67..288eeacfc9 100644
--- a/tests/auto/qdeclarativedisplayinfo/qdeclarativedisplayinfo.pro
+++ b/tests/auto/qdeclarativedisplayinfo/qdeclarativedisplayinfo.pro
@@ -19,3 +19,6 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qdeclarativedisplayinfo/tst_qdeclarativedisplayinfo.cpp b/tests/auto/qdeclarativedisplayinfo/tst_qdeclarativedisplayinfo.cpp
index 11bab20e5e..48376dd939 100644
--- a/tests/auto/qdeclarativedisplayinfo/tst_qdeclarativedisplayinfo.cpp
+++ b/tests/auto/qdeclarativedisplayinfo/tst_qdeclarativedisplayinfo.cpp
@@ -112,8 +112,8 @@ void tst_QDeclarativeDisplayInfo::tst_orientation()
void tst_QDeclarativeDisplayInfo::tst_contrast()
{
QDeclarativeDisplayInfo di;
- QVERIFY(di.contrast() >= 0
- && di.contrast()< 1.0 );
+ QVERIFY((di.contrast() >= 0 && di.contrast()< 1.0)
+ || di.contrast());
// contrast levels are between 0 and 1.0
}
diff --git a/tests/auto/qdeclarativelandmark/tst_qdeclarativelandmark.cpp b/tests/auto/qdeclarativelandmark/tst_qdeclarativelandmark.cpp
index 9d556dc136..237e6fa218 100644
--- a/tests/auto/qdeclarativelandmark/tst_qdeclarativelandmark.cpp
+++ b/tests/auto/qdeclarativelandmark/tst_qdeclarativelandmark.cpp
@@ -1005,6 +1005,10 @@ void tst_QDeclarativeLandmark::update_data()
void tst_QDeclarativeLandmark::databaseChanges()
{
+#if defined(Q_OS_SYMBIAN)
+ QSKIP("Test-case timing instability, skipping test step.", SkipAll);
+#endif
+
int originalCategoryCount = m_manager->categoryIds().count();
// Test adding and removing of categories
diff --git a/tests/auto/qdeclarativenetworkinfo/qdeclarativenetworkinfo.pro b/tests/auto/qdeclarativenetworkinfo/qdeclarativenetworkinfo.pro
index 809c352fee..e5f5e06acb 100644
--- a/tests/auto/qdeclarativenetworkinfo/qdeclarativenetworkinfo.pro
+++ b/tests/auto/qdeclarativenetworkinfo/qdeclarativenetworkinfo.pro
@@ -20,3 +20,6 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qdeclarativescreensaver/qdeclarativescreensaver.pro b/tests/auto/qdeclarativescreensaver/qdeclarativescreensaver.pro
index 418683970d..4b6c5310f0 100644
--- a/tests/auto/qdeclarativescreensaver/qdeclarativescreensaver.pro
+++ b/tests/auto/qdeclarativescreensaver/qdeclarativescreensaver.pro
@@ -19,3 +19,6 @@ symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qdeclarativestorageinfo/qdeclarativestorageinfo.pro b/tests/auto/qdeclarativestorageinfo/qdeclarativestorageinfo.pro
index 8b48b9ef87..210c58751e 100644
--- a/tests/auto/qdeclarativestorageinfo/qdeclarativestorageinfo.pro
+++ b/tests/auto/qdeclarativestorageinfo/qdeclarativestorageinfo.pro
@@ -25,3 +25,6 @@ symbian {
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qdeclarativesysteminfo/qdeclarativesysteminfo.pro b/tests/auto/qdeclarativesysteminfo/qdeclarativesysteminfo.pro
index 89d8bd855f..e035099cee 100644
--- a/tests/auto/qdeclarativesysteminfo/qdeclarativesysteminfo.pro
+++ b/tests/auto/qdeclarativesysteminfo/qdeclarativesysteminfo.pro
@@ -20,3 +20,6 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qgalleryabstractrequest/tst_qgalleryabstractrequest.cpp b/tests/auto/qgalleryabstractrequest/tst_qgalleryabstractrequest.cpp
index 74f1c3d55a..f2e9bd46eb 100644
--- a/tests/auto/qgalleryabstractrequest/tst_qgalleryabstractrequest.cpp
+++ b/tests/auto/qgalleryabstractrequest/tst_qgalleryabstractrequest.cpp
@@ -192,6 +192,11 @@ void tst_QGalleryAbstractRequest::type()
QCOMPARE(QtGalleryTestRequest(QGalleryAbstractRequest::ItemRequest).type(),
QGalleryAbstractRequest::ItemRequest);
+ QCOMPARE(QtGalleryTestRequest(QGalleryAbstractRequest::QueryRequest).type(),
+ QGalleryAbstractRequest::QueryRequest);
+ //Added Enum
+ QCOMPARE(QtGalleryTestRequest(QGalleryAbstractRequest::TypeRequest).type(),
+ QGalleryAbstractRequest::TypeRequest);
}
void tst_QGalleryAbstractRequest::initTestCase()
@@ -240,7 +245,7 @@ void tst_QGalleryAbstractRequest::executeUnsupported()
QSignalSpy canceledSpy(&request, SIGNAL(canceled()));
QSignalSpy errorSpy(&request, SIGNAL(error(int,QString)));
QSignalSpy stateSpy(&request, SIGNAL(stateChanged(QGalleryAbstractRequest::State)));
-
+ QSignalSpy errorchangedspy(&request,SIGNAL(errorChanged()));//Added Signal
request.execute();
QCOMPARE(request.state(), QGalleryAbstractRequest::Error);
QCOMPARE(request.error(), int(QGalleryAbstractRequest::NotSupported));
@@ -251,6 +256,7 @@ void tst_QGalleryAbstractRequest::executeUnsupported()
QCOMPARE(stateSpy.count(), 1);
QCOMPARE(errorSpy.last().value(0).toInt(), request.error());
QCOMPARE(errorSpy.last().value(1).toString(), request.errorString());
+ QCOMPARE(errorchangedspy.count(),1);
QCOMPARE(stateSpy.last().value(0).value<QGalleryAbstractRequest::State>(), request.state());
}
@@ -308,6 +314,21 @@ void tst_QGalleryAbstractRequest::executeSync()
QCOMPARE(errorSpy.last().value(1).toString(), request.errorString());
QCOMPARE(stateSpy.last().value(0).value<QGalleryAbstractRequest::State>(), request.state());
+ //Added enum gallery error
+ gallery.setError(100, QLatin1String("gallery Corrupted"));
+ request.execute();
+ QVERIFY(request.response() == 0);
+ QCOMPARE(request.error(), int(QGalleryAbstractRequest::GalleryError));
+ QCOMPARE(request.error(), 100);
+ QCOMPARE(request.errorString(), QLatin1String("gallery Corrupted"));
+ QCOMPARE(finishedSpy.count(), 1);
+ QCOMPARE(canceledSpy.count(), 0);
+ QCOMPARE(errorSpy.count(), 3);
+ QCOMPARE(stateSpy.count(), 4);
+ QCOMPARE(errorSpy.last().value(0).toInt(), request.error());
+ QCOMPARE(errorSpy.last().value(1).toString(), request.errorString());
+ QCOMPARE(stateSpy.last().value(0).value<QGalleryAbstractRequest::State>(), request.state());
+
// Successful execution, to idle.
gallery.setError(QGalleryAbstractRequest::NoError, QString());
gallery.setState(QGalleryAbstractRequest::Idle);
@@ -317,8 +338,8 @@ void tst_QGalleryAbstractRequest::executeSync()
QCOMPARE(request.error(), int(QGalleryAbstractRequest::NoError));
QCOMPARE(finishedSpy.count(), 2);
QCOMPARE(canceledSpy.count(), 0);
- QCOMPARE(errorSpy.count(), 2);
- QCOMPARE(stateSpy.count(), 4);
+ QCOMPARE(errorSpy.count(), 3);
+ QCOMPARE(stateSpy.count(), 5);
QCOMPARE(stateSpy.last().value(0).value<QGalleryAbstractRequest::State>(), request.state());
// Execute unsupported.
@@ -329,8 +350,8 @@ void tst_QGalleryAbstractRequest::executeSync()
QCOMPARE(request.error(), int(QGalleryAbstractRequest::NotSupported));
QCOMPARE(finishedSpy.count(), 2);
QCOMPARE(canceledSpy.count(), 0);
- QCOMPARE(errorSpy.count(), 3);
- QCOMPARE(stateSpy.count(), 5);
+ QCOMPARE(errorSpy.count(), 4);
+ QCOMPARE(stateSpy.count(), 6);
QCOMPARE(errorSpy.last().value(0).toInt(), request.error());
QCOMPARE(stateSpy.last().value(0).value<QGalleryAbstractRequest::State>(), request.state());
}
diff --git a/tests/auto/qgalleryabstractresponse/tst_qgalleryabstractresponse.cpp b/tests/auto/qgalleryabstractresponse/tst_qgalleryabstractresponse.cpp
index 1aabc75476..6bbf856755 100644
--- a/tests/auto/qgalleryabstractresponse/tst_qgalleryabstractresponse.cpp
+++ b/tests/auto/qgalleryabstractresponse/tst_qgalleryabstractresponse.cpp
@@ -68,6 +68,7 @@ private Q_SLOTS:
void waitForCanceledNoTimeout();
void waitForErrorImmediate();
void waitForErrorNoTimeout();
+ void progressChangedSignal();
};
class QtGalleryTestResponse : public QGalleryAbstractResponse
@@ -77,6 +78,7 @@ public:
using QGalleryAbstractResponse::error;
using QGalleryAbstractResponse::finish;
using QGalleryAbstractResponse::resume;
+ using QGalleryAbstractResponse::progressChanged;
public Q_SLOTS:
void doFinish() { finish(); }
@@ -483,7 +485,6 @@ void tst_QGalleryAbstractResponse::waitForCanceledNoTimeout()
void tst_QGalleryAbstractResponse::waitForErrorImmediate()
{
QtGalleryTestResponse response;
-
QMetaObject::invokeMethod(&response, "doError", Qt::QueuedConnection, Q_ARG(int, 1));
QCOMPARE(response.isActive(), true);
QCOMPARE(response.waitForFinished(0), true);
@@ -493,13 +494,34 @@ void tst_QGalleryAbstractResponse::waitForErrorImmediate()
void tst_QGalleryAbstractResponse::waitForErrorNoTimeout()
{
QtGalleryTestResponse response;
-
QMetaObject::invokeMethod(&response, "doError", Qt::QueuedConnection, Q_ARG(int, 1));
QCOMPARE(response.isActive(), true);
QCOMPARE(response.waitForFinished(-1), true);
QCOMPARE(response.isActive(), false);
}
+void tst_QGalleryAbstractResponse::progressChangedSignal()
+{
+ QtGalleryTestResponse response;
+
+ QSignalSpy progressChangedSpy(&response, SIGNAL(progressChanged(int,int)));
+ QVERIFY(progressChangedSpy.count() == 0);
+ QCOMPARE(response.isActive(), true);
+ QCOMPARE(response.isIdle(), false);
+
+ response.progressChanged(10, 100);
+ QVERIFY(progressChangedSpy.count() == 1);
+
+ response.cancel();
+ QVERIFY(progressChangedSpy.count() == 1);
+
+ response.progressChanged(20, 200);
+ QVERIFY(progressChangedSpy.count() == 2);
+
+ response.progressChanged(20, 200);
+ QVERIFY(progressChangedSpy.count() == 3);
+}
+
#include "tst_qgalleryabstractresponse.moc"
QTEST_MAIN(tst_QGalleryAbstractResponse)
diff --git a/tests/auto/qgalleryfilter/tst_qgalleryfilter.cpp b/tests/auto/qgalleryfilter/tst_qgalleryfilter.cpp
index e4f4f463a0..79d31e3f4d 100644
--- a/tests/auto/qgalleryfilter/tst_qgalleryfilter.cpp
+++ b/tests/auto/qgalleryfilter/tst_qgalleryfilter.cpp
@@ -84,6 +84,12 @@ private Q_SLOTS:
void debugMessage_data();
void debugMessage();
#endif
+ // Test case for missing scenarios.
+
+ void intersectionFilterInsert();
+ void intersectionFilterPrepend();
+ void unionFilterInsert();
+ void unionFilterPrepend();
};
void tst_QGalleryFilter::nullFilter()
@@ -1152,6 +1158,190 @@ void tst_QGalleryFilter::galleryProperty()
}
}
+/* Test case for insert QGalleryIntersectionFilter */
+ void tst_QGalleryFilter::intersectionFilterInsert()
+ {
+ QGalleryIntersectionFilter intersectionFilter;
+
+ QGalleryMetaDataFilter metaDataFilter;
+ QGalleryUnionFilter unionFilter;
+
+ QCOMPARE(intersectionFilter.isValid(), true);
+ QCOMPARE(intersectionFilter.isEmpty(), true);
+ QCOMPARE(intersectionFilter.filterCount(), 0);
+
+ intersectionFilter.append(metaDataFilter);
+ intersectionFilter.append(unionFilter);
+ intersectionFilter.append(metaDataFilter);
+
+ QCOMPARE(intersectionFilter.filterCount(), 3);
+
+ QList<QGalleryFilter>filters = intersectionFilter.filters();
+ QCOMPARE(filters.count(), 3);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::Union);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::MetaData);
+
+ intersectionFilter.insert(1,intersectionFilter);
+ filters = intersectionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::Union);
+ QCOMPARE(filters.at(3).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(4).type(), QGalleryFilter::Union);
+ QCOMPARE(filters.at(5).type(), QGalleryFilter::MetaData);
+
+ QGalleryIntersectionFilter intersectionFilter1;
+
+ QCOMPARE(intersectionFilter1.isEmpty(), true);
+ intersectionFilter.insert(1,intersectionFilter1);
+ filters = intersectionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+
+ }
+
+/* Test case for insert QGalleryIntersectionFilter */
+ void tst_QGalleryFilter::intersectionFilterPrepend()
+ {
+ QGalleryIntersectionFilter intersectionFilter;
+
+ QGalleryMetaDataFilter metaDataFilter;
+ QGalleryUnionFilter unionFilter;
+
+ QCOMPARE(intersectionFilter.isValid(), true);
+ QCOMPARE(intersectionFilter.isEmpty(), true);
+ QCOMPARE(intersectionFilter.filterCount(), 0);
+
+ intersectionFilter.append(metaDataFilter);
+ intersectionFilter.append(unionFilter);
+ intersectionFilter.append(metaDataFilter);
+
+ QCOMPARE(intersectionFilter.filterCount(), 3);
+
+ QList<QGalleryFilter>filters = intersectionFilter.filters();
+ QCOMPARE(filters.count(), 3);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::Union);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::MetaData);
+
+ intersectionFilter.prepend(intersectionFilter);
+ filters = intersectionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::Union);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(3).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(4).type(), QGalleryFilter::Union);
+ QCOMPARE(filters.at(5).type(), QGalleryFilter::MetaData);
+
+ QGalleryIntersectionFilter intersectionFilter1;
+
+ QCOMPARE(intersectionFilter1.isEmpty(), true);
+ intersectionFilter.prepend(intersectionFilter1);
+ filters = intersectionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+ }
+
+
+ /* Test case for insert QGalleryUnionFilter */
+ void tst_QGalleryFilter::unionFilterInsert()
+ {
+ QGalleryIntersectionFilter intersectionFilter;
+
+ QGalleryMetaDataFilter metaDataFilter;
+ QGalleryUnionFilter unionFilter;
+
+ QCOMPARE(unionFilter.isValid(), true);
+ QCOMPARE(unionFilter.isEmpty(), true);
+ QCOMPARE(unionFilter.filterCount(), 0);
+
+ unionFilter.append(metaDataFilter);
+ unionFilter.append(intersectionFilter);
+ unionFilter.append(metaDataFilter);
+
+ QCOMPARE(unionFilter.filterCount(), 3);
+
+ QList<QGalleryFilter>filters = unionFilter.filters();
+ QCOMPARE(filters.count(), 3);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::Intersection);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::MetaData);
+
+ unionFilter.insert(1,unionFilter);
+ filters = unionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::Intersection);
+ QCOMPARE(filters.at(3).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(4).type(), QGalleryFilter::Intersection);
+ QCOMPARE(filters.at(5).type(), QGalleryFilter::MetaData);
+
+ QGalleryUnionFilter unionFilter1;
+
+ QCOMPARE(unionFilter1.isEmpty(), true);
+ unionFilter.insert(1,unionFilter1);
+ filters = unionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+
+ }
+
+ /* Test case for Prepend QGalleryUnionFilter */
+ void tst_QGalleryFilter::unionFilterPrepend()
+ {
+ QGalleryIntersectionFilter intersectionFilter;
+
+ QGalleryMetaDataFilter metaDataFilter;
+ QGalleryUnionFilter unionFilter;
+
+ QCOMPARE(unionFilter.isValid(), true);
+ QCOMPARE(unionFilter.isEmpty(), true);
+ QCOMPARE(unionFilter.filterCount(), 0);
+
+ unionFilter.append(metaDataFilter);
+ unionFilter.append(intersectionFilter);
+ unionFilter.append(metaDataFilter);
+
+ QCOMPARE(unionFilter.filterCount(), 3);
+
+ QList<QGalleryFilter>filters = unionFilter.filters();
+ QCOMPARE(filters.count(), 3);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::Intersection);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::MetaData);
+
+ unionFilter.prepend(unionFilter);
+ filters = unionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+ QCOMPARE(filters.at(0).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(1).type(), QGalleryFilter::Intersection);
+ QCOMPARE(filters.at(2).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(3).type(), QGalleryFilter::MetaData);
+ QCOMPARE(filters.at(4).type(), QGalleryFilter::Intersection);
+ QCOMPARE(filters.at(5).type(), QGalleryFilter::MetaData);
+
+ QGalleryUnionFilter unionFilter1;
+
+ QCOMPARE(unionFilter1.isEmpty(), true);
+ unionFilter.prepend(unionFilter1);
+ filters = unionFilter.filters();
+ QCOMPARE(filters.count(), 6);
+
+ }
+
+
QTEST_MAIN(tst_QGalleryFilter)
#include "tst_qgalleryfilter.moc"
diff --git a/tests/auto/qgalleryquerymodel/tst_qgalleryquerymodel.cpp b/tests/auto/qgalleryquerymodel/tst_qgalleryquerymodel.cpp
index 3eae0f4dab..f30a972236 100644
--- a/tests/auto/qgalleryquerymodel/tst_qgalleryquerymodel.cpp
+++ b/tests/auto/qgalleryquerymodel/tst_qgalleryquerymodel.cpp
@@ -89,6 +89,8 @@ private Q_SLOTS:
void invalidIndex();
void hierarchy();
void setGallery();
+ void galleryChanged();
+ void errorChanged();
private:
void populateGallery(QtTestGallery *gallery) const;
@@ -1808,6 +1810,45 @@ void tst_QGalleryQueryModel::setGallery()
QCOMPARE(index.isValid(), false);
}
+void tst_QGalleryQueryModel::galleryChanged()
+{
+ QtTestGallery *gallery;
+ gallery = new (QtTestGallery);
+ QGalleryQueryModel model;
+
+ QSignalSpy galleryChangedSpy(&model, SIGNAL(galleryChanged()));
+ QCOMPARE(galleryChangedSpy.count(), 0);
+
+ model.setGallery(gallery);
+ QCOMPARE(model.gallery() ,gallery);
+ QCOMPARE(galleryChangedSpy.count(), 1);
+
+}
+
+void tst_QGalleryQueryModel::errorChanged()
+{
+
+ QtTestGallery gallery;
+
+ QGalleryQueryModel model(&gallery);
+
+ QSignalSpy errorChangedSpy(&model, SIGNAL(errorChanged()));
+
+ model.execute();
+ QCOMPARE(model.error(), int(QGalleryAbstractRequest::NoError));
+ QCOMPARE(errorChangedSpy.count(),0);
+
+ gallery.setError(120, QLatin1String("bad connection"));
+ model.execute();
+ QCOMPARE(model.state(), QGalleryAbstractRequest::Error);
+ QCOMPARE(model.error(),120);
+ QCOMPARE(model.errorString(), QLatin1String("bad connection"));
+ QCOMPARE(errorChangedSpy.count(),1);
+
+
+}
+
+
QTEST_MAIN(tst_QGalleryQueryModel)
#include "tst_qgalleryquerymodel.moc"
diff --git a/tests/auto/qgeocoordinate/qlocationtestutils.cpp b/tests/auto/qgeocoordinate/qlocationtestutils.cpp
index 53f09b1104..5830efda79 100644
--- a/tests/auto/qgeocoordinate/qlocationtestutils.cpp
+++ b/tests/auto/qgeocoordinate/qlocationtestutils.cpp
@@ -72,9 +72,7 @@ bool QLocationTestUtils::hasDefaultSource()
bool QLocationTestUtils::hasDefaultMonitor()
{
-#if defined(Q_OS_SYMBIAN) && defined(QT_LOCATION_S60_MONITORING)
- return true;
-#elif defined (Q_WS_MAEMO_5)
+#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5)
return true;
#else
return false;
diff --git a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp
index fc8aac0b56..f62cbc60de 100644
--- a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp
+++ b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp
@@ -349,7 +349,7 @@ void TestQGeoPositionInfoSource::setUpdateInterval_data()
int minUpdateInterval = source ? source->minimumUpdateInterval() : -1;
if (source)
delete source;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QTest::newRow("0") << 0 << minUpdateInterval;
#else
QTest::newRow("0") << 0 << 0;
@@ -381,6 +381,9 @@ void TestQGeoPositionInfoSource::lastKnownPosition()
QFETCH(bool, lastKnownPositionArgument);
QFETCH(bool, positionValid);
+#if defined(Q_OS_SYMBIAN)
+ QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
+#endif
QGeoPositionInfoSource::PositioningMethods method
= static_cast<QGeoPositionInfoSource::PositioningMethods>(positioningMethod);
@@ -480,7 +483,7 @@ void TestQGeoPositionInfoSource::minimumUpdateInterval()
void TestQGeoPositionInfoSource::startUpdates_testIntervals()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
QSignalSpy spy(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&)));
@@ -514,7 +517,7 @@ void TestQGeoPositionInfoSource::startUpdates_testIntervalChangesWhileRunning()
// this test are as high as they are.
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -573,7 +576,7 @@ void TestQGeoPositionInfoSource::startUpdates_testIntervalChangesWhileRunning()
void TestQGeoPositionInfoSource::startUpdates_testDefaultInterval()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -593,7 +596,7 @@ void TestQGeoPositionInfoSource::startUpdates_testDefaultInterval()
void TestQGeoPositionInfoSource::startUpdates_testZeroInterval()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -613,7 +616,7 @@ void TestQGeoPositionInfoSource::startUpdates_testZeroInterval()
void TestQGeoPositionInfoSource::startUpdates_moreThanOnce()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -637,7 +640,7 @@ void TestQGeoPositionInfoSource::startUpdates_moreThanOnce()
void TestQGeoPositionInfoSource::stopUpdates()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -672,7 +675,7 @@ void TestQGeoPositionInfoSource::stopUpdates_withoutStart()
void TestQGeoPositionInfoSource::requestUpdate()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
QFETCH(int, timeout);
@@ -691,7 +694,7 @@ void TestQGeoPositionInfoSource::requestUpdate_data()
void TestQGeoPositionInfoSource::requestUpdate_validTimeout()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -708,7 +711,7 @@ void TestQGeoPositionInfoSource::requestUpdate_validTimeout()
void TestQGeoPositionInfoSource::requestUpdate_defaultTimeout()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -741,7 +744,7 @@ void TestQGeoPositionInfoSource::requestUpdate_timeoutLessThanMinimumInterval()
void TestQGeoPositionInfoSource::requestUpdate_repeatedCalls()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -764,7 +767,7 @@ void TestQGeoPositionInfoSource::requestUpdate_repeatedCalls()
void TestQGeoPositionInfoSource::requestUpdate_overlappingCalls()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -783,7 +786,7 @@ void TestQGeoPositionInfoSource::requestUpdate_overlappingCalls()
void TestQGeoPositionInfoSource::requestUpdateAfterStartUpdates_ZeroInterval()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -816,7 +819,7 @@ void TestQGeoPositionInfoSource::requestUpdateAfterStartUpdates_ZeroInterval()
void TestQGeoPositionInfoSource::requestUpdateAfterStartUpdates_SmallInterval()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -848,7 +851,7 @@ void TestQGeoPositionInfoSource::requestUpdateAfterStartUpdates_SmallInterval()
void TestQGeoPositionInfoSource::requestUpdateBeforeStartUpdates_ZeroInterval()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -877,7 +880,7 @@ void TestQGeoPositionInfoSource::requestUpdateBeforeStartUpdates_ZeroInterval()
void TestQGeoPositionInfoSource::requestUpdateBeforeStartUpdates_SmallInterval()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
QSignalSpy spyUpdate(m_source, SIGNAL(positionUpdated(const QGeoPositionInfo&)));
@@ -921,7 +924,7 @@ void TestQGeoPositionInfoSource::removeSlotForRequestTimeout()
void TestQGeoPositionInfoSource::removeSlotForPositionUpdated()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
diff --git a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
index 343a0b0730..0248c0ed56 100644
--- a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
+++ b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
@@ -512,7 +512,7 @@ void TestQGeoSatelliteInfoSource::startUpdates()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
QSignalSpy spyView(m_source,
@@ -537,7 +537,7 @@ void TestQGeoSatelliteInfoSource::startUpdates()
void TestQGeoSatelliteInfoSource::startUpdates_moreThanOnce()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
QSignalSpy spyView(m_source,
@@ -562,7 +562,7 @@ void TestQGeoSatelliteInfoSource::stopUpdates()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -597,7 +597,7 @@ void TestQGeoSatelliteInfoSource::stopUpdates_withoutStart()
void TestQGeoSatelliteInfoSource::requestUpdate()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -620,7 +620,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_data()
void TestQGeoSatelliteInfoSource::requestUpdate_validTimeout()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -641,7 +641,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_validTimeout()
void TestQGeoSatelliteInfoSource::requestUpdate_defaultTimeout()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -663,7 +663,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_defaultTimeout()
void TestQGeoSatelliteInfoSource::requestUpdate_repeatedCalls()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -690,7 +690,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_repeatedCalls()
void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCalls()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -716,7 +716,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCalls()
void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCallsWithTimeout()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -746,7 +746,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCallsWithTimeout()
void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -784,7 +784,7 @@ void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates()
void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -816,7 +816,7 @@ void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates()
void TestQGeoSatelliteInfoSource::removeSlotForRequestTimeout()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -834,7 +834,7 @@ void TestQGeoSatelliteInfoSource::removeSlotForRequestTimeout()
void TestQGeoSatelliteInfoSource::removeSlotForSatellitesInUseUpdated()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
@@ -855,7 +855,7 @@ void TestQGeoSatelliteInfoSource::removeSlotForSatellitesInUseUpdated()
void TestQGeoSatelliteInfoSource::removeSlotForSatellitesInViewUpdated()
{
CHECK_SOURCE_VALID;
-#if defined(Q_WS_MAEMO_6)
+#if defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
QSKIP("Real GPS not suitable for autotesting, skipping the test.", SkipAll);
#endif
diff --git a/tests/auto/qgeosearchmanager/tst_qgeosearchmanager.cpp b/tests/auto/qgeosearchmanager/tst_qgeosearchmanager.cpp
index 32e624aef9..173bd3e71b 100644
--- a/tests/auto/qgeosearchmanager/tst_qgeosearchmanager.cpp
+++ b/tests/auto/qgeosearchmanager/tst_qgeosearchmanager.cpp
@@ -97,10 +97,16 @@ void tst_QGeoSearchManager::landmarkManager()
{
QVERIFY(qgeosearchmanager->defaultLandmarkManager());
- QString managername = "com.nokia.qt.landmarks.engines.sqlite";
- QCOMPARE(qgeosearchmanager->defaultLandmarkManager()->managerName(),managername);
-
-
+ QString managerName;
+#ifdef Q_OS_SYMBIAN
+ managerName = "com.nokia.qt.landmarks.engines.symbian";
+#elif defined(Q_WS_MAEMO_6) || defined(Q_WS_MEEGO)
+ managerName = "com.nokia.qt.landmarks.engines.qsparql";
+#else
+ managerName = "com.nokia.qt.landmarks.engines.sqlite";
+#endif
+
+ QCOMPARE(qgeosearchmanager->defaultLandmarkManager()->managerName(),managerName);
}
void tst_QGeoSearchManager::locale()
diff --git a/tests/auto/qgeosearchmanagerplugins/qgeosearchmanagerengine_test.h b/tests/auto/qgeosearchmanagerplugins/qgeosearchmanagerengine_test.h
index 0e849fe028..83c0955457 100644
--- a/tests/auto/qgeosearchmanagerplugins/qgeosearchmanagerengine_test.h
+++ b/tests/auto/qgeosearchmanagerplugins/qgeosearchmanagerengine_test.h
@@ -86,7 +86,7 @@ public:
setSupportsReverseGeocoding(true);
setLocale(*(new QLocale (QLocale::German, QLocale::Germany)));
- QLandmarkManager *landmarkmanager = new QLandmarkManager("com.nokia.qt.landmarks.engines.sqlite");
+ QLandmarkManager *landmarkmanager = new QLandmarkManager();
setDefaultLandmarkManager(landmarkmanager);
diff --git a/tests/auto/qlandmarkmanager/tst_qlandmarkmanager.cpp b/tests/auto/qlandmarkmanager/tst_qlandmarkmanager.cpp
index cb3c5dbfd5..2423d0ddef 100755
--- a/tests/auto/qlandmarkmanager/tst_qlandmarkmanager.cpp
+++ b/tests/auto/qlandmarkmanager/tst_qlandmarkmanager.cpp
@@ -1026,16 +1026,40 @@ private:
}
void clearDb() {
+
+#ifdef Q_OS_SYMBIAN //workaround for MOBILITY-2275
+ bool successfulRemoval = true;
+ for (int x=0; x < 5; x++)
+ {
+#endif
QList<QLandmarkId> lmIds = m_manager->landmarkIds();
for(int i=0; i < lmIds.count(); ++i) {
+#ifndef Q_OS_SYMBIAN
QVERIFY(m_manager->removeLandmark(lmIds.at(i)));
+#else //workaround for MOBILITY-2275
+ if (!m_manager->removeLandmark(lmIds.at(i)))
+ successfulRemoval = false;
+#endif
}
QList<QLandmarkCategoryId> catIds = m_manager->categoryIds();
for (int i=0; i < catIds.count(); ++i) {
- if (!m_manager->isReadOnly(catIds.at(i)))
+ if (!m_manager->isReadOnly(catIds.at(i))) {
+#ifndef Q_OS_SYMBIAN
QVERIFY(m_manager->removeCategory(catIds.at(i)));
+#else //workaround for MOBILITY-2275
+ if (!m_manager->removeCategory(catIds.at(i)))
+ successfulRemoval = false;
+#endif
+ }
+ }
+#ifdef Q_OS_SYMBIAN
}
+ if (!successfulRemoval) {
+ qWarning() << "Clearing of all landmarks was not successful, needed "
+ "to iterate over the landmarks again to try remove them all";
+ }
+#endif
//try ensure notifications for these deletions
//are made prior to each test function
@@ -1259,6 +1283,7 @@ private slots:
void isReadOnly();
void isFeatureSupported();
void notificationCheck();
+ void managerName();
#endif
#ifdef TEST_SIGNALS
@@ -7532,17 +7557,26 @@ void tst_QLandmarkManager::importGpx() {
QList<QLandmarkId> ids;
QCOMPARE(spyAdd.count(), 0);
-#ifdef Q_OS_SYMBIAN
- if (type == "asyncAttachSingleCategory")
- QEXPECT_FAIL("", "MOBILITY-1733: inconsistent datachanged signalling on symbian", Continue);
-#endif
+
#if defined (SPARQL_BACKEND)
//TODO: Signalling in mameo 6 need optmization
QVERIFY(dataChanged.count() == 1 || dataChanged.count() ==2);
#else
+
+#ifdef Q_OS_SYMBIAN
+ if (type == "asyncAttachSingleCategory") {
+ //attaching a category asynchronously on symbian results in 2 dataChanged signals
+ QCOMPARE(dataChanged.count() ==2);
+ }
+ else {
+ QCOMPARE(dataChanged.count(),1);
+ }
+#else
QCOMPARE(dataChanged.count(),1);
#endif
+
+#endif
spyAdd.clear();
dataChanged.clear();
@@ -7616,7 +7650,7 @@ void tst_QLandmarkManager::importGpx() {
#if defined(SPARQL_BACKEND)
QTest::qWait(2000);
#else
- QTest::qWait(10);
+ QTest::qWait(50);
#endif
QCOMPARE(spyRemove.count(), 0);
QCOMPARE(spyChange.count(), 0);
@@ -7626,9 +7660,12 @@ void tst_QLandmarkManager::importGpx() {
#ifdef Q_OS_SYMBIAN
QCOMPARE(spyAdd.count(), 0);
- if (type == "syncAttachSingleCategory" || type == "asyncAttachSingleCategory") //WORKAROUND
- QEXPECT_FAIL("", "MOBILITY-1733: inconsistent datachanged signalling on symbian", Continue);
- QCOMPARE(dataChanged.count(),1);
+ if (type == "syncAttachSingleCategory" || type == "asyncAttachSingleCategory") {
+ //attaching a category on symbian results in 2 dataChanged signals
+ QCOMPARE(dataChanged.count(), 2);
+ } else {
+ QCOMPARE(dataChanged.count(),1);
+ }
#else
QCOMPARE(spyAdd.count(), 1);
ids = spyAdd.at(0).at(0).value<QList<QLandmarkId> >();
@@ -7880,9 +7917,13 @@ void tst_QLandmarkManager::importLmx() {
QCOMPARE(spyCatAdd.count(), 1);
}
- if (type == "asyncAttachSingleCategory") //WORKAROUND
- QEXPECT_FAIL("", "MOBILITY-1733: inconsistent datachanged signalling on symbian", Continue);
- QCOMPARE(spyDataChanged.count(), 1);
+ if (type == "asyncAttachSingleCategory") {
+ //attaching a single category on symbian results in 2 data changed signals
+ QCOMPARE(spyDataChanged.count(), 2);
+ } else {
+ QCOMPARE(spyDataChanged.count(), 1);
+ }
+
spyDataChanged.clear();
#else
QCOMPARE(spyRemove.count(), 0);
@@ -9027,6 +9068,18 @@ void tst_QLandmarkManager::notificationCheck()
//check that we can receive an signal from import from another process
}
+void tst_QLandmarkManager::managerName()
+{
+ QString managerName;
+#ifdef Q_OS_SYMBIAN
+ managerName = "com.nokia.qt.landmarks.engines.symbian";
+#elif defined(Q_WS_MAEMO_6) || defined(Q_WS_MEEGO)
+ managerName = "com.nokia.qt.landmarks.engines.qsparql";
+#else
+ managerName = "com.nokia.qt.landmarks.engines.sqlite";
+#endif
+ QCOMPARE(m_manager->managerName(), managerName);
+}
#endif
#ifndef Q_OS_SYMBIAN
@@ -9971,6 +10024,7 @@ void tst_QLandmarkManager::removeStress_data()
#ifdef SAVE_STRESS
void tst_QLandmarkManager::saveStress()
{
+ qDebug() << "Start of save stress function";
QLandmarkCategory cat1;
cat1.setName("cat1");
QVERIFY(m_manager->saveCategory(&cat1));
@@ -10065,6 +10119,7 @@ void tst_QLandmarkManager::saveStress()
}
}
#endif
+ qDebug() << "End of save stress function";
}
void tst_QLandmarkManager::saveStress_data()
diff --git a/tests/auto/qmessagestore/tst_qmessagestore.cpp b/tests/auto/qmessagestore/tst_qmessagestore.cpp
index caa14e3c5f..35c3645d47 100644
--- a/tests/auto/qmessagestore/tst_qmessagestore.cpp
+++ b/tests/auto/qmessagestore/tst_qmessagestore.cpp
@@ -560,9 +560,14 @@ void tst_QMessageStore::testRemoveAccount()
QTest::qWait(200); // Updating EmailClientApi mailbox cache is asynchronous operation so wait is needed.
QVERIFY(!manager->queryAccounts(QMessageAccountFilter::byName("Mr. Temp")).empty());
+#if (defined(Q_WS_MAEMO_5) || defined(Q_OS_WIN) || (defined(Q_OS_SYMBIAN) && !defined(FREESTYLEMAILMAPI12USED)))
+ // Not supported on Fremantle (Maemo5), Windows or Symbian <SR1.11
+ QVERIFY(!manager->removeAccount(id));
+#else
QVERIFY(manager->removeAccount(id)); // This is synchronous function
QVERIFY(manager->queryAccounts(QMessageAccountFilter::byName("Mr. Temp")).empty());
+#endif
}
void tst_QMessageStore::testMessage()
diff --git a/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp b/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp
index 961192efaa..0a309abfa5 100644
--- a/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp
+++ b/tests/auto/qnearfieldtagtype1/tst_qnearfieldtagtype1.cpp
@@ -401,10 +401,23 @@ void tst_QNearFieldTagType1::ndefMessages()
QVERIFY(target->hasNdefMessage());
QSignalSpy ndefMessageReadSpy(target, SIGNAL(ndefMessageRead(QNdefMessage)));
+ QSignalSpy requestCompletedSpy(target,
+ SIGNAL(requestCompleted(QNearFieldTarget::RequestId)));
+ QSignalSpy errorSpy(target,
+ SIGNAL(error(QNearFieldTarget::Error,QNearFieldTarget::RequestId)));
- target->readNdefMessages();
+ QNearFieldTarget::RequestId readId = target->readNdefMessages();
- QTRY_VERIFY(!ndefMessageReadSpy.isEmpty());
+ QVERIFY(readId.isValid());
+
+ QNearFieldTarget::RequestId completedId;
+
+ while (completedId != readId) {
+ QTRY_VERIFY(!requestCompletedSpy.isEmpty() && errorSpy.isEmpty());
+
+ completedId =
+ requestCompletedSpy.takeFirst().first().value<QNearFieldTarget::RequestId>();
+ }
QList<QNdefMessage> ndefMessages;
for (int i = 0; i < ndefMessageReadSpy.count(); ++i)
@@ -427,18 +440,43 @@ void tst_QNearFieldTagType1::ndefMessages()
messages.append(message);
+ requestCompletedSpy.clear();
+ errorSpy.clear();
+
QSignalSpy ndefMessageWriteSpy(target, SIGNAL(ndefMessagesWritten()));
- target->writeNdefMessages(messages);
+ QNearFieldTarget::RequestId writeId = target->writeNdefMessages(messages);
+
+ QVERIFY(writeId.isValid());
+
+ completedId = QNearFieldTarget::RequestId();
- QTRY_VERIFY(!ndefMessageWriteSpy.isEmpty());
+ while (completedId != writeId) {
+ QTRY_VERIFY(!requestCompletedSpy.isEmpty() && errorSpy.isEmpty());
+
+ completedId =
+ requestCompletedSpy.takeFirst().first().value<QNearFieldTarget::RequestId>();
+ }
+
+ QVERIFY(!ndefMessageWriteSpy.isEmpty());
QVERIFY(target->hasNdefMessage());
ndefMessageReadSpy.clear();
+ requestCompletedSpy.clear();
+ errorSpy.clear();
+
+ readId = target->readNdefMessages();
- target->readNdefMessages();
+ QVERIFY(readId.isValid());
- QTRY_VERIFY(!ndefMessageReadSpy.isEmpty());
+ completedId = QNearFieldTarget::RequestId();
+
+ while (completedId != readId) {
+ QTRY_VERIFY(!requestCompletedSpy.isEmpty() && errorSpy.isEmpty());
+
+ completedId =
+ requestCompletedSpy.takeFirst().first().value<QNearFieldTarget::RequestId>();
+ }
QList<QNdefMessage> storedMessages;
for (int i = 0; i < ndefMessageReadSpy.count(); ++i)
@@ -446,7 +484,7 @@ void tst_QNearFieldTagType1::ndefMessages()
QVERIFY(ndefMessages != storedMessages);
- QVERIFY(messages == storedMessages);
+ QCOMPARE(messages, storedMessages);
}
}
diff --git a/tests/auto/qrfcommserver/README.txt b/tests/auto/qrfcommserver/README.txt
index 39ff3c8960..d3c89cae32 100644
--- a/tests/auto/qrfcommserver/README.txt
+++ b/tests/auto/qrfcommserver/README.txt
@@ -1,7 +1,11 @@
This test currently can not be run automatically.
To make this test work, manual connections must be started from a client
-machine. Steps to run this test automatically:
+machine. There are 2 options for doing this, either use the rfcommclient application in the subdirectory,
+or run the test manually as described below. When using rfcommclient, start qrfcommserver first and then
+start rfcommclient on the other device. There might be some timing issues, so beware.
+
+Steps to run this test manually:
1. start tst_qrfcommserver
diff --git a/tests/auto/qsensor/test_sensorimpl.cpp b/tests/auto/qsensor/test_sensorimpl.cpp
index 7f35a4672b..8ee864b99e 100644
--- a/tests/auto/qsensor/test_sensorimpl.cpp
+++ b/tests/auto/qsensor/test_sensorimpl.cpp
@@ -44,6 +44,8 @@
const char *testsensorimpl::id("test sensor impl");
+static testsensorimpl *exclusiveHandle = 0;
+
testsensorimpl::testsensorimpl(QSensor *sensor)
: QSensorBackend(sensor)
{
@@ -69,12 +71,28 @@ testsensorimpl::testsensorimpl(QSensor *sensor)
reading();
}
+testsensorimpl::~testsensorimpl()
+{
+ Q_ASSERT(exclusiveHandle != this);
+}
+
void testsensorimpl::start()
{
+ QVariant _exclusive = sensor()->property("exclusive");
+ bool exclusive = _exclusive.isValid()?_exclusive.toBool():false;
+ if (exclusive) {
+ if (!exclusiveHandle) {
+ exclusiveHandle = this;
+ } else {
+ // Hook up the busyChanged signal
+ connect(exclusiveHandle, SIGNAL(emitBusyChanged()), sensor(), SIGNAL(busyChanged()));
+ sensorBusy(); // report the busy condition
+ return;
+ }
+ }
+
QString doThis = sensor()->property("doThis").toString();
- if (doThis == "busy")
- sensorBusy();
- else if (doThis == "stop")
+ if (doThis == "stop")
sensorStopped();
else if (doThis == "error")
sensorError(1);
@@ -91,5 +109,11 @@ void testsensorimpl::start()
void testsensorimpl::stop()
{
+ QVariant _exclusive = sensor()->property("exclusive");
+ bool exclusive = _exclusive.isValid()?_exclusive.toBool():false;
+ if (exclusive && exclusiveHandle == this) {
+ exclusiveHandle = 0;
+ emit emitBusyChanged(); // notify any waiting instances that they can try to grab the sensor now
+ }
}
diff --git a/tests/auto/qsensor/test_sensorimpl.h b/tests/auto/qsensor/test_sensorimpl.h
index c3ed508f33..f5b4f079da 100644
--- a/tests/auto/qsensor/test_sensorimpl.h
+++ b/tests/auto/qsensor/test_sensorimpl.h
@@ -49,14 +49,19 @@ QTM_USE_NAMESPACE
class testsensorimpl : public QSensorBackend
{
+ Q_OBJECT
public:
static const char *id;
testsensorimpl(QSensor *sensor);
+ ~testsensorimpl();
void start();
void stop();
+signals:
+ void emitBusyChanged();
+
private:
TestSensorReading m_reading;
};
diff --git a/tests/auto/qsensor/tst_qsensor.cpp b/tests/auto/qsensor/tst_qsensor.cpp
index bc42685dde..9a67a45057 100644
--- a/tests/auto/qsensor/tst_qsensor.cpp
+++ b/tests/auto/qsensor/tst_qsensor.cpp
@@ -46,6 +46,7 @@
#include <QDebug>
#include <QSettings>
#include <QFile>
+#include <QSignalSpy>
#include "qsensor.h"
#include "test_sensor.h"
@@ -471,12 +472,6 @@ private slots:
TestSensor sensor;
sensor.connectToBackend();
- sensor.setProperty("doThis", "busy");
- sensor.start();
- QVERIFY(sensor.isBusy());
- QVERIFY(!sensor.isActive());
- sensor.stop();
-
sensor.setProperty("doThis", "stop");
sensor.start();
QVERIFY(!sensor.isActive());
@@ -885,6 +880,31 @@ private slots:
sensor.stop();
}
+ void testBusyChanged()
+ {
+ // Start an exclusive sensor
+ TestSensor sensor1;
+ sensor1.setProperty("exclusive", true);
+ sensor1.start();
+ QVERIFY(sensor1.isActive());
+
+ // Try to start another one, sensor reports busy
+ TestSensor sensor2;
+ sensor2.setProperty("exclusive", true);
+ sensor2.start();
+ QVERIFY(sensor2.isBusy());
+ QVERIFY(!sensor2.isActive());
+
+ // Stopping the first instance causes the busyChanged signal to be emitted from the second instance
+ QSignalSpy spy(&sensor2, SIGNAL(busyChanged()));
+ sensor1.stop();
+ QCOMPARE(spy.count(), 1);
+
+ // Now we can start the second instance
+ sensor2.start();
+ QVERIFY(sensor2.isActive());
+ }
+
// This test must be LAST or it will interfere with the other tests
void testLoadingPlugins()
{
diff --git a/tests/auto/qsystembatteryinfo/qsystembatteryinfo.pro b/tests/auto/qsystembatteryinfo/qsystembatteryinfo.pro
index ccf258613f..b7c4b0ac63 100644
--- a/tests/auto/qsystembatteryinfo/qsystembatteryinfo.pro
+++ b/tests/auto/qsystembatteryinfo/qsystembatteryinfo.pro
@@ -3,7 +3,7 @@ CONFIG+=testcase
SOURCES += tst_qsystembatteryinfo.cpp
QT = core
-DEFINES += TESTR
+
INCLUDEPATH += ../../../src/systeminfo
include(../../../common.pri)
@@ -13,3 +13,7 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+
+contains(test_use_sim, yes) {
+ DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qsystembatteryinfo/tst_qsystembatteryinfo.cpp b/tests/auto/qsystembatteryinfo/tst_qsystembatteryinfo.cpp
index ea5c824efe..1305a38906 100644
--- a/tests/auto/qsystembatteryinfo/tst_qsystembatteryinfo.cpp
+++ b/tests/auto/qsystembatteryinfo/tst_qsystembatteryinfo.cpp
@@ -45,6 +45,10 @@
#include "qsystembatteryinfo.h"
#include <QDebug>
+#ifdef TESTR
+#include "qsysteminfo_simulator_p.h"
+#endif
+
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QSystemBatteryInfo::BatteryStatus);
Q_DECLARE_METATYPE(QSystemBatteryInfo::ChargingState);
@@ -58,31 +62,64 @@ Q_DECLARE_METATYPE(QSystemBatteryInfo::EnergyUnit);
* \return \p true if the requested signal was received
* \p false on timeout
*/
-//static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
-//{
-// QEventLoop loop;
-// QObject::connect(obj, signal, &loop, SLOT(quit()));
-// QTimer timer;
-// QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
-// if (timeout > 0) {
-// QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
-// timer.setSingleShot(true);
-// timer.start(timeout);
-// }
-// loop.exec();
-// return timeoutSpy.isEmpty();
-//}
-
-//class ChangeBatteryThread : public QThread
-//{
-//public:
-// void run()
-// {
-// QSystemBatteryInfo bi;
-// QSystemBatteryInfoPrivate *bip = bi.priv;
-// }
+#ifdef TESTR
+static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
+{
+ QEventLoop loop;
+ QObject::connect(obj, signal, &loop, SLOT(quit()));
+ QTimer timer;
+ QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
+ if (timeout > 0) {
+ QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.setSingleShot(true);
+ timer.start(timeout);
+ }
+ loop.exec();
+ return timeoutSpy.isEmpty();
+}
-//};
+class ChangeBatteryThread : public QThread
+{
+public:
+ void run()
+ {
+ QMutexLocker locker(&mutex);
+ SystemInfoConnection si;
+ QSystemBatteryInfoPrivate *d = si.batteryInfoPrivate();
+
+ d->setBatteryStatus(currentBatStatus);
+ d->setChargerType(curChargeType);
+ d->setChargingState(curChargeState);
+
+ d->setNominalCapacity(capacity);
+ d->setRemainingCapacityPercent(currentBatLevelPercent);
+ d->setRemainingCapacity(remainingCapacity);
+
+ d->setVoltage(currentVoltage);
+ d->setRemainingChargingTime(remainingEnergy);
+ d->setCurrentFlow(dischargeRate);
+// d->setRemainingCapacityBars(int v);
+// d->setMaxBars(int v);
+
+
+ this->exit();
+ }
+ QMutex mutex;
+ QSystemBatteryInfo::BatteryStatus currentBatStatus;
+ QSystemBatteryInfo::ChargingState curChargeState;
+ QSystemBatteryInfo::ChargerType curChargeType;
+ QVariantMap pMap;
+
+ int currentBatLevelPercent;
+ int currentVoltage;
+ int dischargeRate;
+ int capacity;
+ int timeToFull;
+ int remainingEnergy;
+ int remainingCapacity;
+// int capBars;
+};
+#endif
class tst_QSystemBatteryInfo : public QObject
{
@@ -112,55 +149,73 @@ private slots:
void tst_batteryStatus();
void tst_energyMeasurementUnit();
-
+#ifdef TESTR
//signal tests
-// void tst_batteryLevelChanged();
-// void tst_batteryStatusChanged();
+ void tst_batteryStatusChanged_data();
+ void tst_batteryStatusChanged();
+ void tst_chargingStateChanged_data();
+ void tst_chargingStateChanged();
-// void tst_chargingStateChanged();
-// void tst_chargerTypeChanged();
+ void tst_chargerTypeChanged_data();
+ void tst_chargerTypeChanged();
-// void tst_nominalCapacityChanged();
-// void tst_remainingCapacityPercentChanged();
-// void tst_remainingCapacityChanged();
-// void tst_voltageChanged();
+ void tst_nominalCapacityChanged_data();
+ void tst_nominalCapacityChanged();
-// void tst_currentFlowChanged();
-// void tst_cumulativeCurrentFlowChanged();
-// void tst_remainingCapacityBarsChanged();
-// void tst_remainingChargingTimeChanged();
+ void tst_remainingCapacityPercentChanged_data();
+ void tst_remainingCapacityPercentChanged();
+ void tst_remainingCapacityChanged_data();
+ void tst_remainingCapacityChanged();
-// //signals
-// void batteryLevelChanged(int level);
-// void batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batteryStatus);
+ void tst_currentFlowChanged_data();
+ void tst_currentFlowChanged();
+ void tst_remainingCapacityBarsChanged();
+ void tst_remainingChargingTimeChanged();
-// void chargingStateChanged(QSystemBatteryInfo::ChargingState chargingState);
-// void chargerTypeChanged(QSystemBatteryInfo::ChargerType chargerType);
-// void nominalCapacityChanged(int);
-// void remainingCapacityPercentChanged(int);
-// void remainingCapacityChanged(int);
+ //signals
+ void batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batteryStatus);
-// void currentFlowChanged(int);
-// void cumulativeCurrentFlowChanged(int);
-// void remainingCapacityBarsChanged(int);
-// void remainingChargingTimeChanged(int);
+ void chargingStateChanged(QSystemBatteryInfo::ChargingState chargingState);
+ void chargerTypeChanged(QSystemBatteryInfo::ChargerType chargerType);
-// ChangeBatteryThread *changeBatteryThread;
+ void nominalCapacityChanged(int);
+ void remainingCapacityPercentChanged(int);
+ void remainingCapacityChanged(int);
+
+ void currentFlowChanged(int);
+// void remainingCapacityBarsChanged(int);
+// void remainingChargingTimeChanged(int);
+#endif
+
+private:
+
+#ifdef TESTR
+ QSystemBatteryInfo::BatteryStatus currentBatStatus;
+ QSystemBatteryInfo::ChargingState curChargeState;
+ QSystemBatteryInfo::ChargerType curChargeType;
+
+ int currentBatLevelPercent;
+ int currentVoltage;
+ int dischargeRate;
+ int capacity;
+ int timeToFull;
+ int remainingEnergy;
+ int remainingCapacity;
+// int capBars;
+#endif
};
tst_QSystemBatteryInfo::tst_QSystemBatteryInfo()
{
- // changeBatteryThread = new ChangeBatteryThread();
}
tst_QSystemBatteryInfo::~tst_QSystemBatteryInfo()
{
- //delete changeBatteryThread, changeBatteryThread = 0;
}
/*
SystemInfoConnection si;
@@ -229,7 +284,6 @@ void tst_QSystemBatteryInfo::tst_nominalCapacity()
QVERIFY(nom == -1);
} else {
QVERIFY(nom != -1);
-
}
}
@@ -337,135 +391,279 @@ void tst_QSystemBatteryInfo::tst_energyMeasurementUnit()
}
}
-////signal tests
-//void tst_QSystemBatteryInfo::tst_batteryLevelChanged()
-//{
-// QSystemBatteryInfo bi;
+#ifdef TESTR
+//signal tests
+void tst_QSystemBatteryInfo::tst_batteryStatusChanged_data()
+{
+ QTest::addColumn<QSystemBatteryInfo::BatteryStatus>("batterystatus");
-//}
+ QTest::newRow("BatteryUnknown") << QSystemBatteryInfo::BatteryUnknown;
+ QTest::newRow("BatteryEmpty") << QSystemBatteryInfo::BatteryEmpty;
+ QTest::newRow("BatteryCritical") << QSystemBatteryInfo::BatteryCritical;
+ QTest::newRow("BatteryVeryLow") << QSystemBatteryInfo::BatteryVeryLow;
-//void tst_QSystemBatteryInfo::tst_batteryStatusChanged()
-//{
-// QSystemBatteryInfo bi;
+ QTest::newRow("BatteryLow") << QSystemBatteryInfo::BatteryLow;
+ QTest::newRow("BatteryOk") << QSystemBatteryInfo::BatteryOk;
+ QTest::newRow("BatteryFull") << QSystemBatteryInfo::BatteryFull;
+}
-//}
+void tst_QSystemBatteryInfo::tst_batteryStatusChanged()
+{
+ QSystemBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//void tst_QSystemBatteryInfo::tst_chargingStateChanged()
-//{
-// QSystemBatteryInfo bi;
+ connect(&bi,SIGNAL(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)),
+ this,SLOT(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)));
-//}
+ QFETCH(QSystemBatteryInfo::BatteryStatus, batterystatus);
-//void tst_QSystemBatteryInfo::tst_chargerTypeChanged()
-//{
-// QSystemBatteryInfo bi;
+ changeBatThread->currentBatStatus = currentBatStatus = batterystatus;
+ changeBatThread->start();
-//}
+ QSignalSpy errorSpy(&bi, SIGNAL(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)), 10 * 1000));
-//void tst_QSystemBatteryInfo::tst_nominalCapacityChanged()
-//{
-// QSystemBatteryInfo bi;
+ QVERIFY(errorSpy.count() == 1);
+}
-//}
+void tst_QSystemBatteryInfo::tst_chargingStateChanged_data()
+{
+ QTest::addColumn<QSystemBatteryInfo::ChargingState>("chargingstate");
-//void tst_QSystemBatteryInfo::tst_remainingCapacityPercentChanged()
-//{
-// QSystemBatteryInfo bi;
+ QTest::newRow("ChargingError") << QSystemBatteryInfo::ChargingError;
+ QTest::newRow("NotCharging") << QSystemBatteryInfo::NotCharging;
+ QTest::newRow("Charging") << QSystemBatteryInfo::Charging;
+}
-//}
+void tst_QSystemBatteryInfo::tst_chargingStateChanged()
+{
+ QSystemBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//void tst_QSystemBatteryInfo::tst_remainingCapacityChanged()
-//{
-// QSystemBatteryInfo bi;
+ connect(&bi,SIGNAL(chargingStateChanged(QSystemBatteryInfo::ChargingState)),
+ this,SLOT(chargingStateChanged(QSystemBatteryInfo::ChargingState)));
-//}
+ QFETCH(QSystemBatteryInfo::ChargingState, chargingstate);
-//void tst_QSystemBatteryInfo::tst_voltageChanged()
-//{
-// QSystemBatteryInfo bi;
+ changeBatThread->curChargeState = curChargeState = chargingstate;
+ changeBatThread->start();
-//}
+ QSignalSpy errorSpy(&bi, SIGNAL(chargingStateChanged(QSystemBatteryInfo::ChargingState)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(chargingStateChanged(QSystemBatteryInfo::ChargingState)), 10 * 1000));
-//void tst_QSystemBatteryInfo::tst_currentFlowChanged()
-//{
-// QSystemBatteryInfo bi;
+ QVERIFY(errorSpy.count() == 1);
+}
-//}
+void tst_QSystemBatteryInfo::tst_chargerTypeChanged_data()
+{
+ QTest::addColumn<QSystemBatteryInfo::ChargerType>("chargertype");
-//void tst_QSystemBatteryInfo::tst_cumulativeCurrentFlowChanged()
-//{
-// QSystemBatteryInfo bi;
+ QTest::newRow("UnknownCharger") << QSystemBatteryInfo::UnknownCharger;
+ QTest::newRow("NoCharger") << QSystemBatteryInfo::NoCharger;
+ QTest::newRow("WallCharger") << QSystemBatteryInfo::WallCharger;
-//}
+ QTest::newRow("USBCharger") << QSystemBatteryInfo::USBCharger;
+ QTest::newRow("USB_500mACharger") << QSystemBatteryInfo::USB_500mACharger;
+ QTest::newRow("USB_100mACharger") << QSystemBatteryInfo::USB_100mACharger;
-//void tst_QSystemBatteryInfo::tst_remainingCapacityBarsChanged()
-//{
-// QSystemBatteryInfo bi;
+ QTest::newRow("VariableCurrentCharger") << QSystemBatteryInfo::VariableCurrentCharger;
+}
-//}
+void tst_QSystemBatteryInfo::tst_chargerTypeChanged()
+{
+ QSystemBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//void tst_QSystemBatteryInfo::tst_remainingChargingTimeChanged()
-//{
-// QSystemBatteryInfo bi;
+ connect(&bi,SIGNAL(chargerTypeChanged(QSystemBatteryInfo::ChargerType)),
+ this,SLOT(chargerTypeChanged(QSystemBatteryInfo::ChargerType)));
-//}
+ QFETCH(QSystemBatteryInfo::ChargerType, chargertype);
-////signals
-//void tst_QSystemBatteryInfo::batteryLevelChanged(int level)
-//{
+ changeBatThread->curChargeType = curChargeType = chargertype;
+ changeBatThread->start();
-//}
+ QSignalSpy errorSpy(&bi, SIGNAL(chargerTypeChanged(QSystemBatteryInfo::ChargerType)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(chargerTypeChanged(QSystemBatteryInfo::ChargerType)), 10 * 1000));
-//void tst_QSystemBatteryInfo::batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batteryStatus)
-//{
+ QVERIFY(errorSpy.count() == 1);
+}
-//}
+void tst_QSystemBatteryInfo::tst_nominalCapacityChanged_data()
+{
+ QTest::addColumn<int>("intdata");
-//void tst_QSystemBatteryInfo::chargingStateChanged(QSystemBatteryInfo::ChargingState chargingState)
-//{
+ QTest::newRow("1") << 1;
+ QTest::newRow("2") << 1234;
+ QTest::newRow("3") << 4321;
+ QTest::newRow("4") << 9990;
+ QTest::newRow("5") << -1;
+}
-//}
+void tst_QSystemBatteryInfo::tst_nominalCapacityChanged()
+{
+ QSystemBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//void tst_QSystemBatteryInfo::chargerTypeChanged(QSystemBatteryInfo::ChargerType chargerType)
-//{
+ connect(&bi,SIGNAL(nominalCapacityChanged(int)),
+ this,SLOT(nominalCapacityChanged(int)));
-//}
+ QFETCH(int, intdata);
-//void tst_QSystemBatteryInfo::nominalCapacityChanged(int)
-//{
+ changeBatThread->capacity = capacity = intdata;
+ changeBatThread->start();
-//}
+ QSignalSpy errorSpy(&bi, SIGNAL(nominalCapacityChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(nominalCapacityChanged(int)), 10 * 1000));
-//void tst_QSystemBatteryInfo::remainingCapacityPercentChanged(int)
-//{
+ QVERIFY(errorSpy.count() == 1);
+}
-//}
+void tst_QSystemBatteryInfo::tst_remainingCapacityPercentChanged_data()
+{
+ QTest::addColumn<int>("batPercent");
-//void tst_QSystemBatteryInfo::remainingCapacityChanged(int)
-//{
+ QTest::newRow("1") << 1;
+ QTest::newRow("2") << 3;
+ QTest::newRow("3") << 5;
+ QTest::newRow("4") << 10;
+ QTest::newRow("5") << 12;
+ QTest::newRow("6") << 40;
-//}
+ QTest::newRow("4") << 41;
+ QTest::newRow("5") << 98;
+ QTest::newRow("6") << 99;
+ QTest::newRow("7") << 100;
-//void tst_QSystemBatteryInfo::currentFlowChanged(int)
-//{
+}
+void tst_QSystemBatteryInfo::tst_remainingCapacityPercentChanged()
+{
+ QSystemBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
-//}
+ connect(&bi,SIGNAL(remainingCapacityPercentChanged(int)),
+ this,SLOT(remainingCapacityPercentChanged(int)));
-//void tst_QSystemBatteryInfo::cumulativeCurrentFlowChanged(int)
-//{
+ QFETCH(int, batPercent);
-//}
+ changeBatThread->currentBatLevelPercent = currentBatLevelPercent = batPercent;
+ changeBatThread->start();
+
+ QSignalSpy errorSpy(&bi, SIGNAL(remainingCapacityPercentChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(remainingCapacityPercentChanged(int)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+}
+
+void tst_QSystemBatteryInfo::tst_remainingCapacityChanged_data()
+{
+ tst_nominalCapacityChanged_data();
+}
+
+void tst_QSystemBatteryInfo::tst_remainingCapacityChanged()
+{
+ QSystemBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
+
+ connect(&bi,SIGNAL(remainingCapacityChanged(int)),
+ this,SLOT(remainingCapacityChanged(int)));
+
+ QFETCH(int, intdata);
+
+ changeBatThread->remainingCapacity = remainingCapacity = intdata;
+ changeBatThread->start();
+
+ QSignalSpy errorSpy(&bi, SIGNAL(remainingCapacityChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(remainingCapacityChanged(int)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+}
+
+void tst_QSystemBatteryInfo::tst_currentFlowChanged_data()
+{
+ tst_nominalCapacityChanged_data();
+}
+
+void tst_QSystemBatteryInfo::tst_currentFlowChanged()
+{
+ QSystemBatteryInfo bi;
+ ChangeBatteryThread *changeBatThread = new ChangeBatteryThread();
+
+ connect(&bi,SIGNAL(currentFlowChanged(int)),
+ this,SLOT(currentFlowChanged(int)));
+
+ QFETCH(int, intdata);
-//void tst_QSystemBatteryInfo::remainingCapacityBarsChanged(int)
+ changeBatThread->dischargeRate = dischargeRate = intdata;
+ changeBatThread->start();
+
+ QSignalSpy errorSpy(&bi, SIGNAL(currentFlowChanged(int)));
+ QVERIFY(::waitForSignal(&bi, SIGNAL(currentFlowChanged(int)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+}
+
+void tst_QSystemBatteryInfo::tst_remainingCapacityBarsChanged()
+{
+ // QSystemBatteryInfo bi;
+
+}
+
+void tst_QSystemBatteryInfo::tst_remainingChargingTimeChanged()
+{
+ // QSystemBatteryInfo bi;
+
+}
+
+//signals
+void tst_QSystemBatteryInfo::batteryStatusChanged(QSystemBatteryInfo::BatteryStatus batStatus)
+{
+ QVERIFY(batStatus == currentBatStatus);
+}
+
+void tst_QSystemBatteryInfo::chargingStateChanged(QSystemBatteryInfo::ChargingState chargState)
+{
+ QVERIFY(chargState == curChargeState);
+
+}
+
+void tst_QSystemBatteryInfo::chargerTypeChanged(QSystemBatteryInfo::ChargerType chargType)
+{
+ QVERIFY(chargType == curChargeType);
+}
+
+void tst_QSystemBatteryInfo::nominalCapacityChanged(int cap)
+{
+ QVERIFY(cap == capacity);
+}
+
+void tst_QSystemBatteryInfo::remainingCapacityPercentChanged(int cap)
+{
+ QVERIFY(cap == currentBatLevelPercent);
+}
+
+void tst_QSystemBatteryInfo::remainingCapacityChanged(int cap)
+{
+ QVERIFY(cap == remainingCapacity);
+}
+
+void tst_QSystemBatteryInfo::currentFlowChanged(int flow)
+{
+ QVERIFY(flow == dischargeRate);
+}
+
+//void tst_QSystemBatteryInfo::remainingCapacityBarsChanged(int cap)
//{
+// QVERIFY(cap == currentBatStatus);
//}
-//void tst_QSystemBatteryInfo::remainingChargingTimeChanged(int)
+//void tst_QSystemBatteryInfo::remainingChargingTimeChanged(int time)
//{
+// QVERIFY(time == currentBatStatus);
//}
-
+#endif
QTEST_MAIN(tst_QSystemBatteryInfo)
#include "tst_qsystembatteryinfo.moc"
diff --git a/tests/auto/qsystemdeviceinfo/qsystemdeviceinfo.pro b/tests/auto/qsystemdeviceinfo/qsystemdeviceinfo.pro
index 6e77ae0af1..f534943fe9 100644
--- a/tests/auto/qsystemdeviceinfo/qsystemdeviceinfo.pro
+++ b/tests/auto/qsystemdeviceinfo/qsystemdeviceinfo.pro
@@ -4,7 +4,6 @@ QT = core network
INCLUDEPATH += ../../../src/systeminfo
SOURCES += tst_qsystemdeviceinfo.cpp
-
include(../../../common.pri)
CONFIG += mobility
MOBILITY = systeminfo
@@ -12,3 +11,7 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+message($$test_use_sim)
+contains(test_use_sim, yes) {
+ DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qsystemdeviceinfo/tst_qsystemdeviceinfo.cpp b/tests/auto/qsystemdeviceinfo/tst_qsystemdeviceinfo.cpp
index b3947ffcc7..201d3de119 100644
--- a/tests/auto/qsystemdeviceinfo/tst_qsystemdeviceinfo.cpp
+++ b/tests/auto/qsystemdeviceinfo/tst_qsystemdeviceinfo.cpp
@@ -45,6 +45,10 @@
#include "qsysteminfo.h"
#include "../qsysteminfotestcommon.h"
+#ifdef TESTR
+#include "qsysteminfo_simulator_p.h"
+#endif
+
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QSystemDeviceInfo::BatteryStatus);
Q_DECLARE_METATYPE(QSystemDeviceInfo::PowerState);
@@ -53,6 +57,71 @@ Q_DECLARE_METATYPE(QSystemDeviceInfo::Profile);
Q_DECLARE_METATYPE(QSystemDeviceInfo::SimStatus);
Q_DECLARE_METATYPE(QSystemDeviceInfo::KeyboardTypeFlags);
+Q_DECLARE_METATYPE(QSystemDeviceInfo::LockTypeFlags);
+
+/**
+ * Starts an event loop that runs until the given signal is received.
+ * Optionally the event loop can return earlier on a timeout.
+ *
+ * \return \p true if the requested signal was received
+ * \p false on timeout
+ */
+
+#ifdef TESTR
+
+static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
+{
+ QEventLoop loop;
+ QObject::connect(obj, signal, &loop, SLOT(quit()));
+ QTimer timer;
+ QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
+ if (timeout > 0) {
+ QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.setSingleShot(true);
+ timer.start(timeout);
+ }
+ loop.exec();
+ return timeoutSpy.isEmpty();
+}
+
+class ChangeDeviceThread : public QThread
+{
+public:
+ void run()
+ {
+ QMutexLocker locker(&mutex);
+ SystemInfoConnection si;
+ QSystemDeviceInfoPrivate *d = si.deviceInfoPrivate();
+ d->setBatteryLevel(batteryLevel);
+ d->setCurrentPowerState(powerState);
+ d->setCurrentProfile(profile);
+ d->setBluetoothPower(btPower);
+ d->setWirelessKeyboardConnected(keyboardConnected);
+ d->setKeyboardFlippedOpen(flip);
+ d->setDeviceLocked(locked);
+ d->setTypeOfLock(lockType);
+
+ d->setMessageRingtoneVolume(messageRingtoneVolume);
+ d->setVoiceRingtoneVolume(voiceRingtoneVolume);
+ d->setVibrationActive(vibrationActive);
+
+ this->exit();
+ }
+
+ QMutex mutex;
+ QSystemDeviceInfo::PowerState powerState;
+ QSystemDeviceInfo::Profile profile;
+ int batteryLevel;
+ bool btPower;
+ bool keyboardConnected;
+ bool flip;
+ bool locked;
+ QSystemDeviceInfo::LockTypeFlags lockType;
+ int messageRingtoneVolume;
+ int voiceRingtoneVolume;
+ int vibrationActive;
+};
+#endif
class tst_QSystemDeviceInfo : public QObject
{
@@ -86,20 +155,62 @@ private slots:
void tst_keyboardType();
void tst_isWirelessKeyboardConnected();
- void tst_isKeyboardFlipOpen();
+ void tst_isKeyboardFlippedOpen();
void tst_keypadLightOn();
- void tst_uniqueID();
+ void tst_uniqueDeviceID();
void tst_lockStatus();
void tst_activeProfileDetails();
+
+#ifdef TESTR
+ void tst_batteryLevelChanged_data();
+ void tst_batteryLevelChanged();
+
+ void tst_batteryStatusChanged_data();
+ void tst_batteryStatusChanged();
+
+ void tst_powerStateChanged_data();
+ void tst_powerStateChanged();
+
+ void tst_currentProfileChanged_data();
+ void tst_currentProfileChanged();
+
+ void tst_bluetoothStateChanged();
+
+ void tst_wirelessKeyboardConnected();
+ void tst_keyboardFlipped();
+ void tst_deviceLocked();
+
+ void tst_lockTypeChanged_data();
+ void tst_lockTypeChanged();
+
+
+ void batteryLevelChanged(int level);
+ void batteryStatusChanged(QSystemDeviceInfo::BatteryStatus batteryStatus);
+ void powerStateChanged(QSystemDeviceInfo::PowerState powerState);
+ void currentProfileChanged(QSystemDeviceInfo::Profile currentProfile);
+ void bluetoothStateChanged(bool on);
+
+ void wirelessKeyboardConnected(bool connected);
+ void keyboardFlipped(bool open);
+ void deviceLocked(bool isLocked);
+ void lockStatusChanged(QSystemDeviceInfo::LockTypeFlags);
+#endif
+
+private:
+
+#ifdef TESTR
+ int curBatLevel;
+ QSystemDeviceInfo::PowerState curPowerState;
+ QSystemDeviceInfo::Profile curProfile;
+ bool btpower;
+ bool keyboardConnect;
+ bool keyFLip;
+ bool deviceLock;
+ QSystemDeviceInfo::LockTypeFlags lockType;
+ bool lockTypeOn;
+#endif
};
-/*
-signal todo:
-// void profileChanged(QSystemDeviceInfo::Profile);
- void batteryLevelChanged(QSystemDeviceInfo::BatteryLevel);
- void batteryLevelCritical(qint32);
- void powerStateChanged(QSystemDeviceInfo::PowerState);
- */
void tst_QSystemDeviceInfo::initTestCase()
{
@@ -128,7 +239,9 @@ void tst_QSystemDeviceInfo::tst_imei()
QSystemDeviceInfo di;
QString imeiStr =di.imei();
QVERIFY(!imeiStr.isEmpty() || imeiStr.isEmpty());
-
+#ifdef TESTR
+ QVERIFY(imeiStr == "12-345678-901234-5");
+#endif
}
void tst_QSystemDeviceInfo::tst_imsi()
@@ -137,6 +250,9 @@ void tst_QSystemDeviceInfo::tst_imsi()
QString imsiStr = di.imsi();
QVERIFY(!imsiStr.isEmpty() || imsiStr.isEmpty());
+#ifdef TESTR
+ QVERIFY(imsiStr == "12345679012345");
+#endif
}
void tst_QSystemDeviceInfo::tst_manufacturer()
@@ -145,6 +261,9 @@ void tst_QSystemDeviceInfo::tst_manufacturer()
QString manu = di.manufacturer();
QVERIFY(!manu.isEmpty() || manu.isEmpty());
+#ifdef TESTR
+ QVERIFY(manu == "simulator manufacturer");
+#endif
}
void tst_QSystemDeviceInfo::tst_model()
@@ -153,6 +272,9 @@ void tst_QSystemDeviceInfo::tst_model()
QString model = di.model();
QVERIFY(!model.isEmpty() || model.isEmpty());
+#ifdef TESTR
+ QVERIFY(model == "simulator model");
+#endif
}
void tst_QSystemDeviceInfo::tst_productName()
@@ -161,20 +283,18 @@ void tst_QSystemDeviceInfo::tst_productName()
QString product = di.productName();
QVERIFY(!product.isEmpty() | product.isEmpty());
+#ifdef TESTR
+ QVERIFY(product == "simulator product name");
+#endif
}
void tst_QSystemDeviceInfo::tst_batteryLevel()
{
QSystemDeviceInfo di;
QVERIFY(di.batteryLevel() > -1);
-
-// until we simulate this, or wait the signalspy to olong, this will always fail
-// if(di.currentPowerState() == QSystemDeviceInfo::WallPowerChargingBattery) {
-// QSignalSpy batSpy(&di, SIGNAL(batteryLevelChanged(int)));
-// QVERIFY(!batSpy.isEmpty());
-// int level = batSpy.first().at(0).toInt();
-// QVERIFY( level > -1 || level < 101);
-// }
+#ifdef TESTR
+ QVERIFY(di.batteryLevel() == 84);
+#endif
}
void tst_QSystemDeviceInfo::tst_batteryStatus()
@@ -190,18 +310,6 @@ void tst_QSystemDeviceInfo::tst_batteryStatus()
} else if(level > 40) {
QVERIFY(di.batteryStatus() == QSystemDeviceInfo::BatteryNormal);
}
-
- // until we simulate this, or wait the signalspy to olong, this will always fail
-// if(di.currentPowerState() == QSystemDeviceInfo::WallPowerChargingBattery) {
-// QSignalSpy batSpy(&di, SIGNAL(batteryStatusChanged(QSystemDeviceInfo::BatteryStatus)));
-// QVERIFY(!batSpy.isEmpty());
-// QSystemDeviceInfo::BatteryStatus status = qvariant_cast<QSystemDeviceInfo::BatteryStatus>(batSpy.first().at(0));
-// QVERIFY( status == QSystemDeviceInfo::NoBatteryLevel
-// || status == QSystemDeviceInfo::BatteryCritical
-// || status == QSystemDeviceInfo::BatteryVeryLow
-// || status == QSystemDeviceInfo::BatteryLow
-// || status == QSystemDeviceInfo::BatteryNormal);
-// }
}
void tst_QSystemDeviceInfo::tst_currentProfile()
@@ -216,6 +324,9 @@ void tst_QSystemDeviceInfo::tst_currentProfile()
|| profile == QSystemDeviceInfo::OfflineProfile
|| profile == QSystemDeviceInfo::PowersaveProfile
|| profile == QSystemDeviceInfo::CustomProfile);
+#ifdef TESTR
+ QVERIFY(di.currentProfile() == QSystemDeviceInfo::NormalProfile);
+#endif
}
void tst_QSystemDeviceInfo::tst_simStatus()
@@ -223,7 +334,9 @@ void tst_QSystemDeviceInfo::tst_simStatus()
QSystemDeviceInfo di;
bool simStat = di.simStatus();
QVERIFY(simStat == true || simStat == false);
-
+#ifdef TESTR
+ QVERIFY(di.simStatus() == QSystemDeviceInfo::SimNotAvailable);
+#endif
}
void tst_QSystemDeviceInfo::tst_isDeviceLocked()
@@ -231,6 +344,9 @@ void tst_QSystemDeviceInfo::tst_isDeviceLocked()
QSystemDeviceInfo di;
bool devLock = di.isDeviceLocked();
QVERIFY(devLock == true || devLock == false);
+#ifdef TESTR
+ QVERIFY(!di.isDeviceLocked());
+#endif
}
void tst_QSystemDeviceInfo::tst_currentPowerState()
@@ -241,6 +357,9 @@ void tst_QSystemDeviceInfo::tst_currentPowerState()
|| state == QSystemDeviceInfo::BatteryPower
|| state == QSystemDeviceInfo::WallPower
|| state == QSystemDeviceInfo::WallPowerChargingBattery);
+#ifdef TESTR
+ QVERIFY(di.currentPowerState() == QSystemDeviceInfo::WallPower);
+#endif
}
void tst_QSystemDeviceInfo::tst_currentThermalState()
@@ -257,15 +376,18 @@ void tst_QSystemDeviceInfo::tst_currentThermalState()
void tst_QSystemDeviceInfo::tst_currentBluetoothPowerState()
{
QSystemDeviceInfo di;
- bool state = di.currentPowerState();
+ bool state = di.currentBluetoothPowerState();
QVERIFY(state || !state);
+#ifdef TESTR
+ QVERIFY(!di.currentBluetoothPowerState());
+#endif
}
void tst_QSystemDeviceInfo::tst_keyboardType()
{
QSystemDeviceInfo di;
- QSystemDeviceInfo::KeyboardTypeFlags flags = di.keyboardTypes();
+ QSystemDeviceInfo::KeyboardTypeFlags flags = di.keyboardTypes();
QVERIFY( (flags && QSystemDeviceInfo::UnknownKeyboard == QSystemDeviceInfo::UnknownKeyboard)
|| (flags && QSystemDeviceInfo::SoftwareKeyboard == QSystemDeviceInfo::SoftwareKeyboard)
@@ -283,11 +405,11 @@ void tst_QSystemDeviceInfo::tst_keyboardType()
void tst_QSystemDeviceInfo::tst_isWirelessKeyboardConnected()
{
QSystemDeviceInfo di;
- bool on = di.isWirelessKeyboardConnected();
- QVERIFY(on || !on);
+ bool on = di.isWirelessKeyboardConnected();
+ QVERIFY(on || !on);
}
-void tst_QSystemDeviceInfo::tst_isKeyboardFlipOpen()
+void tst_QSystemDeviceInfo::tst_isKeyboardFlippedOpen()
{
QSystemDeviceInfo di;
bool on = di.isKeyboardFlippedOpen();
@@ -305,7 +427,7 @@ void tst_QSystemDeviceInfo::tst_keypadLightOn()
}
-void tst_QSystemDeviceInfo::tst_uniqueID()
+void tst_QSystemDeviceInfo::tst_uniqueDeviceID()
{
QSystemDeviceInfo di;
QByteArray id = di.uniqueDeviceID();
@@ -317,12 +439,330 @@ void tst_QSystemDeviceInfo::tst_lockStatus()
QSystemDeviceInfo di;
QSystemDeviceInfo::LockTypeFlags lock = di.lockStatus();
if (di.isDeviceLocked()) {
- QVERIFY((lock & QSystemDeviceInfo::PinLocked)
- || (lock & QSystemDeviceInfo::TouchAndKeyboardLocked)
- || (lock & QSystemDeviceInfo::UnknownLock));
+ QVERIFY((lock == QSystemDeviceInfo::PinLocked)
+ || (lock == QSystemDeviceInfo::TouchAndKeyboardLocked));
+ } else {
+ QVERIFY(lock == QSystemDeviceInfo::UnknownLock);
+ }
+}
+
+#ifdef TESTR
+void tst_QSystemDeviceInfo::tst_batteryLevelChanged_data()
+{
+ QTest::addColumn<int>("batLevel");
+
+ QTest::newRow("1c") << 1;//critical
+ QTest::newRow("4c") << 4;//very low
+ QTest::newRow("11c") << 11;//low
+ QTest::newRow("41c") << 41;//normal
+ QTest::newRow("40d") << 40;//low
+ QTest::newRow("10d") << 10;//very low
+ QTest::newRow("3d") << 3;//critical
+}
+
+void tst_QSystemDeviceInfo::tst_batteryLevelChanged()
+{
+ QSystemDeviceInfo di;
+ QFETCH(int, batLevel);
+
+ connect(&di,SIGNAL(batteryLevelChanged(int)),
+ this,SLOT(batteryLevelChanged(int)));
+
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+ changeDevThread->batteryLevel = batLevel;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(batteryLevelChanged(int)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(batteryLevelChanged(int)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+ curBatLevel = batLevel;
+}
+
+void tst_QSystemDeviceInfo::tst_batteryStatusChanged_data()
+{
+ SystemInfoConnection si;
+ QSystemDeviceInfoPrivate *d = si.deviceInfoPrivate();
+ d->setInitialData();
+ tst_batteryLevelChanged_data();
+}
+
+void tst_QSystemDeviceInfo::tst_batteryStatusChanged()
+{
+ QSystemDeviceInfo di;
+
+ SystemInfoConnection si;
+
+ QFETCH(int, batLevel);
+
+ connect(&di,SIGNAL(batteryStatusChanged(QSystemDeviceInfo::BatteryStatus)),
+ this,SLOT(batteryStatusChanged(QSystemDeviceInfo::BatteryStatus)));
+
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+ changeDevThread->batteryLevel = batLevel;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(batteryStatusChanged(QSystemDeviceInfo::BatteryStatus)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(batteryStatusChanged(QSystemDeviceInfo::BatteryStatus)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+ curBatLevel = batLevel;
+}
+
+void tst_QSystemDeviceInfo::tst_powerStateChanged_data()
+{
+ QTest::addColumn<QSystemDeviceInfo::PowerState>("powerstate");
+
+ QTest::newRow("BatteryPower") << QSystemDeviceInfo::BatteryPower;
+ QTest::newRow("WallPower") << QSystemDeviceInfo::WallPower;
+ QTest::newRow("WallPowerChargingBattery") << QSystemDeviceInfo::WallPowerChargingBattery;
+ QTest::newRow("UnknownPower") << QSystemDeviceInfo::UnknownPower;
+}
+
+void tst_QSystemDeviceInfo::tst_powerStateChanged()
+{
+ QSystemDeviceInfo di;
+
+ SystemInfoConnection si;
+
+ QFETCH(QSystemDeviceInfo::PowerState, powerstate);
+
+ connect(&di,SIGNAL(powerStateChanged(QSystemDeviceInfo::PowerState)),
+ this,SLOT(powerStateChanged(QSystemDeviceInfo::PowerState)));
+
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+ changeDevThread->powerState = curPowerState = powerstate;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(powerStateChanged(QSystemDeviceInfo::PowerState)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(powerStateChanged(QSystemDeviceInfo::PowerState)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+}
+
+void tst_QSystemDeviceInfo::tst_currentProfileChanged_data()
+{
+ QTest::addColumn<QSystemDeviceInfo::Profile>("profile");
+
+ QTest::newRow("SilentProfile") << QSystemDeviceInfo::SilentProfile;
+ QTest::newRow("NormalProfile") << QSystemDeviceInfo::NormalProfile;
+ QTest::newRow("LoudProfile") << QSystemDeviceInfo::LoudProfile;
+ QTest::newRow("VibProfile") << QSystemDeviceInfo::VibProfile;
+ QTest::newRow("OfflineProfile") << QSystemDeviceInfo::OfflineProfile;
+ QTest::newRow("PowersaveProfile") << QSystemDeviceInfo::PowersaveProfile;
+ QTest::newRow("CustomProfile") << QSystemDeviceInfo::CustomProfile;
+ QTest::newRow("UnknownProfile") << QSystemDeviceInfo::UnknownProfile;
+
+}
+
+void tst_QSystemDeviceInfo::tst_currentProfileChanged()
+{
+ QSystemDeviceInfo di;
+
+ SystemInfoConnection si;
+ QFETCH(QSystemDeviceInfo::Profile, profile);
+
+ connect(&di,SIGNAL(currentProfileChanged(QSystemDeviceInfo::Profile)),
+ this,SLOT(currentProfileChanged(QSystemDeviceInfo::Profile)));
+
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+ changeDevThread->profile = curProfile = profile;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(currentProfileChanged(QSystemDeviceInfo::Profile)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(currentProfileChanged(QSystemDeviceInfo::Profile)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+}
+
+void tst_QSystemDeviceInfo::tst_bluetoothStateChanged()
+{
+ QSystemDeviceInfo di;
+
+ SystemInfoConnection si;
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+
+ connect(&di,SIGNAL(bluetoothStateChanged(bool)),
+ this,SLOT(bluetoothStateChanged(bool)));
+
+ changeDevThread->btPower = btpower = true;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(bluetoothStateChanged(bool)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(bluetoothStateChanged(bool)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+ changeDevThread->btPower = btpower = false;
+ changeDevThread->start();
+
+}
+
+
+void tst_QSystemDeviceInfo::tst_wirelessKeyboardConnected()
+{
+ QSystemDeviceInfo di;
+
+ SystemInfoConnection si;
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+
+ connect(&di,SIGNAL(wirelessKeyboardConnected(bool)),
+ this,SLOT(wirelessKeyboardConnected(bool)));
+
+ changeDevThread->keyboardConnected = keyboardConnect = true;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(wirelessKeyboardConnected(bool)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(wirelessKeyboardConnected(bool)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+ changeDevThread->keyboardConnected = keyboardConnect = false;
+ changeDevThread->start();
+
+}
+
+void tst_QSystemDeviceInfo::tst_keyboardFlipped()
+{
+ QSystemDeviceInfo di;
+
+ SystemInfoConnection si;
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+
+ connect(&di,SIGNAL(keyboardFlipped(bool)),
+ this,SLOT(keyboardFlipped(bool)));
+
+ changeDevThread->flip = keyFLip = true;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(keyboardFlipped(bool)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(keyboardFlipped(bool)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+ changeDevThread->flip = keyFLip = false;
+ changeDevThread->start();
+
+
+}
+
+void tst_QSystemDeviceInfo::tst_deviceLocked()
+{
+ QSystemDeviceInfo di;
+
+ SystemInfoConnection si;
+ ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+
+ connect(&di,SIGNAL(deviceLocked(bool)),
+ this,SLOT(deviceLocked(bool)));
+
+ changeDevThread->locked = deviceLock = true;
+ changeDevThread->start();
+
+ QSignalSpy errorSpy(&di, SIGNAL(deviceLocked(bool)));
+ QVERIFY(::waitForSignal(&di, SIGNAL(deviceLocked(bool)), 10 * 1000));
+
+ QVERIFY(errorSpy.count() == 1);
+
+ changeDevThread->locked = deviceLock = false;
+ changeDevThread->start();
+
+
+}
+
+void tst_QSystemDeviceInfo::tst_lockTypeChanged_data()
+{
+// QTest::addColumn<QSystemDeviceInfo::LockTypeFlags>("locktype");
+
+// QTest::newRow("PinLocked") << QSystemDeviceInfo::PinLocked;
+// QTest::newRow("TouchAndKeyboardLocked") << QSystemDeviceInfo::TouchAndKeyboardLocked;
+// QTest::newRow("UnknownLock") << QSystemDeviceInfo::UnknownLock;
+}
+
+void tst_QSystemDeviceInfo::tst_lockTypeChanged()
+{
+// QSystemDeviceInfo di;
+
+// SystemInfoConnection si;
+// QFETCH(QSystemDeviceInfo::LockTypeFlags, locktype);
+
+// connect(&di,SIGNAL(lockStatusChanged(QSystemDeviceInfo::LockTypeFlags)),
+// this,SLOT(lockStatusChanged(QSystemDeviceInfo::LockTypeFlags)));
+
+// ChangeDeviceThread *changeDevThread = new ChangeDeviceThread();
+// changeDevThread->lockType = lockType = locktype;
+// changeDevThread->start();
+
+// QSignalSpy errorSpy(&di, SIGNAL(lockStatusChanged(QSystemDeviceInfo::LockTypeFlags)));
+// QVERIFY(::waitForSignal(&di, SIGNAL(lockStatusChanged(QSystemDeviceInfo::LockTypeFlags)), 10 * 1000));
+
+// QVERIFY(errorSpy.count() == 1);
+
+// changeDevThread->start();
+}
+
+void tst_QSystemDeviceInfo::batteryLevelChanged(int level)
+{
+ QVERIFY(level != curBatLevel);
+}
+
+void tst_QSystemDeviceInfo::batteryStatusChanged(QSystemDeviceInfo::BatteryStatus batteryStatus)
+{
+ QSystemDeviceInfo di;
+ int level = di.batteryLevel();
+ if (level == -1)
+ QVERIFY(batteryStatus ==QSystemDeviceInfo::NoBatteryLevel);
+ if (level < 4) {
+ QVERIFY(batteryStatus == QSystemDeviceInfo::BatteryCritical);
+ } else if (level < 11) {
+ QVERIFY(batteryStatus == QSystemDeviceInfo::BatteryVeryLow);
+ } else if (level < 41) {
+ QVERIFY(batteryStatus == QSystemDeviceInfo::BatteryLow);
+ } else if (level > 40) {
+ QVERIFY(batteryStatus == QSystemDeviceInfo::BatteryNormal);
}
}
+void tst_QSystemDeviceInfo::powerStateChanged(QSystemDeviceInfo::PowerState powerState)
+{
+ QVERIFY(powerState == curPowerState);
+}
+
+void tst_QSystemDeviceInfo::currentProfileChanged(QSystemDeviceInfo::Profile currentProfile)
+{
+ QVERIFY(currentProfile == curProfile);
+}
+
+void tst_QSystemDeviceInfo::bluetoothStateChanged(bool on)
+{
+ QVERIFY(on == btpower);
+}
+
+void tst_QSystemDeviceInfo::wirelessKeyboardConnected(bool connected)
+{
+ QVERIFY(connected == keyboardConnect);
+}
+
+void tst_QSystemDeviceInfo::keyboardFlipped(bool open)
+{
+ QVERIFY(open == keyFLip);
+}
+
+void tst_QSystemDeviceInfo::deviceLocked(bool isLocked)
+{
+ QVERIFY(isLocked == deviceLock);
+}
+
+void tst_QSystemDeviceInfo::lockStatusChanged(QSystemDeviceInfo::LockTypeFlags type)
+{
+ QVERIFY(type == lockType);
+}
+
+#endif
+
void tst_QSystemDeviceInfo::tst_activeProfileDetails()
{
QSystemDeviceInfo di;
diff --git a/tests/auto/qsystemdisplayinfo/qsystemdisplayinfo.pro b/tests/auto/qsystemdisplayinfo/qsystemdisplayinfo.pro
index 4ddf7bf11c..c1fef89308 100644
--- a/tests/auto/qsystemdisplayinfo/qsystemdisplayinfo.pro
+++ b/tests/auto/qsystemdisplayinfo/qsystemdisplayinfo.pro
@@ -13,3 +13,6 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qsystemdisplayinfo/tst_qsystemdisplayinfo.cpp b/tests/auto/qsystemdisplayinfo/tst_qsystemdisplayinfo.cpp
index 2bde1604a3..4f318e0dd1 100644
--- a/tests/auto/qsystemdisplayinfo/tst_qsystemdisplayinfo.cpp
+++ b/tests/auto/qsystemdisplayinfo/tst_qsystemdisplayinfo.cpp
@@ -110,8 +110,8 @@ void tst_QSystemDisplayInfo::tst_orientation()
void tst_QSystemDisplayInfo::tst_contrast()
{
QSystemDisplayInfo di;
- QVERIFY(di.contrast(0) >= 0
- && di.contrast(0)< 1.0 );
+ QVERIFY((di.contrast(0) >= 0 && di.contrast(0)< 1.0)
+ || di.contrast(0) == -1);
// contrast levels are between 0 and 1.0
}
diff --git a/tests/auto/qsysteminfo/qsysteminfo.pro b/tests/auto/qsysteminfo/qsysteminfo.pro
index 7b888068af..e83a5a15fd 100644
--- a/tests/auto/qsysteminfo/qsysteminfo.pro
+++ b/tests/auto/qsysteminfo/qsysteminfo.pro
@@ -3,7 +3,6 @@ CONFIG+=testcase
SOURCES += tst_qsysteminfo.cpp
QT = core network
-
INCLUDEPATH += ../../../src/systeminfo
include(../../../common.pri)
@@ -13,3 +12,7 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+
+contains(test_use_sim, yes) {
+ DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qsysteminfo/tst_qsysteminfo.cpp b/tests/auto/qsysteminfo/tst_qsysteminfo.cpp
index 5637244c2e..a9828ff3ed 100644
--- a/tests/auto/qsysteminfo/tst_qsysteminfo.cpp
+++ b/tests/auto/qsysteminfo/tst_qsysteminfo.cpp
@@ -43,16 +43,68 @@
#include <QtTest/QtTest>
#include "qsysteminfo.h"
+#include "qsysteminfo_simulator_p.h"
#include <QDebug>
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QSystemInfo::Version);
Q_DECLARE_METATYPE(QSystemInfo::Feature);
+/**
+ * Starts an event loop that runs until the given signal is received.
+ * Optionally the event loop can return earlier on a timeout.
+ *
+ * \return \p true if the requested signal was received
+ * \p false on timeout
+ */
+#ifdef TESTR
+
+static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
+{
+ QEventLoop loop;
+ QObject::connect(obj, signal, &loop, SLOT(quit()));
+ QTimer timer;
+ QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
+ if (timeout > 0) {
+ QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.setSingleShot(true);
+ timer.start(timeout);
+ }
+ loop.exec();
+ return timeoutSpy.isEmpty();
+}
+
+//static void setLanguage(const QString & lang)
+//{
+// QSystemInfoPrivate *s = getSystemInfoPrivate();
+// s->setCurrentLanguage(lang);
+//}
+
+
+class ChangeLanguageThread : public QThread
+{
+public:
+ void run()
+ {
+ SystemInfoConnection si;
+ QSystemInfoPrivate *d = si.systeminfoPrivate();
+ d->setCurrentLanguage(lang);
+
+ }
+ QString lang;
+};
+#endif
+
class tst_QSystemInfo : public QObject
{
Q_OBJECT
+public:
+ tst_QSystemInfo();
+ virtual ~tst_QSystemInfo();
+
+ friend class QSystemInfo;
+
private slots:
void initTestCase();
@@ -69,8 +121,31 @@ private slots:
void tst_detailFeatures_data();
void tst_detailFeatures();
+#ifdef TESTR
+ void currentLanguageChanged();
+
+ void slotCurrentLanguageChanged(const QString &);
+#endif
+private:
+#ifdef TESTR
+ ChangeLanguageThread *changeLangThread;
+#endif
};
+tst_QSystemInfo::tst_QSystemInfo()
+{
+#ifdef TESTR
+ changeLangThread = new ChangeLanguageThread();
+#endif
+}
+
+tst_QSystemInfo::~tst_QSystemInfo()
+{
+#ifdef TESTR
+ delete changeLangThread, changeLangThread = 0;
+#endif
+}
+
void tst_QSystemInfo::initTestCase()
{
qRegisterMetaType<QSystemInfo::Version>("QSystemInfo::Version");
@@ -80,6 +155,11 @@ void tst_QSystemInfo::initTestCase()
void tst_QSystemInfo::tst_currentLanguage()
{
QSystemInfo si;
+#ifdef TESTR
+ SystemInfoConnection sic;
+ QSystemInfoPrivate *d = sic.systeminfoPrivate();
+ d->setInitialData();
+#endif
QVERIFY(!si.currentLanguage().isEmpty());
QCOMPARE(si.currentLanguage().length(), 2);
QVERIFY(si.currentLanguage() == si.currentLanguage().toLower());
@@ -89,6 +169,11 @@ void tst_QSystemInfo::tst_currentLanguage()
void tst_QSystemInfo::tst_availableLanguages()
{
QSystemInfo si;
+#ifdef TESTR
+ SystemInfoConnection sic;
+ QSystemInfoPrivate *d = sic.systeminfoPrivate();
+ d->setInitialData();
+#endif
QVERIFY(!si.availableLanguages().isEmpty());
QStringList available = si.availableLanguages();
foreach(QString lang, available) {
@@ -114,6 +199,11 @@ void tst_QSystemInfo::tst_versions()
QFETCH(QSystemInfo::Version, version);
QFETCH(QString, parameter);
QSystemInfo si;
+#ifdef TESTR
+ SystemInfoConnection sic;
+ QSystemInfoPrivate *d = sic.systeminfoPrivate();
+ d->setInitialData();
+#endif
QString vers = si.version(version, parameter);
QVERIFY(!vers.isEmpty()
|| vers.isEmpty());
@@ -123,6 +213,11 @@ void tst_QSystemInfo::tst_versions()
void tst_QSystemInfo::tst_countryCode()
{
QSystemInfo si;
+#ifdef TESTR
+ SystemInfoConnection sic;
+ QSystemInfoPrivate *d = sic.systeminfoPrivate();
+ d->setInitialData();
+#endif
QVERIFY(!si.currentCountryCode().isEmpty());
QCOMPARE(si.currentCountryCode().length(),2);
QVERIFY(si.currentCountryCode() == si.currentCountryCode().toUpper());
@@ -152,7 +247,11 @@ void tst_QSystemInfo::tst_hasFeatures()
{
QFETCH(QSystemInfo::Feature, feature);
QSystemInfo si;
- qWarning() << si.hasFeatureSupported(feature);
+#ifdef TESTR
+ SystemInfoConnection sic;
+ QSystemInfoPrivate *d = sic.systeminfoPrivate();
+ d->setInitialData();
+#endif
QVERIFY(si.hasFeatureSupported(feature) == false
|| si.hasFeatureSupported(feature) == true);
}
@@ -171,7 +270,27 @@ void tst_QSystemInfo::tst_detailFeatures()
// QVERIFY(!si.getDetailOfFeature(feature).isEmpty());
// }
}
+#ifdef TESTR
+void tst_QSystemInfo::currentLanguageChanged()
+{
+ QSystemInfo si;
+ connect(&si,SIGNAL(currentLanguageChanged(const QString &)),this,
+ SLOT(slotCurrentLanguageChanged(const QString &)));
+
+ changeLangThread->lang = "kl";
+ changeLangThread->start();
+ QSignalSpy errorSpy(&si, SIGNAL(currentLanguageChanged(const QString &)));
+ QVERIFY(::waitForSignal(&si, SIGNAL(currentLanguageChanged(const QString &)), 10 * 1000));
+ QVERIFY(errorSpy.count() == 1);
+}
+
+void tst_QSystemInfo::slotCurrentLanguageChanged(const QString &lang)
+{
+ QVERIFY(lang == "kl");
+}
+#endif
QTEST_MAIN(tst_QSystemInfo)
#include "tst_qsysteminfo.moc"
+
diff --git a/tests/auto/qsystemnetworkinfo/qsystemnetworkinfo.pro b/tests/auto/qsystemnetworkinfo/qsystemnetworkinfo.pro
index ba5f297798..43b067a71c 100644
--- a/tests/auto/qsystemnetworkinfo/qsystemnetworkinfo.pro
+++ b/tests/auto/qsystemnetworkinfo/qsystemnetworkinfo.pro
@@ -5,7 +5,6 @@ QT = core network
SOURCES += tst_qsystemnetworkinfo.cpp
INCLUDEPATH += ../../../src/systeminfo
-
include(../../../common.pri)
CONFIG += mobility
MOBILITY = systeminfo
@@ -13,3 +12,7 @@ MOBILITY = systeminfo
symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qsystemnetworkinfo/tst_qsystemnetworkinfo.cpp b/tests/auto/qsystemnetworkinfo/tst_qsystemnetworkinfo.cpp
index 333f739df0..d49a94a3f1 100644
--- a/tests/auto/qsystemnetworkinfo/tst_qsystemnetworkinfo.cpp
+++ b/tests/auto/qsystemnetworkinfo/tst_qsystemnetworkinfo.cpp
@@ -42,43 +42,148 @@
//TESTED_COMPONENT=src/systeminfo
#include <QtTest/QtTest>
-#include "qsysteminfo.h"
+#include "qsystemnetworkinfo.h"
+#include "qsysteminfo_simulator_p.h"
QTM_USE_NAMESPACE
+
+
Q_DECLARE_METATYPE(QSystemNetworkInfo::NetworkStatus);
Q_DECLARE_METATYPE(QSystemNetworkInfo::NetworkMode);
+/**
+ * Starts an event loop that runs until the given signal is received.
+ * Optionally the event loop can return earlier on a timeout.
+ *
+ * \return \p true if the requested signal was received
+ * \p false on timeout
+ */
+#ifdef TESTR
+static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
+{
+ QEventLoop loop;
+ QObject::connect(obj, signal, &loop, SLOT(quit()));
+ QTimer timer;
+ QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
+ if (timeout > 0) {
+ QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.setSingleShot(true);
+ timer.start(timeout);
+ }
+ loop.exec();
+ return timeoutSpy.isEmpty();
+}
+
+class ChangeNetworkThread : public QThread
+{
+public:
+ void run()
+ {
+ QMutexLocker locker(&mutex);
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+ s->setNetworkStatus(mode, QSystemNetworkInfo::Denied);
+
+ s->setNetworkSignalStrength(mode, 74);
+ s->setCurrentMobileCountryCode("111");
+ s->setCurrentMobileNetworkCode("123");
+ s->setNetworkName(mode,"qsysteminfo test network");
+ s->setCurrentMode(mode);
+ s->setCellId(206555390);
+ this->exit();
+
+ }
+ QSystemNetworkInfo::NetworkMode mode;
+ QString str;
+ QMutex mutex;
+};
+#endif
class tst_QSystemNetworkInfo : public QObject
{
Q_OBJECT
+//public:
+// tst_QSystemNetworkInfo();
+// virtual ~tst_QSystemNetworkInfo();
+
+// friend class QSystemNetworkInfo;
private slots:
void initTestCase();
+
+ void tst_mode_data();
+
+ void tst_networkStatus_data();
void tst_networkStatus();
+
void tst_networkSignalStrength_data();
void tst_networkSignalStrength();
void tst_cellId();
void tst_locationAreaCode();
- void tst_currentMobileCountryCode(); // Mobile Country Code
- void tst_currentMobileNetworkCode(); // Mobile Network Code
+ void tst_currentMobileCountryCode();
+ void tst_currentMobileNetworkCode();
void tst_homeMobileCountryCode();
void tst_homeMobileNetworkCode();
+ void tst_networkName_data();
void tst_networkName();
void tst_macAddress_data();
void tst_macAddress();
+ void tst_interfaceForMode_data();
void tst_interfaceForMode();
+
void tst_currentMode();
+
+
+#ifdef TESTR
+ void tst_networkStatusChanged_data();
+ void tst_networkStatusChanged();
+
+ void tst_networkSignalStrengthChanged_data();
+ void tst_networkSignalStrengthChanged();
+
+ void tst_currentMobileCountryCodeChanged();
+ void tst_currentMobileNetworkCodeChanged();
+
+ void tst_networkNameChanged_data();
+ void tst_networkNameChanged();
+
+ void tst_networkModeChanged_data();
+ void tst_networkModeChanged();
+
+ void tst_cellIdChanged();
+
+ void networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus);
+ void networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode, int);
+ void currentMobileCountryCodeChanged(const QString &);
+ void currentMobileNetworkCodeChanged(const QString &);
+ void networkNameChanged(QSystemNetworkInfo::NetworkMode,const QString &);
+ void networkModeChanged(QSystemNetworkInfo::NetworkMode);
+ void cellIdChanged(int);
+#endif
+
+
+private:
+
+#ifdef TESTR
+ QSystemNetworkInfo::NetworkMode testMode;
+#endif
};
-//signal todo:
-// void networkStatusChanged(QSystemNetworkInfo::NetworkMode netmode, QSystemNetworkInfo::CellNetworkStatus netStatus);
+
+//tst_QSystemNetworkInfo::tst_QSystemNetworkInfo()
+//{
+//}
+
+//tst_QSystemNetworkInfo::~tst_QSystemNetworkInfo()
+//{
+
+//}
void tst_QSystemNetworkInfo::initTestCase()
{
@@ -86,9 +191,14 @@ void tst_QSystemNetworkInfo::initTestCase()
qRegisterMetaType<QSystemNetworkInfo::NetworkMode>("QSystemNetworkInfo::NetworkMode");
}
+void tst_QSystemNetworkInfo::tst_networkStatus_data()
+{
+ tst_mode_data();
+}
void tst_QSystemNetworkInfo::tst_networkStatus()
{
+// QFETCH(QSystemNetworkInfo::NetworkMode, mode);
QSystemNetworkInfo ni;
QList<QSystemNetworkInfo::NetworkMode> modeList;
modeList << QSystemNetworkInfo::GsmMode;
@@ -116,7 +226,7 @@ void tst_QSystemNetworkInfo::tst_networkStatus()
}
-void tst_QSystemNetworkInfo::tst_networkSignalStrength_data()
+void tst_QSystemNetworkInfo::tst_mode_data()
{
QTest::addColumn<QSystemNetworkInfo::NetworkMode>("mode");
@@ -131,15 +241,18 @@ void tst_QSystemNetworkInfo::tst_networkSignalStrength_data()
QTest::newRow("LteMode") << QSystemNetworkInfo::LteMode;
}
+void tst_QSystemNetworkInfo::tst_networkSignalStrength_data()
+{
+ tst_mode_data();
+}
+
void tst_QSystemNetworkInfo::tst_networkSignalStrength()
{
- {
- QFETCH(QSystemNetworkInfo::NetworkMode, mode);
- QSystemNetworkInfo ni;
- qint32 strength = ni.networkSignalStrength(mode);
- QVERIFY( strength > -2
- && strength < 101);
- }
+ QFETCH(QSystemNetworkInfo::NetworkMode, mode);
+ QSystemNetworkInfo ni;
+ qint32 strength = ni.networkSignalStrength(mode);
+ QVERIFY( strength > -2
+ && strength < 101);
}
void tst_QSystemNetworkInfo::tst_cellId()
@@ -160,6 +273,15 @@ void tst_QSystemNetworkInfo::tst_locationAreaCode()
void tst_QSystemNetworkInfo::tst_currentMobileCountryCode()
{
QSystemNetworkInfo ni;
+ QSystemNetworkInfo::NetworkMode mode = ni.currentMode();
+ QSystemNetworkInfo::NetworkStatus status = ni.networkStatus(mode);
+
+ if ((mode == QSystemNetworkInfo::GsmMode
+ || mode == QSystemNetworkInfo::CdmaMode
+ || mode == QSystemNetworkInfo::LteMode)
+ && (QSystemNetworkInfo::HomeNetwork == status
+ || QSystemNetworkInfo::Connected == status
+ || QSystemNetworkInfo::Roaming == status)) {
// qDebug() << ni.currentMobileCountryCode();
if(QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::GsmMode)
|| QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
@@ -177,27 +299,39 @@ void tst_QSystemNetworkInfo::tst_currentMobileCountryCode()
} else {
QVERIFY(ni.currentMobileCountryCode().isEmpty());
}
+ }
}
+
void tst_QSystemNetworkInfo::tst_currentMobileNetworkCode()
{
QSystemNetworkInfo ni;
- if(QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::GsmMode)
- || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
- || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::GsmMode)
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::LteMode)
- ) {
- QVERIFY(!ni.currentMobileNetworkCode().isEmpty());
- bool ok;
- ni.currentMobileCountryCode().toInt(&ok);
- QVERIFY(ok);
- QVERIFY((ni.currentMobileCountryCode().count() == 3)
- || (ni.currentMobileCountryCode().count() == 2));
- } else {
- QVERIFY(ni.currentMobileNetworkCode().isEmpty());
+ QSystemNetworkInfo::NetworkMode mode = ni.currentMode();
+ QSystemNetworkInfo::NetworkStatus status = ni.networkStatus(mode);
+
+ if ((mode == QSystemNetworkInfo::GsmMode
+ || mode == QSystemNetworkInfo::CdmaMode
+ || mode == QSystemNetworkInfo::LteMode)
+ && (QSystemNetworkInfo::HomeNetwork == status
+ || QSystemNetworkInfo::Connected == status
+ || QSystemNetworkInfo::Roaming == status)) {
+ if(QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::GsmMode)
+ || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
+ || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::GsmMode)
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::LteMode)
+ ) {
+ QVERIFY(!ni.currentMobileNetworkCode().isEmpty());
+ bool ok;
+ ni.currentMobileCountryCode().toInt(&ok);
+ QVERIFY(ok);
+ QVERIFY((ni.currentMobileCountryCode().count() == 3)
+ || (ni.currentMobileCountryCode().count() == 2));
+ } else {
+ QVERIFY(ni.currentMobileNetworkCode().isEmpty());
+ }
}
}
@@ -226,47 +360,73 @@ void tst_QSystemNetworkInfo::tst_homeMobileCountryCode()
void tst_QSystemNetworkInfo::tst_homeMobileNetworkCode()
{
QSystemNetworkInfo ni;
- if(QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::GsmMode)
- || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
- || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::GsmMode)
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
-
- || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::LteMode)
- ) {
- QVERIFY(!ni.homeMobileNetworkCode().isEmpty());
- bool ok;
- ni.currentMobileCountryCode().toInt(&ok);
- QVERIFY(ok);
- QVERIFY((ni.currentMobileCountryCode().count() == 3)
- || (ni.currentMobileCountryCode().count() == 2));
- } else {
- QVERIFY(ni.homeMobileNetworkCode().isEmpty());
+ QSystemNetworkInfo::NetworkMode mode = ni.currentMode();
+ QSystemNetworkInfo::NetworkStatus status = ni.networkStatus(mode);
+
+ if ((mode == QSystemNetworkInfo::GsmMode
+ || mode == QSystemNetworkInfo::CdmaMode
+ || mode == QSystemNetworkInfo::LteMode)
+ && (QSystemNetworkInfo::HomeNetwork == status
+ || QSystemNetworkInfo::Connected == status
+ || QSystemNetworkInfo::Roaming == status)) {
+ if(QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::GsmMode)
+ || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
+ || QSystemNetworkInfo::HomeNetwork == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::GsmMode)
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::CdmaMode)
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::WcdmaMode)
+
+ || QSystemNetworkInfo::Roaming == ni.networkStatus(QSystemNetworkInfo::LteMode)
+ ) {
+ QVERIFY(!ni.homeMobileNetworkCode().isEmpty());
+ bool ok;
+ ni.currentMobileCountryCode().toInt(&ok);
+ QVERIFY(ok);
+ QVERIFY((ni.currentMobileCountryCode().count() == 3)
+ || (ni.currentMobileCountryCode().count() == 2));
+ } else {
+ QVERIFY(ni.homeMobileNetworkCode().isEmpty());
+ }
}
}
-void tst_QSystemNetworkInfo::tst_networkName()
+void tst_QSystemNetworkInfo::tst_networkName_data()
{
- QSystemNetworkInfo ni;
- QList<QSystemNetworkInfo::NetworkMode> modeList;
- modeList << QSystemNetworkInfo::GsmMode;
- modeList << QSystemNetworkInfo::CdmaMode;
- modeList << QSystemNetworkInfo::WcdmaMode;
- modeList << QSystemNetworkInfo::WlanMode;
- modeList << QSystemNetworkInfo::EthernetMode;
- modeList << QSystemNetworkInfo::BluetoothMode;
- modeList << QSystemNetworkInfo::WimaxMode;
-
- modeList << QSystemNetworkInfo::LteMode;
+ tst_mode_data();
+}
- foreach(QSystemNetworkInfo::NetworkMode mode, modeList) {
- QVERIFY(!ni.networkName(mode).isEmpty()
- ||ni.networkName(mode).isEmpty());
+void tst_QSystemNetworkInfo::tst_networkName()
+{
+ {
+ QFETCH(QSystemNetworkInfo::NetworkMode, mode);
+ QSystemNetworkInfo ni;
+ QSystemNetworkInfo::NetworkStatus status = ni.networkStatus(mode);
+ if (QSystemNetworkInfo::HomeNetwork == status
+ || QSystemNetworkInfo::Connected == status
+ || QSystemNetworkInfo::Roaming == status) {
+ QVERIFY(!ni.networkName(mode).isEmpty());
+ } else {
+ ni.networkName(mode).isEmpty();
+ }
+
+ QList<QSystemNetworkInfo::NetworkMode> modeList;
+ modeList << QSystemNetworkInfo::GsmMode;
+ modeList << QSystemNetworkInfo::CdmaMode;
+ modeList << QSystemNetworkInfo::WcdmaMode;
+ modeList << QSystemNetworkInfo::WlanMode;
+ modeList << QSystemNetworkInfo::EthernetMode;
+ modeList << QSystemNetworkInfo::BluetoothMode;
+ modeList << QSystemNetworkInfo::WimaxMode;
+
+ modeList << QSystemNetworkInfo::LteMode;
+
+ foreach(QSystemNetworkInfo::NetworkMode mode, modeList) {
+ QVERIFY(!ni.networkName(mode).isEmpty()
+ ||ni.networkName(mode).isEmpty());
+ }
}
}
-
void tst_QSystemNetworkInfo::tst_macAddress_data()
{
tst_networkSignalStrength_data();
@@ -283,9 +443,21 @@ void tst_QSystemNetworkInfo::tst_macAddress()
}
}
+void tst_QSystemNetworkInfo::tst_interfaceForMode_data()
+{
+ tst_mode_data();
+}
+
void tst_QSystemNetworkInfo::tst_interfaceForMode()
{
+ QFETCH(QSystemNetworkInfo::NetworkMode, mode);
QSystemNetworkInfo ni;
+// QSystemNetworkInfo::NetworkStatus status = ni.networkStatus(mode);
+ if ((mode == ni.currentMode()) && (mode == QSystemNetworkInfo::EthernetMode
+ || mode == QSystemNetworkInfo::WlanMode)) {
+ QVERIFY(!ni.interfaceForMode(mode).name().isEmpty());
+ }
+
QList<QSystemNetworkInfo::NetworkMode> modeList;
modeList << QSystemNetworkInfo::GsmMode;
modeList << QSystemNetworkInfo::CdmaMode;
@@ -294,14 +466,12 @@ void tst_QSystemNetworkInfo::tst_interfaceForMode()
modeList << QSystemNetworkInfo::EthernetMode;
modeList << QSystemNetworkInfo::BluetoothMode;
modeList << QSystemNetworkInfo::WimaxMode;
-
modeList << QSystemNetworkInfo::LteMode;
- foreach(QSystemNetworkInfo::NetworkMode mode, modeList) {
+ foreach (QSystemNetworkInfo::NetworkMode mode, modeList) {
QVERIFY(!ni.interfaceForMode(mode).name().isEmpty()
- || !ni.interfaceForMode(mode).isValid());
+ || !ni.interfaceForMode(mode).isValid());
}
-
}
void tst_QSystemNetworkInfo::tst_currentMode()
@@ -322,6 +492,220 @@ void tst_QSystemNetworkInfo::tst_currentMode()
);
}
+#ifdef TESTR
+void tst_QSystemNetworkInfo::tst_networkStatusChanged_data()
+{
+ tst_mode_data();
+}
+
+void tst_QSystemNetworkInfo::tst_networkStatusChanged()
+{
+ QSystemNetworkInfo ni;
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+ s->setInitialData();
+ QFETCH(QSystemNetworkInfo::NetworkMode, mode);
+ s->setNetworkStatus(mode,QSystemNetworkInfo::UndefinedStatus);
+
+ connect(&ni,SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus)),
+ this,SLOT(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus)),Qt::UniqueConnection);
+ ChangeNetworkThread *changeNetThread = new ChangeNetworkThread();
+ changeNetThread->mode = testMode = mode;
+ changeNetThread->start();
+ QSignalSpy errorSpy(&ni, SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus)));
+ QVERIFY(::waitForSignal(&ni, SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode, QSystemNetworkInfo::NetworkStatus)), /*10 * */1000));
+ QVERIFY(errorSpy.count() == 1);
+ delete changeNetThread, changeNetThread = 0;
+}
+
+
+void tst_QSystemNetworkInfo::tst_networkSignalStrengthChanged_data()
+{
+ tst_mode_data();
+}
+
+void tst_QSystemNetworkInfo::tst_networkSignalStrengthChanged()
+{
+ QSystemNetworkInfo ni;
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+ s->setInitialData();
+
+ QFETCH(QSystemNetworkInfo::NetworkMode, mode);
+ s->setNetworkSignalStrength(mode,1);
+
+ connect(&ni,SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode,int)),
+ this,SLOT(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode,int)),Qt::UniqueConnection);
+
+ ChangeNetworkThread *changeNetThread = new ChangeNetworkThread();
+ changeNetThread->mode = testMode= mode;
+ changeNetThread->start();
+ QSignalSpy errorSpy(&ni, SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode, int)));
+ QVERIFY(::waitForSignal(&ni, SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode, int)), 10 * 1000));
+ QVERIFY(errorSpy.count() == 1);
+ delete changeNetThread, changeNetThread = 0;
+}
+
+
+void tst_QSystemNetworkInfo::tst_currentMobileCountryCodeChanged()
+{
+ QSystemNetworkInfo ni;
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+ s->setCurrentMobileCountryCode("000");
+
+ connect(&ni,SIGNAL(currentMobileCountryCodeChanged(const QString &)),
+ this,SLOT(currentMobileCountryCodeChanged(const QString &)));
+
+ ChangeNetworkThread *changeNetThread = new ChangeNetworkThread();
+ changeNetThread->mode = testMode = QSystemNetworkInfo::WcdmaMode;
+ changeNetThread->start();
+
+ QSignalSpy errorSpy(&ni, SIGNAL(currentMobileCountryCodeChanged(const QString &)));
+ QVERIFY(::waitForSignal(&ni, SIGNAL(currentMobileCountryCodeChanged(const QString &)), 10 * 1000));
+ QVERIFY(errorSpy.count() == 1);
+ delete changeNetThread, changeNetThread = 0;
+
+}
+
+
+void tst_QSystemNetworkInfo::tst_currentMobileNetworkCodeChanged()
+{
+ QSystemNetworkInfo ni;
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+
+ s->setCurrentMobileNetworkCode("000");
+
+ connect(&ni,SIGNAL(currentMobileNetworkCodeChanged(const QString &)),
+ this,SLOT(currentMobileNetworkCodeChanged(const QString &)));
+
+ ChangeNetworkThread *changeNetThread = new ChangeNetworkThread();
+ changeNetThread->mode = testMode = QSystemNetworkInfo::WcdmaMode;
+ changeNetThread->start();
+
+ QSignalSpy errorSpy(&ni, SIGNAL(currentMobileNetworkCodeChanged(const QString &)));
+ QVERIFY(::waitForSignal(&ni, SIGNAL(currentMobileNetworkCodeChanged(const QString &)), 10 * 1000));
+ QVERIFY(errorSpy.count() == 1);
+ delete changeNetThread, changeNetThread = 0;
+
+}
+
+void tst_QSystemNetworkInfo::tst_networkNameChanged_data()
+{
+ tst_mode_data();
+}
+
+void tst_QSystemNetworkInfo::tst_networkNameChanged()
+{
+ QSystemNetworkInfo ni;
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+
+ QFETCH(QSystemNetworkInfo::NetworkMode, mode);
+ s->setNetworkName(mode,"unknown");
+
+ connect(&ni,SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,const QString &)),
+ this,SLOT(networkNameChanged(QSystemNetworkInfo::NetworkMode,const QString &)));
+
+ ChangeNetworkThread *changeNetThread = new ChangeNetworkThread();
+ changeNetThread->mode = testMode = mode;
+ changeNetThread->start();
+ QSignalSpy errorSpy(&ni, SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode, const QString &)));
+ QVERIFY(::waitForSignal(&ni, SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode, const QString &)), 10 * 1000));
+ QVERIFY(errorSpy.count() == 1);
+ delete changeNetThread, changeNetThread = 0;
+
+}
+
+
+void tst_QSystemNetworkInfo::tst_networkModeChanged_data()
+{
+ tst_mode_data();
+}
+
+void tst_QSystemNetworkInfo::tst_networkModeChanged()
+{
+ QSystemNetworkInfo ni;
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+
+ s->setInitialData();
+ QFETCH(QSystemNetworkInfo::NetworkMode, mode);
+ s->setCurrentMode(QSystemNetworkInfo::UnknownMode);
+
+ connect(&ni,SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode)),
+ this,SLOT(networkModeChanged(QSystemNetworkInfo::NetworkMode)));
+
+ ChangeNetworkThread *changeNetThread = new ChangeNetworkThread();
+ changeNetThread->mode = testMode = mode;
+ changeNetThread->start();
+ QSignalSpy errorSpy(&ni, SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode)));
+ QVERIFY(::waitForSignal(&ni, SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode)), 10 * 1000));
+ QVERIFY(errorSpy.count() == 1);
+
+ delete changeNetThread, changeNetThread = 0;
+}
+
+void tst_QSystemNetworkInfo::tst_cellIdChanged()
+{
+ QSystemNetworkInfo ni;
+ SystemInfoConnection si;
+ QSystemNetworkInfoPrivate *s = si.networkInfoPrivate();
+ s->setInitialData();
+ connect(&ni,SIGNAL(cellIdChanged(int)),
+ this,SLOT(cellIdChanged(int)));
+
+ ChangeNetworkThread *changeNetThread = new ChangeNetworkThread();
+ changeNetThread->mode = testMode = QSystemNetworkInfo::WcdmaMode;
+ changeNetThread->start();
+ QSignalSpy errorSpy(&ni, SIGNAL(cellIdChanged(int)));
+ QVERIFY(::waitForSignal(&ni, SIGNAL(cellIdChanged(int)), 10 * 1000));
+ QVERIFY(errorSpy.count() == 1);
+ delete changeNetThread, changeNetThread = 0;
+}
+
+
+
+void tst_QSystemNetworkInfo::networkStatusChanged(QSystemNetworkInfo::NetworkMode mode, QSystemNetworkInfo::NetworkStatus status)
+{
+ QVERIFY(mode == testMode);
+ QVERIFY(status == QSystemNetworkInfo::Denied);
+}
+
+void tst_QSystemNetworkInfo::networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode mode, int strength)
+{
+ QVERIFY(mode == testMode);
+ QVERIFY(strength == 74);
+}
+
+void tst_QSystemNetworkInfo::currentMobileCountryCodeChanged(const QString &str)
+{
+ QVERIFY(str == "111");
+}
+
+void tst_QSystemNetworkInfo::currentMobileNetworkCodeChanged(const QString &str)
+{
+ QVERIFY(str == "123");
+}
+
+void tst_QSystemNetworkInfo::networkNameChanged(QSystemNetworkInfo::NetworkMode mode,const QString &name)
+{
+ QVERIFY(mode == testMode);
+ QVERIFY(name == "qsysteminfo test network");
+}
+
+void tst_QSystemNetworkInfo::networkModeChanged(QSystemNetworkInfo::NetworkMode mode)
+{
+ QVERIFY(mode == testMode);
+}
+
+void tst_QSystemNetworkInfo::cellIdChanged(int id)
+{
+ QVERIFY(id == 206555390);
+}
+#endif
+
QTEST_MAIN(tst_QSystemNetworkInfo)
#include "tst_qsystemnetworkinfo.moc"
diff --git a/tests/auto/qsystemscreensaver/qsystemscreensaver.pro b/tests/auto/qsystemscreensaver/qsystemscreensaver.pro
index d74ce9bfb5..5a98a01165 100644
--- a/tests/auto/qsystemscreensaver/qsystemscreensaver.pro
+++ b/tests/auto/qsystemscreensaver/qsystemscreensaver.pro
@@ -13,3 +13,6 @@ symbian {
TARGET.CAPABILITY = All -TCB -DRM
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qsystemstorageinfo/qsystemstorageinfo.pro b/tests/auto/qsystemstorageinfo/qsystemstorageinfo.pro
index 245bb05abb..dfd52527da 100644
--- a/tests/auto/qsystemstorageinfo/qsystemstorageinfo.pro
+++ b/tests/auto/qsystemstorageinfo/qsystemstorageinfo.pro
@@ -1,4 +1,4 @@
-HEADERS +=
+HEADERS +=
TARGET = tst_qsystemstorageinfo
CONFIG+=testcase
@@ -6,7 +6,6 @@ QT = core network
SOURCES += tst_qsystemstorageinfo.cpp
INCLUDEPATH += ../../../src/systeminfo
-
include(../../../common.pri)
CONFIG += mobility
MOBILITY = systeminfo
@@ -16,3 +15,6 @@ symbian {
}
+contains(test_use_sim, yes) {
+DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/auto/qsystemstorageinfo/tst_qsystemstorageinfo.cpp b/tests/auto/qsystemstorageinfo/tst_qsystemstorageinfo.cpp
index 49358c3fc3..ee72a3ff3f 100644
--- a/tests/auto/qsystemstorageinfo/tst_qsystemstorageinfo.cpp
+++ b/tests/auto/qsystemstorageinfo/tst_qsystemstorageinfo.cpp
@@ -43,11 +43,35 @@
#include <QtTest/QtTest>
#include "qsysteminfo.h"
+#include "qsysteminfo_simulator_p.h"
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QSystemStorageInfo::DriveType);
Q_DECLARE_METATYPE(QSystemStorageInfo::StorageState);
+/**
+ * Starts an event loop that runs until the given signal is received.
+ * Optionally the event loop can return earlier on a timeout.
+ *
+ * \return \p true if the requested signal was received
+ * \p false on timeout
+ */
+#ifdef TESTR
+static bool waitForSignal(QObject *obj, const char *signal, int timeout = 0)
+{
+ QEventLoop loop;
+ QObject::connect(obj, signal, &loop, SLOT(quit()));
+ QTimer timer;
+ QSignalSpy timeoutSpy(&timer, SIGNAL(timeout()));
+ if (timeout > 0) {
+ QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.setSingleShot(true);
+ timer.start(timeout);
+ }
+ loop.exec();
+ return timeoutSpy.isEmpty();
+}
+#endif
class tst_QSystemStorageInfo : public QObject
{
Q_OBJECT
@@ -59,8 +83,27 @@ private slots:
void tst_availableDiskSpace();
void tst_logicalDrives();
void tst_typeForDrive();
+
void tst_getStorageState();
+#ifdef TESTR
+
+ void tst_storageStateChanged_data();
+ void tst_storageStateChanged();
+ void tst_logicalDriveChanged_data();
+ void tst_logicalDriveChanged();
+
+ void logicalDriveChanged(bool added,const QString &vol);
+ void storageStateChanged(const QString &vol, QSystemStorageInfo::StorageState state); //1.2
+#endif
+private:
+#ifdef TESTR
+ void newDrives();
+ QSystemStorageInfo::StorageState sstate;
+ QSystemStorageInfo::DriveType driveType;
+ bool driveAdded;
+ QString dName;
+#endif
};
void tst_QSystemStorageInfo::initTestCase()
@@ -123,7 +166,131 @@ void tst_QSystemStorageInfo::tst_getStorageState()
|| state == QSystemStorageInfo::CriticalStorageState);
}
}
+#ifdef TESTR
+
+void tst_QSystemStorageInfo::tst_storageStateChanged_data()
+{
+ QTest::addColumn<QSystemStorageInfo::DriveType>("drivetype");
+ QTest::addColumn<QSystemStorageInfo::StorageState>("storagestate");
+ QTest::addColumn<QString>("drivename");
+
+ QTest::newRow("NoDrive") << QSystemStorageInfo::NoDrive
+ << QSystemStorageInfo::UnknownStorageState
+ << "NoDrive";
+ QTest::newRow("InternalDrive") << QSystemStorageInfo::InternalDrive
+ << QSystemStorageInfo::NormalStorageState
+ << "InternalDrive";
+ QTest::newRow("RemovableDrive") << QSystemStorageInfo::RemovableDrive
+ << QSystemStorageInfo::LowStorageState
+ << "RemovableDrive";
+ QTest::newRow("RemoteDrive") << QSystemStorageInfo::RemoteDrive
+ << QSystemStorageInfo::VeryLowStorageState
+ << "RemoteDrive";
+ QTest::newRow("CdromDrive") << QSystemStorageInfo::CdromDrive
+ << QSystemStorageInfo::CriticalStorageState
+ << "CdromDrive";
+ QTest::newRow("InternalFlashDrive") << QSystemStorageInfo::InternalFlashDrive
+ << QSystemStorageInfo::UnknownStorageState
+ << "InternalFlashDrive";
+ QTest::newRow("RamDrive") << QSystemStorageInfo::RamDrive
+ << QSystemStorageInfo::UnknownStorageState
+ << "RamDrive";
+ SystemInfoConnection si;
+ QSystemStorageInfo sti;
+ QSystemStorageInfoPrivate *st = si.storageInfoPrivate();
+ QStringList curDrives = sti.logicalDrives();
+ foreach (const QString &name, curDrives)
+ st->removeDrive(name);
+
+}
+
+void tst_QSystemStorageInfo::newDrives()
+{
+ QFETCH(QString, drivename);
+ QFETCH(QSystemStorageInfo::DriveType, drivetype);
+
+ QSystemStorageInfo sti;
+ QStringList curDrives = sti.logicalDrives();
+ SystemInfoConnection si;
+ QSystemStorageInfoPrivate *st = si.storageInfoPrivate();
+
+ st->addDrive(drivename, drivetype, 100, 90,"YYY");
+}
+
+
+void tst_QSystemStorageInfo::tst_storageStateChanged()
+{
+ QFETCH(QSystemStorageInfo::DriveType, drivetype);
+ QFETCH(QString, drivename);
+
+ QSystemStorageInfo sti;
+ QStringList curDrives = sti.logicalDrives();
+ SystemInfoConnection si;
+ QSystemStorageInfoPrivate *st = si.storageInfoPrivate();
+ driveAdded = true;
+ dName = drivename;
+ st->addDrive(drivename, drivetype, 100, 50,"YYY");
+ connect(&sti,SIGNAL(storageStateChanged(const QString &, QSystemStorageInfo::StorageState)),
+ this,SLOT(storageStateChanged(const QString &, QSystemStorageInfo::StorageState)));
+
+ sstate = QSystemStorageInfo::CriticalStorageState;
+ st->setAvailableSpace(drivename,1);
+ QVERIFY(sti.availableDiskSpace(drivename) == 1);
+ sstate = QSystemStorageInfo::NormalStorageState;
+ st->setAvailableSpace(drivename,99);
+ QVERIFY(sti.availableDiskSpace(drivename) == 99);
+ sstate = QSystemStorageInfo::NormalStorageState;
+ st->setAvailableSpace(drivename,41);
+ QVERIFY(sti.availableDiskSpace(drivename) == 41);
+ sstate = QSystemStorageInfo::LowStorageState;
+ st->setAvailableSpace(drivename,40);
+ QVERIFY(sti.availableDiskSpace(drivename) == 40);
+ sstate = QSystemStorageInfo::VeryLowStorageState;
+ st->setAvailableSpace(drivename,9);
+ QVERIFY(sti.availableDiskSpace(drivename) == 9);
+
+ driveAdded = false;
+ st->removeDrive(drivename);
+}
+
+void tst_QSystemStorageInfo::tst_logicalDriveChanged_data()
+{
+ tst_storageStateChanged_data();
+}
+
+void tst_QSystemStorageInfo::tst_logicalDriveChanged()
+{
+ QFETCH(QSystemStorageInfo::DriveType, drivetype);
+ QFETCH(QString, drivename);
+
+ QSystemStorageInfo sti;
+ QStringList curDrives = sti.logicalDrives();
+ SystemInfoConnection si;
+ QSystemStorageInfoPrivate *st = si.storageInfoPrivate();
+ connect(&sti,SIGNAL(logicalDriveChanged(bool,const QString &)),
+ this,SLOT(logicalDriveChanged(bool,const QString &)));
+
+ driveAdded = true;
+ dName = drivename;
+ st->addDrive(drivename, drivetype, 100, 50,"YYY");
+
+ driveAdded = false;
+ st->removeDrive(drivename);
+}
+
+void tst_QSystemStorageInfo::logicalDriveChanged(bool added,const QString &vol)
+{
+ QVERIFY(added == driveAdded);
+ QVERIFY(vol == dName);
+}
+
+void tst_QSystemStorageInfo::storageStateChanged(const QString &vol, QSystemStorageInfo::StorageState state)
+{
+ QVERIFY(vol == dName);
+ QVERIFY(state == sstate);
+}
+#endif
QTEST_MAIN(tst_QSystemStorageInfo)
#include "tst_qsystemstorageinfo.moc"
diff --git a/tests/auto/qversitcontactexporter/tst_qversitcontactexporter.cpp b/tests/auto/qversitcontactexporter/tst_qversitcontactexporter.cpp
index 1f729d4cb2..c7bf3b34bc 100644
--- a/tests/auto/qversitcontactexporter/tst_qversitcontactexporter.cpp
+++ b/tests/auto/qversitcontactexporter/tst_qversitcontactexporter.cpp
@@ -250,17 +250,11 @@ void tst_QVersitContactExporter::testEmptyContact()
QList<QContact> contacts;
contacts << contact1;
- QVERIFY(mExporter->exportContacts(contacts)); // do not fail on empty contact1
+ QVERIFY(!mExporter->exportContacts(contacts)); // Fail on empty contact1
QMap<int, QVersitContactExporter::Error> errorMap = mExporter->errorMap();
- QVERIFY(errorMap.isEmpty());
+ QCOMPARE(errorMap.size(), 1);
QList<QVersitDocument> documents = mExporter->documents();
- QCOMPARE(documents.size(), 1); // only contact2 was exported
- QVersitDocument document1 = documents.first();
- QCOMPARE(document1.properties().size(), 1);
- QVersitProperty property = findPropertyByName(document1, "N");
- QCOMPARE(property.valueType(), QVersitProperty::CompoundType);
- QCOMPARE(property.value<QStringList>(),
- QStringList() << QString() << QString() << QString() << QString() << QString());
+ QCOMPARE(documents.size(), 0); // empty contact not exported
}
void tst_QVersitContactExporter::testContactDetailHandler()
@@ -332,17 +326,9 @@ void tst_QVersitContactExporter::testEncodeName()
QContact contact;
QContactName name;
- // Test 1: An empty contact - a blank N should be generated
- QVERIFY(mExporter->exportContacts(QList<QContact>() << contact, QVersitDocument::VCard21Type));
- QCOMPARE(mExporter->documents().size(), 1);
- QVersitDocument document = mExporter->documents().first();
- QCOMPARE(document.properties().size(), 1);
- QVersitProperty nameProperty = findPropertyByName(document, QLatin1String("N"));
- QCOMPARE(nameProperty.name(), QLatin1String("N"));
- CHECK_VALUE(nameProperty, QVersitProperty::CompoundType,
- QStringList() << QString() << QString()
- << QString() << QString() << QString());
-
+ // Test 1: An empty contact - can't be exported
+ QVERIFY(!mExporter->exportContacts(QList<QContact>() << contact, QVersitDocument::VCard21Type));
+ QCOMPARE(mExporter->documents().size(), 0);
// Test 2: Special characters are NOT backslash escaped by the exporter, only by the writer.
name.setFirstName(QLatin1String("Fi;rst")); // check that semicolon is left intact
@@ -353,13 +339,13 @@ void tst_QVersitContactExporter::testEncodeName()
name.setCustomLabel(QLatin1String("Label"));
contact.saveDetail(&name);
QVERIFY(mExporter->exportContacts(QList<QContact>() << contact, QVersitDocument::VCard21Type));
- document = mExporter->documents().first();
+ QVersitDocument document = mExporter->documents().first();
// Check that FN comes from the custom label and N is populated with the right fields from N
QCOMPARE(document.properties().count(), 2);
QVersitProperty displayProperty = findPropertyByName(document, QLatin1String("FN"));
QCOMPARE(displayProperty.name(), QLatin1String("FN"));
QCOMPARE(displayProperty.value(), QLatin1String("Label"));
- nameProperty = findPropertyByName(document, QLatin1String("N"));
+ QVersitProperty nameProperty = findPropertyByName(document, QLatin1String("N"));
QCOMPARE(nameProperty.parameters().count(), 0);
QCOMPARE(nameProperty.name(), QLatin1String("N"));
CHECK_VALUE(nameProperty, QVersitProperty::CompoundType,
diff --git a/tests/auto/qversitcontactplugins/unittest/tst_qversitcontactplugins.cpp b/tests/auto/qversitcontactplugins/unittest/tst_qversitcontactplugins.cpp
index 1162a8d5c0..a45ae964d6 100644
--- a/tests/auto/qversitcontactplugins/unittest/tst_qversitcontactplugins.cpp
+++ b/tests/auto/qversitcontactplugins/unittest/tst_qversitcontactplugins.cpp
@@ -41,6 +41,7 @@
#include "qversitcontacthandler.h"
#include "qversitproperty.h"
+#include "qcontactname.h"
#include <QObject>
#include <QtTest/QtTest>
@@ -94,6 +95,9 @@ void tst_QVersitContactPlugins::testImporterPlugins() {
void tst_QVersitContactPlugins::testExporterPlugins() {
QVersitContactExporter exporter("Test");
QContact contact;
+ QContactName name;
+ name.setFirstName("first name");
+ contact.saveDetail(&name);
QVERIFY(exporter.exportContacts(QList<QContact>() << contact));
QCOMPARE(exporter.documents().size(), 1);
QList<QVersitProperty> properties(exporter.documents().first().properties());
diff --git a/tests/auto/systeminfo.pro b/tests/auto/systeminfo.pro
index 2f56234051..7ff15e4b4f 100644
--- a/tests/auto/systeminfo.pro
+++ b/tests/auto/systeminfo.pro
@@ -35,3 +35,6 @@ SUBDIRS += qsystembatteryinfo \
qdeclarativebatteryinfo
}
+contains(build_unit_tests, yes):contains(test_use_sim, yes) {
+ DEFINES += TESTR QT_SIMULATOR
+}
diff --git a/tests/declarative-location/visual/shared-qml/ToolBar.qml b/tests/declarative-location/visual/shared-qml/ToolBar.qml
index 0c0a9a2861..d04b81129e 100755
--- a/tests/declarative-location/visual/shared-qml/ToolBar.qml
+++ b/tests/declarative-location/visual/shared-qml/ToolBar.qml
@@ -50,6 +50,8 @@ Item {
signal button3Clicked
Rectangle {
id: button1
+ border.color: 'black'
+ border.width: 1
anchors.left: parent.left; y: 3; width: parent.width/3; height: 32
Text {id: button1Text; text: button1Label; color: "black"}
MouseArea {
@@ -59,7 +61,9 @@ Item {
}
Rectangle {
id: button2
- anchors.left: button1.right; anchors.leftMargin: 5; y: 3; width: parent.width/3 - anchors.leftMargin; height: 32
+ border.color: 'black'
+ border.width: 1
+ anchors.left: button1.right; y: 3; anchors.leftMargin: -1; width: parent.width/3 - anchors.leftMargin; height: 32
Text {id: button2Text; text: button2Label; color: "black"}
MouseArea {
anchors.fill: parent
@@ -68,7 +72,9 @@ Item {
}
Rectangle {
id: button3
- anchors.left: button2.right; anchors.leftMargin: 5; y: 3; width: parent.width/3 - anchors.leftMargin; height: 32
+ border.color: 'black'
+ border.width: 1
+ anchors.left: button2.right; anchors.leftMargin: -1; y: 3; width: parent.width/3 - anchors.leftMargin; height: 32
Text {id: button3Text; text: button3Label; color: "black"}
MouseArea {
anchors.fill: parent
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.0.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.0.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.0.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.1.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.1.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.1.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.2.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.2.png
index 77fab83631..301eb4c700 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.2.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.3.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.3.png
index dabc987210..a3e606c0d5 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.3.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.4.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.4.png
index dabc987210..a3e606c0d5 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.4.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.5.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.5.png
index 77fab83631..301eb4c700 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.5.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.6.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.6.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.6.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.7.png b/tests/declarative-location/visual/test-map-image/data/map-image-test.7.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.7.png
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-image/data/map-image-test.qml b/tests/declarative-location/visual/test-map-image/data/map-image-test.qml
index 6b59d00c78..cb65817cd2 100644
--- a/tests/declarative-location/visual/test-map-image/data/map-image-test.qml
+++ b/tests/declarative-location/visual/test-map-image/data/map-image-test.qml
@@ -10,75 +10,75 @@ VisualTest {
}
Frame {
msec: 32
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 48
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 64
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 80
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 96
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 112
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 128
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 144
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 160
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 176
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 192
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 208
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 224
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 240
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 256
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 272
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 288
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 304
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -98,7 +98,7 @@ VisualTest {
}
Frame {
msec: 320
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -118,7 +118,7 @@ VisualTest {
}
Frame {
msec: 336
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -130,7 +130,7 @@ VisualTest {
}
Frame {
msec: 352
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -158,7 +158,7 @@ VisualTest {
}
Frame {
msec: 368
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -178,7 +178,7 @@ VisualTest {
}
Frame {
msec: 384
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -198,7 +198,7 @@ VisualTest {
}
Frame {
msec: 400
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -218,7 +218,7 @@ VisualTest {
}
Frame {
msec: 416
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -238,7 +238,7 @@ VisualTest {
}
Frame {
msec: 432
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -258,7 +258,7 @@ VisualTest {
}
Frame {
msec: 448
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -278,7 +278,7 @@ VisualTest {
}
Frame {
msec: 464
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -298,7 +298,7 @@ VisualTest {
}
Frame {
msec: 480
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -318,7 +318,7 @@ VisualTest {
}
Frame {
msec: 496
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -338,7 +338,7 @@ VisualTest {
}
Frame {
msec: 512
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -358,7 +358,7 @@ VisualTest {
}
Frame {
msec: 528
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -378,7 +378,7 @@ VisualTest {
}
Frame {
msec: 544
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -398,7 +398,7 @@ VisualTest {
}
Frame {
msec: 560
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -418,7 +418,7 @@ VisualTest {
}
Frame {
msec: 576
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -438,7 +438,7 @@ VisualTest {
}
Frame {
msec: 592
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -458,7 +458,7 @@ VisualTest {
}
Frame {
msec: 608
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -478,7 +478,7 @@ VisualTest {
}
Frame {
msec: 624
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -498,7 +498,7 @@ VisualTest {
}
Frame {
msec: 640
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -518,7 +518,7 @@ VisualTest {
}
Frame {
msec: 656
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -538,7 +538,7 @@ VisualTest {
}
Frame {
msec: 672
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -558,7 +558,7 @@ VisualTest {
}
Frame {
msec: 688
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -578,7 +578,7 @@ VisualTest {
}
Frame {
msec: 704
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -598,7 +598,7 @@ VisualTest {
}
Frame {
msec: 720
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -618,7 +618,7 @@ VisualTest {
}
Frame {
msec: 736
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -630,7 +630,7 @@ VisualTest {
}
Frame {
msec: 752
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -642,7 +642,7 @@ VisualTest {
}
Frame {
msec: 768
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -654,7 +654,7 @@ VisualTest {
}
Frame {
msec: 784
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -666,7 +666,7 @@ VisualTest {
}
Frame {
msec: 800
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -686,7 +686,7 @@ VisualTest {
}
Frame {
msec: 816
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -706,7 +706,7 @@ VisualTest {
}
Frame {
msec: 832
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -726,7 +726,7 @@ VisualTest {
}
Frame {
msec: 848
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -746,7 +746,7 @@ VisualTest {
}
Frame {
msec: 864
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -766,7 +766,7 @@ VisualTest {
}
Frame {
msec: 880
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -786,7 +786,7 @@ VisualTest {
}
Frame {
msec: 896
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -806,7 +806,7 @@ VisualTest {
}
Frame {
msec: 912
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -826,7 +826,7 @@ VisualTest {
}
Frame {
msec: 928
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -846,7 +846,7 @@ VisualTest {
}
Frame {
msec: 944
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -858,7 +858,7 @@ VisualTest {
}
Frame {
msec: 960
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -874,99 +874,99 @@ VisualTest {
}
Frame {
msec: 992
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1008
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1024
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1040
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1056
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1072
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1088
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1104
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1120
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1136
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1152
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1168
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1184
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1200
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1216
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1232
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1248
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1264
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1280
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1296
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1312
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1328
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1344
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1360
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 2
@@ -978,31 +978,31 @@ VisualTest {
}
Frame {
msec: 1376
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1392
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1408
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1424
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1440
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1456
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 1472
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 3
@@ -1014,115 +1014,115 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1504
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1520
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1536
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1552
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1568
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1584
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1600
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1616
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1632
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1648
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1664
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1680
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1696
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1712
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1728
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1744
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1760
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1776
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1792
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1808
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1824
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1840
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1856
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1872
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1888
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1904
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1920
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 1936
@@ -1138,7 +1138,7 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1158,7 +1158,7 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1178,7 +1178,7 @@ VisualTest {
}
Frame {
msec: 1984
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1198,7 +1198,7 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1210,7 +1210,7 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1230,11 +1230,11 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2048
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1246,15 +1246,15 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2080
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2096
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1266,7 +1266,7 @@ VisualTest {
}
Frame {
msec: 2112
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1286,7 +1286,7 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1306,7 +1306,7 @@ VisualTest {
}
Frame {
msec: 2144
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1326,7 +1326,7 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1346,7 +1346,7 @@ VisualTest {
}
Frame {
msec: 2176
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1366,7 +1366,7 @@ VisualTest {
}
Frame {
msec: 2192
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1386,7 +1386,7 @@ VisualTest {
}
Frame {
msec: 2208
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1406,7 +1406,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1426,7 +1426,7 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1446,7 +1446,7 @@ VisualTest {
}
Frame {
msec: 2256
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1466,7 +1466,7 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1486,7 +1486,7 @@ VisualTest {
}
Frame {
msec: 2288
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1498,7 +1498,7 @@ VisualTest {
}
Frame {
msec: 2304
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1518,7 +1518,7 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1538,7 +1538,7 @@ VisualTest {
}
Frame {
msec: 2336
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1550,7 +1550,7 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1562,7 +1562,7 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -1574,91 +1574,91 @@ VisualTest {
}
Frame {
msec: 2384
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2400
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2416
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2432
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2448
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2464
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2480
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2496
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2512
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2528
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2544
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2560
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2576
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2592
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2608
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2624
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2640
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2656
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2672
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2688
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2704
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2720
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 2
@@ -1670,27 +1670,27 @@ VisualTest {
}
Frame {
msec: 2736
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2752
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2768
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2784
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2800
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 2816
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 3
@@ -1702,19 +1702,19 @@ VisualTest {
}
Frame {
msec: 2832
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2848
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2864
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2880
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2896
@@ -1722,87 +1722,87 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2928
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2944
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2960
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2976
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 2992
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3008
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3024
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3040
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3056
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3072
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3088
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3104
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3120
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3136
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3152
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3168
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3184
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3200
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3216
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3232
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1822,7 +1822,7 @@ VisualTest {
}
Frame {
msec: 3248
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1842,7 +1842,7 @@ VisualTest {
}
Frame {
msec: 3264
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1862,7 +1862,7 @@ VisualTest {
}
Frame {
msec: 3280
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1882,7 +1882,7 @@ VisualTest {
}
Frame {
msec: 3296
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1902,7 +1902,7 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1922,7 +1922,7 @@ VisualTest {
}
Frame {
msec: 3328
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1934,11 +1934,11 @@ VisualTest {
}
Frame {
msec: 3344
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3360
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1950,7 +1950,7 @@ VisualTest {
}
Frame {
msec: 3376
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1978,7 +1978,7 @@ VisualTest {
}
Frame {
msec: 3392
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -1998,7 +1998,7 @@ VisualTest {
}
Frame {
msec: 3408
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2018,7 +2018,7 @@ VisualTest {
}
Frame {
msec: 3424
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2038,7 +2038,7 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2058,7 +2058,7 @@ VisualTest {
}
Frame {
msec: 3456
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2078,7 +2078,7 @@ VisualTest {
}
Frame {
msec: 3472
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2098,7 +2098,7 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2118,7 +2118,7 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2138,7 +2138,7 @@ VisualTest {
}
Frame {
msec: 3520
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 5
@@ -2150,83 +2150,83 @@ VisualTest {
}
Frame {
msec: 3536
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3552
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3568
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3584
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3600
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3616
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3632
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3648
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3664
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3680
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3696
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3712
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3728
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3744
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3760
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3776
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3792
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3808
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3824
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3840
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3856
@@ -2234,47 +2234,47 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3888
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3904
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3920
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3936
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3952
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3968
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 3984
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4000
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4016
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4032
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 2
@@ -2286,27 +2286,27 @@ VisualTest {
}
Frame {
msec: 4048
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4064
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4080
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4096
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4112
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Frame {
msec: 4128
- hash: "176c30992a3575d8cb12a8cd69da3ffa"
+ hash: "ce4e23660760aee77b4428abf7d46e19"
}
Mouse {
type: 3
@@ -2318,151 +2318,151 @@ VisualTest {
}
Frame {
msec: 4144
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4160
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4176
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4192
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4208
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4224
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4240
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4256
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4272
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4288
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4304
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4320
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4336
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4352
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4368
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4384
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4400
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4416
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4432
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4448
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4464
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4480
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4496
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4512
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4528
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4544
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4560
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4576
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4592
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4608
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4624
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4640
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4656
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4672
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4688
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4704
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 4720
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2474,7 +2474,7 @@ VisualTest {
}
Frame {
msec: 4736
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2502,7 +2502,7 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2522,7 +2522,7 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2542,7 +2542,7 @@ VisualTest {
}
Frame {
msec: 4784
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2562,7 +2562,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2602,7 +2602,7 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2622,7 +2622,7 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2642,7 +2642,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2662,7 +2662,7 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2682,7 +2682,7 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2702,7 +2702,7 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2714,7 +2714,7 @@ VisualTest {
}
Frame {
msec: 4928
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2726,7 +2726,7 @@ VisualTest {
}
Frame {
msec: 4944
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2746,7 +2746,7 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2758,7 +2758,7 @@ VisualTest {
}
Frame {
msec: 4976
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2778,7 +2778,7 @@ VisualTest {
}
Frame {
msec: 4992
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2790,7 +2790,7 @@ VisualTest {
}
Frame {
msec: 5008
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2810,7 +2810,7 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2822,7 +2822,7 @@ VisualTest {
}
Frame {
msec: 5040
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2850,7 +2850,7 @@ VisualTest {
}
Frame {
msec: 5056
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2870,7 +2870,7 @@ VisualTest {
}
Frame {
msec: 5072
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2882,11 +2882,11 @@ VisualTest {
}
Frame {
msec: 5088
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5104
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 5
@@ -2898,87 +2898,87 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5136
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5152
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5168
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5184
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5200
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5216
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5232
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5248
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5264
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5280
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5296
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5312
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5328
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5344
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5360
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5376
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5392
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5408
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5424
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5440
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 2
@@ -2990,31 +2990,31 @@ VisualTest {
}
Frame {
msec: 5456
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5472
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5488
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5504
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5520
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5536
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Frame {
msec: 5552
- hash: "2fd31a5f3b58c325807b7997987def59"
+ hash: "f9d9bf228927247e319bc267b2583219"
}
Mouse {
type: 3
@@ -3026,55 +3026,55 @@ VisualTest {
}
Frame {
msec: 5568
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5584
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5600
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5616
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5632
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5648
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5664
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5680
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5696
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5712
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5728
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5744
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5760
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5776
@@ -3082,35 +3082,35 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5808
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5824
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5840
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5856
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5872
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5888
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 5904
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3122,7 +3122,7 @@ VisualTest {
}
Frame {
msec: 5920
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3134,7 +3134,7 @@ VisualTest {
}
Frame {
msec: 5936
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3154,7 +3154,7 @@ VisualTest {
}
Frame {
msec: 5952
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3174,7 +3174,7 @@ VisualTest {
}
Frame {
msec: 5968
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3194,7 +3194,7 @@ VisualTest {
}
Frame {
msec: 5984
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3214,7 +3214,7 @@ VisualTest {
}
Frame {
msec: 6000
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3234,7 +3234,7 @@ VisualTest {
}
Frame {
msec: 6016
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3254,7 +3254,7 @@ VisualTest {
}
Frame {
msec: 6032
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3274,7 +3274,7 @@ VisualTest {
}
Frame {
msec: 6048
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3294,7 +3294,7 @@ VisualTest {
}
Frame {
msec: 6064
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3314,7 +3314,7 @@ VisualTest {
}
Frame {
msec: 6080
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3326,7 +3326,7 @@ VisualTest {
}
Frame {
msec: 6096
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3354,7 +3354,7 @@ VisualTest {
}
Frame {
msec: 6112
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3374,7 +3374,7 @@ VisualTest {
}
Frame {
msec: 6128
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3394,151 +3394,151 @@ VisualTest {
}
Frame {
msec: 6144
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6160
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6176
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6192
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6208
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6224
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6240
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6256
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6272
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6288
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6304
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6320
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6336
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6352
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6368
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6384
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6400
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6416
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6432
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6448
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6464
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6480
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6496
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6512
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6528
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6544
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6560
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6576
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6592
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6608
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6624
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6640
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6656
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6672
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6688
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6704
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6720
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6736
@@ -3546,34 +3546,34 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6768
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6784
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6800
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6816
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6832
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6848
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6864
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
}
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.0.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.0.png
index 80f919014f..1b541e0088 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.0.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.1.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.1.png
index 80f919014f..1b541e0088 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.1.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.10.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.10.png
index 80f919014f..1b541e0088 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.10.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.10.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.11.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.11.png
index af873d7e46..1caa296bbb 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.11.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.11.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.12.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.12.png
index af873d7e46..1caa296bbb 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.12.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.12.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.2.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.2.png
index 80f919014f..1b541e0088 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.2.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.3.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.3.png
index 80f919014f..1b541e0088 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.3.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.4.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.4.png
index af873d7e46..1caa296bbb 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.4.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.5.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.5.png
index 104f643431..568888714f 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.5.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.6.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.6.png
index 5034a6828b..195cb5e4e6 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.6.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.7.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.7.png
index 104f643431..568888714f 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.7.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.8.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.8.png
index af873d7e46..1caa296bbb 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.8.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.8.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.9.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.9.png
index 80f919014f..1b541e0088 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.9.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.9.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.qml b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.qml
index d3b628d0c1..b85d276801 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.qml
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-accurate-click-test.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 48
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 64
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 80
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 96
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 112
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 128
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 144
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 160
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 176
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 192
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 208
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 224
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 240
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 256
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 272
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 288
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 304
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 320
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 336
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 352
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 368
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 384
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 400
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 416
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 432
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 448
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 464
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 480
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 496
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 512
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 528
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 544
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 560
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 576
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 592
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 608
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 624
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 640
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 656
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 672
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 688
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 704
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 720
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 736
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 752
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 768
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 784
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 800
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 816
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 832
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 848
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 864
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 880
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 896
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 912
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 928
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 944
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 960
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 976
@@ -250,107 +250,107 @@ VisualTest {
}
Frame {
msec: 992
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1008
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1024
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1040
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1056
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1072
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1088
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1104
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1120
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1136
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1152
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1168
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1184
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1200
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1216
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1232
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1248
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1264
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1280
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1296
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1312
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1328
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1344
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1360
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1376
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1392
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -370,7 +370,7 @@ VisualTest {
}
Frame {
msec: 1408
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -390,7 +390,7 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -410,7 +410,7 @@ VisualTest {
}
Frame {
msec: 1440
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -430,7 +430,7 @@ VisualTest {
}
Frame {
msec: 1456
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -450,7 +450,7 @@ VisualTest {
}
Frame {
msec: 1472
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -470,7 +470,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -490,7 +490,7 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -510,7 +510,7 @@ VisualTest {
}
Frame {
msec: 1520
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -530,7 +530,7 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -550,7 +550,7 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -570,7 +570,7 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -590,7 +590,7 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -610,7 +610,7 @@ VisualTest {
}
Frame {
msec: 1600
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -630,7 +630,7 @@ VisualTest {
}
Frame {
msec: 1616
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -650,7 +650,7 @@ VisualTest {
}
Frame {
msec: 1632
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -670,7 +670,7 @@ VisualTest {
}
Frame {
msec: 1648
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -690,7 +690,7 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -702,7 +702,7 @@ VisualTest {
}
Frame {
msec: 1680
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -714,11 +714,11 @@ VisualTest {
}
Frame {
msec: 1696
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1712
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -730,7 +730,7 @@ VisualTest {
}
Frame {
msec: 1728
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -742,31 +742,31 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1760
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1776
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1792
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1808
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1824
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1840
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -786,7 +786,7 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -806,7 +806,7 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -818,11 +818,11 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1904
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -834,7 +834,7 @@ VisualTest {
}
Frame {
msec: 1920
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -850,11 +850,11 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 1968
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -874,7 +874,7 @@ VisualTest {
}
Frame {
msec: 1984
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -894,7 +894,7 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -914,11 +914,11 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2032
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -930,95 +930,95 @@ VisualTest {
}
Frame {
msec: 2048
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2064
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2080
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2096
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2112
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2128
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2144
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2160
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2176
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2192
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2208
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2224
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2240
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2256
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2272
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2288
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2304
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2320
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2336
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2352
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2368
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2384
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2400
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1030,23 +1030,23 @@ VisualTest {
}
Frame {
msec: 2416
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2432
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2448
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2464
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2480
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1066,7 +1066,7 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1086,7 +1086,7 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1098,15 +1098,15 @@ VisualTest {
}
Frame {
msec: 2528
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2544
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2560
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1118,7 +1118,7 @@ VisualTest {
}
Frame {
msec: 2576
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1138,7 +1138,7 @@ VisualTest {
}
Frame {
msec: 2592
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1150,35 +1150,35 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2624
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2640
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2656
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2672
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2688
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2704
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2720
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1190,11 +1190,11 @@ VisualTest {
}
Frame {
msec: 2736
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2752
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1206,15 +1206,15 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2784
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2800
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1226,15 +1226,15 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2832
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2848
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -1246,11 +1246,11 @@ VisualTest {
}
Frame {
msec: 2864
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2880
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2896
@@ -1258,87 +1258,87 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2928
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2944
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2960
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2976
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 2992
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3008
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3024
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3040
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3056
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3072
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3088
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3104
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3120
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3136
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3152
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3168
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3184
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3200
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3216
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3232
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 2
@@ -1350,31 +1350,31 @@ VisualTest {
}
Frame {
msec: 3248
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3264
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3280
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3296
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3312
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3328
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 3344
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 3
@@ -1386,71 +1386,71 @@ VisualTest {
}
Frame {
msec: 3360
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3376
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3392
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3408
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3424
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3440
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3456
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3472
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3488
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3504
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3520
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3536
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3552
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3568
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3584
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3600
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3616
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -1470,7 +1470,7 @@ VisualTest {
}
Frame {
msec: 3632
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -1490,7 +1490,7 @@ VisualTest {
}
Frame {
msec: 3648
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -1510,51 +1510,51 @@ VisualTest {
}
Frame {
msec: 3664
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3680
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3696
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3712
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3728
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3744
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3760
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3776
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3792
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3808
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3824
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3840
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3856
@@ -1562,35 +1562,35 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3888
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3904
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3920
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3936
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3952
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3968
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 3984
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 2
@@ -1602,27 +1602,27 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 4016
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 4032
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 4048
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 4064
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 4080
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 3
@@ -1634,27 +1634,27 @@ VisualTest {
}
Frame {
msec: 4096
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4112
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4128
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4144
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4160
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4176
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1674,7 +1674,7 @@ VisualTest {
}
Frame {
msec: 4192
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1694,7 +1694,7 @@ VisualTest {
}
Frame {
msec: 4208
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1714,7 +1714,7 @@ VisualTest {
}
Frame {
msec: 4224
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1734,7 +1734,7 @@ VisualTest {
}
Frame {
msec: 4240
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1754,7 +1754,7 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1766,11 +1766,11 @@ VisualTest {
}
Frame {
msec: 4272
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4288
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1782,7 +1782,7 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1802,7 +1802,7 @@ VisualTest {
}
Frame {
msec: 4320
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1822,7 +1822,7 @@ VisualTest {
}
Frame {
msec: 4336
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1842,7 +1842,7 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1862,7 +1862,7 @@ VisualTest {
}
Frame {
msec: 4368
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1882,7 +1882,7 @@ VisualTest {
}
Frame {
msec: 4384
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1902,7 +1902,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1922,7 +1922,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1942,7 +1942,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1962,7 +1962,7 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -1982,7 +1982,7 @@ VisualTest {
}
Frame {
msec: 4464
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2002,7 +2002,7 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2022,7 +2022,7 @@ VisualTest {
}
Frame {
msec: 4496
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2042,7 +2042,7 @@ VisualTest {
}
Frame {
msec: 4512
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2054,15 +2054,15 @@ VisualTest {
}
Frame {
msec: 4528
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4544
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4560
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2082,7 +2082,7 @@ VisualTest {
}
Frame {
msec: 4576
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2102,7 +2102,7 @@ VisualTest {
}
Frame {
msec: 4592
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2122,7 +2122,7 @@ VisualTest {
}
Frame {
msec: 4608
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2142,7 +2142,7 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2154,31 +2154,31 @@ VisualTest {
}
Frame {
msec: 4640
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4656
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4672
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4688
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4704
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4720
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4736
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2198,7 +2198,7 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2218,7 +2218,7 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2230,11 +2230,11 @@ VisualTest {
}
Frame {
msec: 4784
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4800
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4816
@@ -2242,23 +2242,23 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4848
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4864
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4880
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4896
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2278,7 +2278,7 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2298,7 +2298,7 @@ VisualTest {
}
Frame {
msec: 4928
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2310,7 +2310,7 @@ VisualTest {
}
Frame {
msec: 4944
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -2322,19 +2322,19 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4976
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 4992
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 5008
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 3
@@ -2346,19 +2346,19 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5040
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5056
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5072
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2370,7 +2370,7 @@ VisualTest {
}
Frame {
msec: 5088
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2382,7 +2382,7 @@ VisualTest {
}
Frame {
msec: 5104
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2394,7 +2394,7 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2406,7 +2406,7 @@ VisualTest {
}
Frame {
msec: 5136
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2426,7 +2426,7 @@ VisualTest {
}
Frame {
msec: 5152
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2438,27 +2438,27 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5184
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5200
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5216
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5232
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5248
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2478,7 +2478,7 @@ VisualTest {
}
Frame {
msec: 5264
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2498,7 +2498,7 @@ VisualTest {
}
Frame {
msec: 5280
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2518,7 +2518,7 @@ VisualTest {
}
Frame {
msec: 5296
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2538,7 +2538,7 @@ VisualTest {
}
Frame {
msec: 5312
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2558,7 +2558,7 @@ VisualTest {
}
Frame {
msec: 5328
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2578,7 +2578,7 @@ VisualTest {
}
Frame {
msec: 5344
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2598,7 +2598,7 @@ VisualTest {
}
Frame {
msec: 5360
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2618,7 +2618,7 @@ VisualTest {
}
Frame {
msec: 5376
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2630,7 +2630,7 @@ VisualTest {
}
Frame {
msec: 5392
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2642,7 +2642,7 @@ VisualTest {
}
Frame {
msec: 5408
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2654,11 +2654,11 @@ VisualTest {
}
Frame {
msec: 5424
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5440
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2670,39 +2670,39 @@ VisualTest {
}
Frame {
msec: 5456
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5472
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5488
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5504
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5520
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5536
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5552
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5568
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5584
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2714,7 +2714,7 @@ VisualTest {
}
Frame {
msec: 5600
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2734,7 +2734,7 @@ VisualTest {
}
Frame {
msec: 5616
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2754,7 +2754,7 @@ VisualTest {
}
Frame {
msec: 5632
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2774,7 +2774,7 @@ VisualTest {
}
Frame {
msec: 5648
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2794,7 +2794,7 @@ VisualTest {
}
Frame {
msec: 5664
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2814,7 +2814,7 @@ VisualTest {
}
Frame {
msec: 5680
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2834,19 +2834,19 @@ VisualTest {
}
Frame {
msec: 5696
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5712
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5728
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5744
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2858,7 +2858,7 @@ VisualTest {
}
Frame {
msec: 5760
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5776
@@ -2866,39 +2866,39 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5808
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5824
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5840
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5856
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5872
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5888
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5904
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 5920
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2910,7 +2910,7 @@ VisualTest {
}
Frame {
msec: 5936
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2930,7 +2930,7 @@ VisualTest {
}
Frame {
msec: 5952
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2950,7 +2950,7 @@ VisualTest {
}
Frame {
msec: 5968
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2962,7 +2962,7 @@ VisualTest {
}
Frame {
msec: 5984
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2974,7 +2974,7 @@ VisualTest {
}
Frame {
msec: 6000
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 5
@@ -2986,95 +2986,95 @@ VisualTest {
}
Frame {
msec: 6016
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6032
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6048
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6064
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6080
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6096
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6112
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6128
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6144
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6160
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6176
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6192
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6208
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6224
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6240
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6256
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6272
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6288
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6304
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6320
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6336
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6352
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6368
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 2
@@ -3086,27 +3086,27 @@ VisualTest {
}
Frame {
msec: 6384
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6400
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6416
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6432
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6448
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Frame {
msec: 6464
- hash: "f643ede750b0de7ae0e5eec0bf3538b1"
+ hash: "8bcd5868672f1166cf3df90ba8011425"
}
Mouse {
type: 3
@@ -3118,35 +3118,35 @@ VisualTest {
}
Frame {
msec: 6480
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6496
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6512
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6528
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6544
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6560
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6576
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6592
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -3158,7 +3158,7 @@ VisualTest {
}
Frame {
msec: 6608
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -3170,7 +3170,7 @@ VisualTest {
}
Frame {
msec: 6624
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -3190,7 +3190,7 @@ VisualTest {
}
Frame {
msec: 6640
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -3202,15 +3202,15 @@ VisualTest {
}
Frame {
msec: 6656
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6672
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6688
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -3222,11 +3222,11 @@ VisualTest {
}
Frame {
msec: 6704
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6720
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -3242,19 +3242,19 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6768
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6784
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6800
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 5
@@ -3266,83 +3266,83 @@ VisualTest {
}
Frame {
msec: 6816
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6832
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6848
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6864
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6880
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6896
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6912
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6928
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6944
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6960
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6976
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 6992
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7008
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7024
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7040
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7056
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7072
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7088
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7104
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7120
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 2
@@ -3354,35 +3354,35 @@ VisualTest {
}
Frame {
msec: 7136
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7152
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7168
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7184
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7200
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7216
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7232
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Frame {
msec: 7248
- hash: "9b68d856a3a54ad94a8559b94225e1d8"
+ hash: "e6479826ddb4e90a5f6a2ba53ac2354d"
}
Mouse {
type: 3
@@ -3394,47 +3394,47 @@ VisualTest {
}
Frame {
msec: 7264
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7280
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7296
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7312
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7328
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7344
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7360
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7376
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7392
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7408
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7424
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -3446,7 +3446,7 @@ VisualTest {
}
Frame {
msec: 7440
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -3466,7 +3466,7 @@ VisualTest {
}
Frame {
msec: 7456
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -3486,7 +3486,7 @@ VisualTest {
}
Frame {
msec: 7472
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -3506,7 +3506,7 @@ VisualTest {
}
Frame {
msec: 7488
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -3518,51 +3518,51 @@ VisualTest {
}
Frame {
msec: 7504
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7520
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7536
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7552
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7568
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7584
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7600
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7616
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7632
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7648
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7664
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7680
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7696
@@ -3570,51 +3570,51 @@ VisualTest {
}
Frame {
msec: 7712
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7728
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7744
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7760
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7776
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7792
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7808
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7824
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7840
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7856
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7872
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7888
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 2
@@ -3626,23 +3626,23 @@ VisualTest {
}
Frame {
msec: 7904
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7920
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7936
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7952
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 7968
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 3
@@ -3654,15 +3654,15 @@ VisualTest {
}
Frame {
msec: 7984
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8000
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8016
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3674,51 +3674,51 @@ VisualTest {
}
Frame {
msec: 8032
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8048
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8064
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8080
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8096
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8112
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8128
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8144
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8160
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8176
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8192
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8208
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3730,7 +3730,7 @@ VisualTest {
}
Frame {
msec: 8224
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3750,7 +3750,7 @@ VisualTest {
}
Frame {
msec: 8240
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3762,7 +3762,7 @@ VisualTest {
}
Frame {
msec: 8256
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3782,7 +3782,7 @@ VisualTest {
}
Frame {
msec: 8272
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3802,7 +3802,7 @@ VisualTest {
}
Frame {
msec: 8288
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3822,7 +3822,7 @@ VisualTest {
}
Frame {
msec: 8304
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3842,7 +3842,7 @@ VisualTest {
}
Frame {
msec: 8320
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3862,19 +3862,19 @@ VisualTest {
}
Frame {
msec: 8336
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8352
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8368
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8384
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3886,7 +3886,7 @@ VisualTest {
}
Frame {
msec: 8400
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3898,7 +3898,7 @@ VisualTest {
}
Frame {
msec: 8416
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3918,7 +3918,7 @@ VisualTest {
}
Frame {
msec: 8432
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3938,7 +3938,7 @@ VisualTest {
}
Frame {
msec: 8448
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3958,7 +3958,7 @@ VisualTest {
}
Frame {
msec: 8464
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3970,7 +3970,7 @@ VisualTest {
}
Frame {
msec: 8480
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -3990,7 +3990,7 @@ VisualTest {
}
Frame {
msec: 8496
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4002,31 +4002,31 @@ VisualTest {
}
Frame {
msec: 8512
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8528
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8544
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8560
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8576
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8592
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8608
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4038,11 +4038,11 @@ VisualTest {
}
Frame {
msec: 8624
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8640
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8656
@@ -4058,7 +4058,7 @@ VisualTest {
}
Frame {
msec: 8672
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4078,7 +4078,7 @@ VisualTest {
}
Frame {
msec: 8688
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4098,7 +4098,7 @@ VisualTest {
}
Frame {
msec: 8704
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4118,7 +4118,7 @@ VisualTest {
}
Frame {
msec: 8720
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4138,7 +4138,7 @@ VisualTest {
}
Frame {
msec: 8736
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4150,83 +4150,83 @@ VisualTest {
}
Frame {
msec: 8752
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8768
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8784
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8800
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8816
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8832
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8848
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8864
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8880
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8896
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8912
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8928
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8944
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8960
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8976
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 8992
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9008
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9024
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9040
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9056
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4246,7 +4246,7 @@ VisualTest {
}
Frame {
msec: 9072
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4266,7 +4266,7 @@ VisualTest {
}
Frame {
msec: 9088
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4286,7 +4286,7 @@ VisualTest {
}
Frame {
msec: 9104
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4306,7 +4306,7 @@ VisualTest {
}
Frame {
msec: 9120
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4326,7 +4326,7 @@ VisualTest {
}
Frame {
msec: 9136
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4346,7 +4346,7 @@ VisualTest {
}
Frame {
msec: 9152
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4358,7 +4358,7 @@ VisualTest {
}
Frame {
msec: 9168
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 5
@@ -4370,95 +4370,95 @@ VisualTest {
}
Frame {
msec: 9184
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9200
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9216
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9232
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9248
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9264
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9280
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9296
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9312
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9328
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9344
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9360
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9376
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9392
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9408
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9424
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9440
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9456
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9472
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9488
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9504
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9520
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9536
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Mouse {
type: 2
@@ -4470,19 +4470,19 @@ VisualTest {
}
Frame {
msec: 9552
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9568
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9584
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9600
- hash: "87d544c7d7a665e5230f246d73c0da80"
+ hash: "670a880eb65ede75edfdb583094d2168"
}
Frame {
msec: 9616
@@ -4498,27 +4498,27 @@ VisualTest {
}
Frame {
msec: 9632
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9648
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9664
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9680
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9696
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9712
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4538,7 +4538,7 @@ VisualTest {
}
Frame {
msec: 9728
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4558,7 +4558,7 @@ VisualTest {
}
Frame {
msec: 9744
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4578,7 +4578,7 @@ VisualTest {
}
Frame {
msec: 9760
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4590,11 +4590,11 @@ VisualTest {
}
Frame {
msec: 9776
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9792
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4606,67 +4606,67 @@ VisualTest {
}
Frame {
msec: 9808
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9824
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9840
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9856
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9872
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9888
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9904
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9920
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9936
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9952
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9968
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 9984
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10000
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10016
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10032
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10048
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4686,7 +4686,7 @@ VisualTest {
}
Frame {
msec: 10064
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4706,7 +4706,7 @@ VisualTest {
}
Frame {
msec: 10080
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4726,7 +4726,7 @@ VisualTest {
}
Frame {
msec: 10096
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4746,7 +4746,7 @@ VisualTest {
}
Frame {
msec: 10112
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4766,7 +4766,7 @@ VisualTest {
}
Frame {
msec: 10128
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4786,7 +4786,7 @@ VisualTest {
}
Frame {
msec: 10144
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4806,7 +4806,7 @@ VisualTest {
}
Frame {
msec: 10160
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4826,7 +4826,7 @@ VisualTest {
}
Frame {
msec: 10176
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4846,7 +4846,7 @@ VisualTest {
}
Frame {
msec: 10192
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4866,7 +4866,7 @@ VisualTest {
}
Frame {
msec: 10208
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4886,7 +4886,7 @@ VisualTest {
}
Frame {
msec: 10224
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4898,11 +4898,11 @@ VisualTest {
}
Frame {
msec: 10240
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10256
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4914,15 +4914,15 @@ VisualTest {
}
Frame {
msec: 10272
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10288
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10304
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4934,7 +4934,7 @@ VisualTest {
}
Frame {
msec: 10320
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4946,7 +4946,7 @@ VisualTest {
}
Frame {
msec: 10336
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4958,7 +4958,7 @@ VisualTest {
}
Frame {
msec: 10352
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4970,11 +4970,11 @@ VisualTest {
}
Frame {
msec: 10368
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10384
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -4986,7 +4986,7 @@ VisualTest {
}
Frame {
msec: 10400
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5006,7 +5006,7 @@ VisualTest {
}
Frame {
msec: 10416
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5026,7 +5026,7 @@ VisualTest {
}
Frame {
msec: 10432
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5046,7 +5046,7 @@ VisualTest {
}
Frame {
msec: 10448
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5066,7 +5066,7 @@ VisualTest {
}
Frame {
msec: 10464
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5086,7 +5086,7 @@ VisualTest {
}
Frame {
msec: 10480
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5106,7 +5106,7 @@ VisualTest {
}
Frame {
msec: 10496
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5126,7 +5126,7 @@ VisualTest {
}
Frame {
msec: 10512
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5146,7 +5146,7 @@ VisualTest {
}
Frame {
msec: 10528
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5166,7 +5166,7 @@ VisualTest {
}
Frame {
msec: 10544
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5186,7 +5186,7 @@ VisualTest {
}
Frame {
msec: 10560
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5226,7 +5226,7 @@ VisualTest {
}
Frame {
msec: 10592
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5246,7 +5246,7 @@ VisualTest {
}
Frame {
msec: 10608
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5266,7 +5266,7 @@ VisualTest {
}
Frame {
msec: 10624
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5286,7 +5286,7 @@ VisualTest {
}
Frame {
msec: 10640
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5306,7 +5306,7 @@ VisualTest {
}
Frame {
msec: 10656
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Mouse {
type: 5
@@ -5318,219 +5318,219 @@ VisualTest {
}
Frame {
msec: 10672
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10688
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10704
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10720
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10736
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10752
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10768
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10784
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10800
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10816
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10832
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10848
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10864
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10880
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10896
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10912
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10928
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10944
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10960
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10976
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 10992
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11008
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11024
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11040
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11056
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11072
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11088
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11104
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11120
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11136
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11152
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11168
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11184
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11200
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11216
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11232
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11248
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11264
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11280
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11296
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11312
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11328
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11344
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11360
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11376
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11392
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11408
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11424
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11440
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11456
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11472
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11488
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11504
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11520
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11536
@@ -5538,42 +5538,42 @@ VisualTest {
}
Frame {
msec: 11552
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11568
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11584
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11600
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11616
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11632
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11648
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11664
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11680
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
Frame {
msec: 11696
- hash: "097a09e4ab060df41c69cee9b20151b1"
+ hash: "3fac21dc8ff6809538b9e313a8972859"
}
}
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.0.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.0.png
index 1bd8f7e9b9..6c507a1bd2 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.0.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.1.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.1.png
index 1bd8f7e9b9..6c507a1bd2 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.1.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.10.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.10.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.10.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.10.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.11.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.11.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.11.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.11.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.12.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.12.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.12.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.12.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.13.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.13.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.13.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.13.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.14.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.14.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.14.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.14.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.2.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.2.png
index a1952d2f98..2d11a2d80a 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.2.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.3.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.3.png
index a1952d2f98..2d11a2d80a 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.3.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.4.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.4.png
index a1952d2f98..2d11a2d80a 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.4.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.5.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.5.png
index aa92c5ebe3..7de62a4bad 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.5.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.6.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.6.png
index aa92c5ebe3..7de62a4bad 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.6.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.7.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.7.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.7.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.8.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.8.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.8.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.8.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.9.png b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.9.png
index 3977489132..66fa50e932 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.9.png
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.9.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.qml b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.qml
index a397aa0b31..864271845a 100644
--- a/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.qml
+++ b/tests/declarative-location/visual/test-map-mouse/data/mouse-click-test.qml
@@ -10,143 +10,143 @@ VisualTest {
}
Frame {
msec: 32
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 48
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 64
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 80
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 96
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 112
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 128
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 144
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 160
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 176
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 192
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 208
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 224
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 240
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 256
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 272
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 288
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 304
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 320
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 336
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 352
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 368
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 384
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 400
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 416
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 432
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 448
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 464
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 480
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 496
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 512
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 528
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 544
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 560
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 576
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -174,7 +174,7 @@ VisualTest {
}
Frame {
msec: 592
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -194,7 +194,7 @@ VisualTest {
}
Frame {
msec: 608
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -214,7 +214,7 @@ VisualTest {
}
Frame {
msec: 624
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -234,7 +234,7 @@ VisualTest {
}
Frame {
msec: 640
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -254,7 +254,7 @@ VisualTest {
}
Frame {
msec: 656
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -274,7 +274,7 @@ VisualTest {
}
Frame {
msec: 672
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -294,7 +294,7 @@ VisualTest {
}
Frame {
msec: 688
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -314,7 +314,7 @@ VisualTest {
}
Frame {
msec: 704
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -334,7 +334,7 @@ VisualTest {
}
Frame {
msec: 720
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -354,7 +354,7 @@ VisualTest {
}
Frame {
msec: 736
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -374,11 +374,11 @@ VisualTest {
}
Frame {
msec: 752
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 768
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -390,31 +390,31 @@ VisualTest {
}
Frame {
msec: 784
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 800
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 816
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 832
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 848
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 864
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 880
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -426,7 +426,7 @@ VisualTest {
}
Frame {
msec: 896
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -446,7 +446,7 @@ VisualTest {
}
Frame {
msec: 912
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -458,7 +458,7 @@ VisualTest {
}
Frame {
msec: 928
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -478,11 +478,11 @@ VisualTest {
}
Frame {
msec: 944
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 960
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 976
@@ -498,11 +498,11 @@ VisualTest {
}
Frame {
msec: 992
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1008
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -514,7 +514,7 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -526,7 +526,7 @@ VisualTest {
}
Frame {
msec: 1040
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 5
@@ -538,151 +538,151 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1072
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1088
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1104
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1120
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1136
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1152
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1168
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1184
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1200
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1216
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1232
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1248
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1264
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1280
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1296
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1312
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1328
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1344
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1360
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1376
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1392
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1408
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1424
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1440
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1456
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1472
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1488
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1504
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1520
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1536
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1552
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1568
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1584
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1600
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1616
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1632
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 2
@@ -694,27 +694,27 @@ VisualTest {
}
Frame {
msec: 1648
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1664
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1680
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1696
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1712
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Frame {
msec: 1728
- hash: "e31f1a366a18c0701914293b8e170932"
+ hash: "34e29ae41e0ce3a8e8cfbfb11168b9d2"
}
Mouse {
type: 3
@@ -726,51 +726,51 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1760
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1776
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1792
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1808
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1824
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1840
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1856
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1872
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1888
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1904
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1920
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1936
@@ -778,19 +778,19 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1968
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 1984
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2000
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -802,7 +802,7 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -822,7 +822,7 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -842,7 +842,7 @@ VisualTest {
}
Frame {
msec: 2048
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -862,7 +862,7 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -882,7 +882,7 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -902,7 +902,7 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -922,7 +922,7 @@ VisualTest {
}
Frame {
msec: 2112
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -942,7 +942,7 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -962,7 +962,7 @@ VisualTest {
}
Frame {
msec: 2144
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -982,7 +982,7 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1002,7 +1002,7 @@ VisualTest {
}
Frame {
msec: 2176
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1022,7 +1022,7 @@ VisualTest {
}
Frame {
msec: 2192
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1042,7 +1042,7 @@ VisualTest {
}
Frame {
msec: 2208
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1062,7 +1062,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1082,7 +1082,7 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1102,7 +1102,7 @@ VisualTest {
}
Frame {
msec: 2256
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1122,7 +1122,7 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1142,7 +1142,7 @@ VisualTest {
}
Frame {
msec: 2288
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1162,7 +1162,7 @@ VisualTest {
}
Frame {
msec: 2304
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1182,7 +1182,7 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1202,7 +1202,7 @@ VisualTest {
}
Frame {
msec: 2336
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1222,7 +1222,7 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1242,7 +1242,7 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1262,7 +1262,7 @@ VisualTest {
}
Frame {
msec: 2384
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1282,7 +1282,7 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1294,7 +1294,7 @@ VisualTest {
}
Frame {
msec: 2416
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1314,7 +1314,7 @@ VisualTest {
}
Frame {
msec: 2432
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1334,7 +1334,7 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1346,7 +1346,7 @@ VisualTest {
}
Frame {
msec: 2464
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1366,7 +1366,7 @@ VisualTest {
}
Frame {
msec: 2480
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1386,7 +1386,7 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1406,7 +1406,7 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1426,7 +1426,7 @@ VisualTest {
}
Frame {
msec: 2528
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1446,7 +1446,7 @@ VisualTest {
}
Frame {
msec: 2544
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1458,7 +1458,7 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 5
@@ -1470,83 +1470,83 @@ VisualTest {
}
Frame {
msec: 2576
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2592
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2608
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2624
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2640
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2656
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2672
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2688
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2704
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2720
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2736
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2752
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2768
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2784
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2800
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2816
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2832
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2848
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2864
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2880
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2896
@@ -1554,71 +1554,71 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2928
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2944
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2960
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2976
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 2992
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3008
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3024
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3040
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3056
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3072
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3088
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3104
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3120
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3136
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3152
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3168
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 2
@@ -1630,35 +1630,35 @@ VisualTest {
}
Frame {
msec: 3184
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3200
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3216
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3232
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3248
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3264
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3280
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3296
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 3
@@ -1670,139 +1670,139 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3328
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3344
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3360
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3376
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3392
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3408
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3424
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3440
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3456
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3472
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3488
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3504
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3520
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3536
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3552
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3568
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3584
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3600
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3616
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3632
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3648
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3664
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3680
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3696
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3712
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3728
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3744
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3760
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3776
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3792
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3808
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3824
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3840
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3856
@@ -1810,155 +1810,155 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3888
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3904
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3920
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3936
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3952
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3968
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 3984
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4000
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4016
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4032
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4048
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4064
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4080
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4096
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4112
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4128
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4144
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4160
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4176
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4192
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4208
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4224
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4240
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4256
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4272
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4288
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4304
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4320
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4336
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4352
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4368
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4384
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4400
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4416
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4432
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4448
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4464
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 2
@@ -1970,27 +1970,27 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4496
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4512
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4528
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4544
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4560
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 3
@@ -2002,31 +2002,31 @@ VisualTest {
}
Frame {
msec: 4576
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4592
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4608
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4624
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4640
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4656
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Frame {
msec: 4672
- hash: "8e5b1d825d0394604feca5f174376c77"
+ hash: "ee2ba606c498c17ba467aa07e7fa202c"
}
Mouse {
type: 4
@@ -2038,23 +2038,23 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4704
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4720
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4736
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4752
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 3
@@ -2066,15 +2066,15 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4784
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4800
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4816
@@ -2082,71 +2082,71 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4848
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4864
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4880
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4896
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4912
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4928
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4944
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4960
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4976
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 4992
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5008
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5024
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5040
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5056
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5072
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5088
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2166,7 +2166,7 @@ VisualTest {
}
Frame {
msec: 5104
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2186,7 +2186,7 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2206,7 +2206,7 @@ VisualTest {
}
Frame {
msec: 5136
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2226,7 +2226,7 @@ VisualTest {
}
Frame {
msec: 5152
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2246,7 +2246,7 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2266,7 +2266,7 @@ VisualTest {
}
Frame {
msec: 5184
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2286,7 +2286,7 @@ VisualTest {
}
Frame {
msec: 5200
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2306,7 +2306,7 @@ VisualTest {
}
Frame {
msec: 5216
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2326,7 +2326,7 @@ VisualTest {
}
Frame {
msec: 5232
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2346,7 +2346,7 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2366,7 +2366,7 @@ VisualTest {
}
Frame {
msec: 5264
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2386,7 +2386,7 @@ VisualTest {
}
Frame {
msec: 5280
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2406,7 +2406,7 @@ VisualTest {
}
Frame {
msec: 5296
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2426,7 +2426,7 @@ VisualTest {
}
Frame {
msec: 5312
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2446,7 +2446,7 @@ VisualTest {
}
Frame {
msec: 5328
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2466,7 +2466,7 @@ VisualTest {
}
Frame {
msec: 5344
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2486,7 +2486,7 @@ VisualTest {
}
Frame {
msec: 5360
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2498,31 +2498,31 @@ VisualTest {
}
Frame {
msec: 5376
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5392
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5408
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5424
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5440
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5456
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5472
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2534,7 +2534,7 @@ VisualTest {
}
Frame {
msec: 5488
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2546,7 +2546,7 @@ VisualTest {
}
Frame {
msec: 5504
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2558,7 +2558,7 @@ VisualTest {
}
Frame {
msec: 5520
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2570,7 +2570,7 @@ VisualTest {
}
Frame {
msec: 5536
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2590,7 +2590,7 @@ VisualTest {
}
Frame {
msec: 5552
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2610,7 +2610,7 @@ VisualTest {
}
Frame {
msec: 5568
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2630,7 +2630,7 @@ VisualTest {
}
Frame {
msec: 5584
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2642,7 +2642,7 @@ VisualTest {
}
Frame {
msec: 5600
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2654,7 +2654,7 @@ VisualTest {
}
Frame {
msec: 5616
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2666,7 +2666,7 @@ VisualTest {
}
Frame {
msec: 5632
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2678,7 +2678,7 @@ VisualTest {
}
Frame {
msec: 5648
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2698,7 +2698,7 @@ VisualTest {
}
Frame {
msec: 5664
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2710,11 +2710,11 @@ VisualTest {
}
Frame {
msec: 5680
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5696
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2726,15 +2726,15 @@ VisualTest {
}
Frame {
msec: 5712
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5728
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5744
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2746,7 +2746,7 @@ VisualTest {
}
Frame {
msec: 5760
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5776
@@ -2762,7 +2762,7 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 5
@@ -2782,115 +2782,115 @@ VisualTest {
}
Frame {
msec: 5808
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5824
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5840
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5856
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5872
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5888
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5904
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5920
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5936
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5952
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5968
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 5984
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6000
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6016
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6032
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6048
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6064
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6080
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6096
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6112
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6128
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6144
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6160
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6176
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6192
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6208
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6224
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6240
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 2
@@ -2902,27 +2902,27 @@ VisualTest {
}
Frame {
msec: 6256
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6272
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6288
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6304
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6320
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Frame {
msec: 6336
- hash: "f0cf4cf26a7d76250667e3380d332ce0"
+ hash: "52a14943c8331312e3a3c83885ea09e4"
}
Mouse {
type: 3
@@ -2934,87 +2934,87 @@ VisualTest {
}
Frame {
msec: 6352
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6368
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6384
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6400
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6416
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6432
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6448
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6464
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6480
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6496
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6512
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6528
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6544
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6560
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6576
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6592
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6608
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6624
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6640
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6656
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6672
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3034,7 +3034,7 @@ VisualTest {
}
Frame {
msec: 6688
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3054,7 +3054,7 @@ VisualTest {
}
Frame {
msec: 6704
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3074,7 +3074,7 @@ VisualTest {
}
Frame {
msec: 6720
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3114,7 +3114,7 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3134,7 +3134,7 @@ VisualTest {
}
Frame {
msec: 6768
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3154,7 +3154,7 @@ VisualTest {
}
Frame {
msec: 6784
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3174,147 +3174,147 @@ VisualTest {
}
Frame {
msec: 6800
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6816
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6832
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6848
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6864
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6880
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6896
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6912
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6928
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6944
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6960
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6976
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 6992
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7008
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7024
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7040
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7056
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7072
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7088
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7104
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7120
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7136
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7152
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7168
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7184
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7200
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7216
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7232
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7248
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7264
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7280
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7296
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7312
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7328
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7344
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7360
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 2
@@ -3326,35 +3326,35 @@ VisualTest {
}
Frame {
msec: 7376
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7392
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7408
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7424
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7440
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7456
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7472
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7488
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 3
@@ -3366,51 +3366,51 @@ VisualTest {
}
Frame {
msec: 7504
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7520
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7536
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7552
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7568
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7584
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7600
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7616
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7632
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7648
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7664
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7680
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7696
@@ -3418,31 +3418,31 @@ VisualTest {
}
Frame {
msec: 7712
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7728
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7744
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7760
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7776
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7792
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7808
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3454,7 +3454,7 @@ VisualTest {
}
Frame {
msec: 7824
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3474,7 +3474,7 @@ VisualTest {
}
Frame {
msec: 7840
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3494,7 +3494,7 @@ VisualTest {
}
Frame {
msec: 7856
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3514,7 +3514,7 @@ VisualTest {
}
Frame {
msec: 7872
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3534,7 +3534,7 @@ VisualTest {
}
Frame {
msec: 7888
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3554,7 +3554,7 @@ VisualTest {
}
Frame {
msec: 7904
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3574,7 +3574,7 @@ VisualTest {
}
Frame {
msec: 7920
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3594,15 +3594,15 @@ VisualTest {
}
Frame {
msec: 7936
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7952
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 7968
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3614,27 +3614,27 @@ VisualTest {
}
Frame {
msec: 7984
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8000
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8016
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8032
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8048
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8064
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3654,7 +3654,7 @@ VisualTest {
}
Frame {
msec: 8080
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3674,7 +3674,7 @@ VisualTest {
}
Frame {
msec: 8096
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3694,7 +3694,7 @@ VisualTest {
}
Frame {
msec: 8112
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3714,7 +3714,7 @@ VisualTest {
}
Frame {
msec: 8128
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3734,7 +3734,7 @@ VisualTest {
}
Frame {
msec: 8144
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3754,7 +3754,7 @@ VisualTest {
}
Frame {
msec: 8160
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3774,7 +3774,7 @@ VisualTest {
}
Frame {
msec: 8176
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3794,7 +3794,7 @@ VisualTest {
}
Frame {
msec: 8192
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3814,7 +3814,7 @@ VisualTest {
}
Frame {
msec: 8208
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3834,7 +3834,7 @@ VisualTest {
}
Frame {
msec: 8224
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -3854,107 +3854,107 @@ VisualTest {
}
Frame {
msec: 8240
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8256
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8272
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8288
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8304
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8320
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8336
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8352
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8368
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8384
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8400
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8416
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8432
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8448
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8464
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8480
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8496
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8512
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8528
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8544
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8560
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8576
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8592
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8608
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8624
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8640
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8656
@@ -3962,95 +3962,95 @@ VisualTest {
}
Frame {
msec: 8672
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8688
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8704
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8720
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8736
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8752
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8768
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8784
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8800
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8816
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8832
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8848
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8864
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8880
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8896
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8912
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8928
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8944
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8960
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8976
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 8992
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9008
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9024
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4062,7 +4062,7 @@ VisualTest {
}
Frame {
msec: 9040
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4082,7 +4082,7 @@ VisualTest {
}
Frame {
msec: 9056
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4110,7 +4110,7 @@ VisualTest {
}
Frame {
msec: 9072
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4122,7 +4122,7 @@ VisualTest {
}
Frame {
msec: 9088
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4142,7 +4142,7 @@ VisualTest {
}
Frame {
msec: 9104
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4162,7 +4162,7 @@ VisualTest {
}
Frame {
msec: 9120
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4182,7 +4182,7 @@ VisualTest {
}
Frame {
msec: 9136
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4202,7 +4202,7 @@ VisualTest {
}
Frame {
msec: 9152
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4222,7 +4222,7 @@ VisualTest {
}
Frame {
msec: 9168
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4242,7 +4242,7 @@ VisualTest {
}
Frame {
msec: 9184
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4262,7 +4262,7 @@ VisualTest {
}
Frame {
msec: 9200
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4282,7 +4282,7 @@ VisualTest {
}
Frame {
msec: 9216
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4302,7 +4302,7 @@ VisualTest {
}
Frame {
msec: 9232
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4322,7 +4322,7 @@ VisualTest {
}
Frame {
msec: 9248
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4334,7 +4334,7 @@ VisualTest {
}
Frame {
msec: 9264
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4346,23 +4346,23 @@ VisualTest {
}
Frame {
msec: 9280
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9296
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9312
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9328
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9344
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4382,7 +4382,7 @@ VisualTest {
}
Frame {
msec: 9360
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4402,7 +4402,7 @@ VisualTest {
}
Frame {
msec: 9376
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4422,7 +4422,7 @@ VisualTest {
}
Frame {
msec: 9392
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4442,7 +4442,7 @@ VisualTest {
}
Frame {
msec: 9408
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4454,7 +4454,7 @@ VisualTest {
}
Frame {
msec: 9424
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4482,7 +4482,7 @@ VisualTest {
}
Frame {
msec: 9440
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4494,7 +4494,7 @@ VisualTest {
}
Frame {
msec: 9456
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4514,7 +4514,7 @@ VisualTest {
}
Frame {
msec: 9472
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4526,7 +4526,7 @@ VisualTest {
}
Frame {
msec: 9488
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4538,11 +4538,11 @@ VisualTest {
}
Frame {
msec: 9504
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9520
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4554,7 +4554,7 @@ VisualTest {
}
Frame {
msec: 9536
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4566,19 +4566,19 @@ VisualTest {
}
Frame {
msec: 9552
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9568
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9584
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9600
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9616
@@ -4586,7 +4586,7 @@ VisualTest {
}
Frame {
msec: 9632
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4598,7 +4598,7 @@ VisualTest {
}
Frame {
msec: 9648
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4618,7 +4618,7 @@ VisualTest {
}
Frame {
msec: 9664
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4630,7 +4630,7 @@ VisualTest {
}
Frame {
msec: 9680
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4642,7 +4642,7 @@ VisualTest {
}
Frame {
msec: 9696
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4654,7 +4654,7 @@ VisualTest {
}
Frame {
msec: 9712
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4666,7 +4666,7 @@ VisualTest {
}
Frame {
msec: 9728
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4678,7 +4678,7 @@ VisualTest {
}
Frame {
msec: 9744
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4698,7 +4698,7 @@ VisualTest {
}
Frame {
msec: 9760
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4718,11 +4718,11 @@ VisualTest {
}
Frame {
msec: 9776
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9792
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4734,7 +4734,7 @@ VisualTest {
}
Frame {
msec: 9808
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4746,39 +4746,39 @@ VisualTest {
}
Frame {
msec: 9824
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9840
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9856
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9872
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9888
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9904
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9920
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9936
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 9952
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4790,7 +4790,7 @@ VisualTest {
}
Frame {
msec: 9968
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4810,7 +4810,7 @@ VisualTest {
}
Frame {
msec: 9984
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4822,7 +4822,7 @@ VisualTest {
}
Frame {
msec: 10000
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4834,39 +4834,39 @@ VisualTest {
}
Frame {
msec: 10016
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10032
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10048
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10064
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10080
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10096
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10112
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10128
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10144
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -4878,23 +4878,23 @@ VisualTest {
}
Frame {
msec: 10160
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10176
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10192
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10208
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10224
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 2
@@ -4906,39 +4906,39 @@ VisualTest {
}
Frame {
msec: 10240
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10256
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10272
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10288
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10304
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10320
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10336
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10352
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10368
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 3
@@ -4950,39 +4950,39 @@ VisualTest {
}
Frame {
msec: 10384
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10400
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10416
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10432
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10448
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10464
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10480
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10496
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10512
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5002,7 +5002,7 @@ VisualTest {
}
Frame {
msec: 10528
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5022,7 +5022,7 @@ VisualTest {
}
Frame {
msec: 10544
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5050,7 +5050,7 @@ VisualTest {
}
Frame {
msec: 10560
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5082,7 +5082,7 @@ VisualTest {
}
Frame {
msec: 10592
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5110,7 +5110,7 @@ VisualTest {
}
Frame {
msec: 10608
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5122,7 +5122,7 @@ VisualTest {
}
Frame {
msec: 10624
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5142,7 +5142,7 @@ VisualTest {
}
Frame {
msec: 10640
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5162,7 +5162,7 @@ VisualTest {
}
Frame {
msec: 10656
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5190,7 +5190,7 @@ VisualTest {
}
Frame {
msec: 10672
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5202,7 +5202,7 @@ VisualTest {
}
Frame {
msec: 10688
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5222,7 +5222,7 @@ VisualTest {
}
Frame {
msec: 10704
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5242,7 +5242,7 @@ VisualTest {
}
Frame {
msec: 10720
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5254,43 +5254,43 @@ VisualTest {
}
Frame {
msec: 10736
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10752
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10768
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10784
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10800
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10816
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10832
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10848
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10864
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10880
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5302,7 +5302,7 @@ VisualTest {
}
Frame {
msec: 10896
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5314,7 +5314,7 @@ VisualTest {
}
Frame {
msec: 10912
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5334,7 +5334,7 @@ VisualTest {
}
Frame {
msec: 10928
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5346,7 +5346,7 @@ VisualTest {
}
Frame {
msec: 10944
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5374,123 +5374,123 @@ VisualTest {
}
Frame {
msec: 10960
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10976
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 10992
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11008
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11024
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11040
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11056
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11072
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11088
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11104
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11120
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11136
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11152
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11168
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11184
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11200
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11216
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11232
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11248
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11264
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11280
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11296
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11312
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11328
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11344
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11360
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11376
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11392
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11408
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11424
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 2
@@ -5502,27 +5502,27 @@ VisualTest {
}
Frame {
msec: 11440
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11456
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11472
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11488
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11504
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11520
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11536
@@ -5538,67 +5538,67 @@ VisualTest {
}
Frame {
msec: 11552
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11568
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11584
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11600
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11616
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11632
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11648
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11664
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11680
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11696
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11712
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11728
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11744
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11760
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11776
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11792
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5618,7 +5618,7 @@ VisualTest {
}
Frame {
msec: 11808
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5638,7 +5638,7 @@ VisualTest {
}
Frame {
msec: 11824
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5658,7 +5658,7 @@ VisualTest {
}
Frame {
msec: 11840
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5686,7 +5686,7 @@ VisualTest {
}
Frame {
msec: 11856
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5706,7 +5706,7 @@ VisualTest {
}
Frame {
msec: 11872
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5718,7 +5718,7 @@ VisualTest {
}
Frame {
msec: 11888
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5738,7 +5738,7 @@ VisualTest {
}
Frame {
msec: 11904
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5758,7 +5758,7 @@ VisualTest {
}
Frame {
msec: 11920
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5786,7 +5786,7 @@ VisualTest {
}
Frame {
msec: 11936
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Mouse {
type: 5
@@ -5798,139 +5798,139 @@ VisualTest {
}
Frame {
msec: 11952
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11968
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 11984
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12000
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12016
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12032
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12048
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12064
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12080
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12096
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12112
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12128
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12144
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12160
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12176
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12192
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12208
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12224
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12240
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12256
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12272
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12288
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12304
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12320
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12336
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12352
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12368
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12384
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12400
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12416
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12432
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12448
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12464
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12480
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12496
@@ -5938,239 +5938,239 @@ VisualTest {
}
Frame {
msec: 12512
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12528
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12544
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12560
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12576
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12592
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12608
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12624
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12640
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12656
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12672
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12688
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12704
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12720
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12736
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12752
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12768
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12784
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12800
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12816
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12832
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12848
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12864
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12880
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12896
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12912
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12928
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12944
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12960
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12976
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 12992
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13008
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13024
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13040
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13056
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13072
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13088
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13104
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13120
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13136
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13152
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13168
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13184
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13200
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13216
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13232
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13248
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13264
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13280
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13296
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13312
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13328
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13344
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13360
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13376
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13392
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13408
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13424
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13440
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13456
@@ -6178,118 +6178,118 @@ VisualTest {
}
Frame {
msec: 13472
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13488
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13504
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13520
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13536
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13552
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13568
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13584
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13600
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13616
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13632
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13648
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13664
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13680
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13696
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13712
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13728
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13744
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13760
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13776
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13792
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13808
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13824
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13840
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13856
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13872
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13888
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13904
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
Frame {
msec: 13920
- hash: "b0df99dd9a7640d184c6a2f3ab8ac759"
+ hash: "2ca1f84c0b3bfb125129462f84bbfa77"
}
}
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.0.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.0.png
index cd0f706054..d67491f331 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.0.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.1.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.1.png
index cd0f706054..d67491f331 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.1.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.2.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.2.png
index d56654b1e8..a36db91f9c 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.2.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.3.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.3.png
index d90f3c9a4e..e3b23a7962 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.3.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.4.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.4.png
index d56654b1e8..a36db91f9c 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.4.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.5.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.5.png
index d90f3c9a4e..e3b23a7962 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.5.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.qml b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.qml
index f78bdafe29..3498430fef 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.qml
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-advanced-ordering.qml
@@ -10,83 +10,83 @@ VisualTest {
}
Frame {
msec: 32
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 48
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 64
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 80
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 96
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 112
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 128
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 144
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 160
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 176
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 192
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 208
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 224
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 240
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 256
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 272
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 288
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 304
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 320
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 336
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -106,7 +106,7 @@ VisualTest {
}
Frame {
msec: 352
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -118,7 +118,7 @@ VisualTest {
}
Frame {
msec: 368
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -138,19 +138,19 @@ VisualTest {
}
Frame {
msec: 384
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 400
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 416
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 432
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -162,7 +162,7 @@ VisualTest {
}
Frame {
msec: 448
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -174,11 +174,11 @@ VisualTest {
}
Frame {
msec: 464
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 480
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -190,31 +190,31 @@ VisualTest {
}
Frame {
msec: 496
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 512
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 528
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 544
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 560
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 576
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 592
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -226,27 +226,27 @@ VisualTest {
}
Frame {
msec: 608
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 624
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 640
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 656
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 672
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 688
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -266,7 +266,7 @@ VisualTest {
}
Frame {
msec: 704
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -286,7 +286,7 @@ VisualTest {
}
Frame {
msec: 720
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -306,7 +306,7 @@ VisualTest {
}
Frame {
msec: 736
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -326,7 +326,7 @@ VisualTest {
}
Frame {
msec: 752
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -338,7 +338,7 @@ VisualTest {
}
Frame {
msec: 768
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -350,51 +350,51 @@ VisualTest {
}
Frame {
msec: 784
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 800
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 816
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 832
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 848
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 864
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 880
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 896
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 912
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 928
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 944
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 960
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 976
@@ -402,11 +402,11 @@ VisualTest {
}
Frame {
msec: 992
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1008
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 2
@@ -418,39 +418,39 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1040
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1056
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1072
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1088
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1104
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1120
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1136
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1152
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 3
@@ -462,39 +462,39 @@ VisualTest {
}
Frame {
msec: 1168
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1184
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1200
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1216
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1232
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1248
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1264
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1280
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1296
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -514,7 +514,7 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -526,7 +526,7 @@ VisualTest {
}
Frame {
msec: 1328
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -546,7 +546,7 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -566,19 +566,19 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1376
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1392
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1408
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -590,7 +590,7 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -610,7 +610,7 @@ VisualTest {
}
Frame {
msec: 1440
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -630,7 +630,7 @@ VisualTest {
}
Frame {
msec: 1456
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -642,7 +642,7 @@ VisualTest {
}
Frame {
msec: 1472
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -662,7 +662,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -682,7 +682,7 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -694,7 +694,7 @@ VisualTest {
}
Frame {
msec: 1520
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -706,7 +706,7 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -734,7 +734,7 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -746,7 +746,7 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -766,7 +766,7 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -786,7 +786,7 @@ VisualTest {
}
Frame {
msec: 1600
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -798,83 +798,83 @@ VisualTest {
}
Frame {
msec: 1616
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1632
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1648
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1664
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1680
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1696
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1712
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1728
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1744
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1760
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1776
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1792
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1808
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1824
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1840
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1856
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1872
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1888
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1904
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1920
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1936
@@ -882,55 +882,55 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1968
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 1984
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2000
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2016
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2032
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2048
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2064
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2080
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2096
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2112
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2128
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2144
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 2
@@ -942,23 +942,23 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2176
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2192
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2208
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2224
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 3
@@ -970,115 +970,115 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2256
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2272
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2288
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2304
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2320
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2336
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2352
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2368
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2384
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2400
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2416
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2432
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2448
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2464
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2480
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2496
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2512
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2528
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2544
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2560
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2576
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2592
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2608
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2624
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2640
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2656
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2672
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 2
@@ -1090,31 +1090,31 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2704
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2720
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2736
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2752
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2768
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2784
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 3
@@ -1126,27 +1126,27 @@ VisualTest {
}
Frame {
msec: 2800
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2816
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2832
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2848
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2864
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2880
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2896
@@ -1154,55 +1154,55 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2928
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2944
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2960
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2976
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 2992
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3008
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3024
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3040
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3056
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3072
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3088
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3104
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1222,7 +1222,7 @@ VisualTest {
}
Frame {
msec: 3120
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1242,7 +1242,7 @@ VisualTest {
}
Frame {
msec: 3136
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1262,7 +1262,7 @@ VisualTest {
}
Frame {
msec: 3152
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1282,7 +1282,7 @@ VisualTest {
}
Frame {
msec: 3168
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1302,7 +1302,7 @@ VisualTest {
}
Frame {
msec: 3184
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1314,7 +1314,7 @@ VisualTest {
}
Frame {
msec: 3200
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1326,59 +1326,59 @@ VisualTest {
}
Frame {
msec: 3216
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3232
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3248
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3264
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3280
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3296
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3312
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3328
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3344
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3360
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3376
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3392
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3408
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3424
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 2
@@ -1390,27 +1390,27 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3456
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3472
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3488
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3504
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 3520
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 3
@@ -1422,11 +1422,11 @@ VisualTest {
}
Frame {
msec: 3536
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3552
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1438,7 +1438,7 @@ VisualTest {
}
Frame {
msec: 3568
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1458,7 +1458,7 @@ VisualTest {
}
Frame {
msec: 3584
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1478,7 +1478,7 @@ VisualTest {
}
Frame {
msec: 3600
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1498,7 +1498,7 @@ VisualTest {
}
Frame {
msec: 3616
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1510,7 +1510,7 @@ VisualTest {
}
Frame {
msec: 3632
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1530,7 +1530,7 @@ VisualTest {
}
Frame {
msec: 3648
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1542,7 +1542,7 @@ VisualTest {
}
Frame {
msec: 3664
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1554,7 +1554,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1574,7 +1574,7 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1586,7 +1586,7 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1598,7 +1598,7 @@ VisualTest {
}
Frame {
msec: 3728
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1610,15 +1610,15 @@ VisualTest {
}
Frame {
msec: 3744
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3760
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3776
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1630,7 +1630,7 @@ VisualTest {
}
Frame {
msec: 3792
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1650,7 +1650,7 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1670,7 +1670,7 @@ VisualTest {
}
Frame {
msec: 3824
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1690,7 +1690,7 @@ VisualTest {
}
Frame {
msec: 3840
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1722,7 +1722,7 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1742,7 +1742,7 @@ VisualTest {
}
Frame {
msec: 3888
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1762,7 +1762,7 @@ VisualTest {
}
Frame {
msec: 3904
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1774,39 +1774,39 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3936
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3952
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3968
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3984
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4000
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4016
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4032
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4048
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 2
@@ -1818,27 +1818,27 @@ VisualTest {
}
Frame {
msec: 4064
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4080
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4096
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4112
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4128
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4144
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 3
@@ -1850,55 +1850,55 @@ VisualTest {
}
Frame {
msec: 4160
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4176
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4192
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4208
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4224
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4240
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4256
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4272
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4288
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4304
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4320
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4336
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4352
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1910,7 +1910,7 @@ VisualTest {
}
Frame {
msec: 4368
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1930,7 +1930,7 @@ VisualTest {
}
Frame {
msec: 4384
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1942,7 +1942,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1962,7 +1962,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1974,7 +1974,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Mouse {
type: 5
@@ -1986,95 +1986,95 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4464
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4480
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4496
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4512
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4528
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4544
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4560
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4576
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4592
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4608
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4624
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4640
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4656
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4672
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4688
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4704
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4720
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4736
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4752
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4768
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4784
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4800
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4816
@@ -2082,138 +2082,138 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4848
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4864
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4880
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4896
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4912
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4928
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4944
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4960
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4976
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 4992
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5008
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5024
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5040
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5056
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5072
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5088
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5104
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5120
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5136
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5152
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5168
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5184
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5200
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5216
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5232
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5248
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5264
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5280
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5296
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5312
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5328
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5344
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
Frame {
msec: 5360
- hash: "53c6ffbf8997a28ba11d9ba2a5f47d8f"
+ hash: "d2abd8defddb9f5f1493c509aed9dfca"
}
}
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.0.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.0.png
index cd0f706054..d67491f331 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.0.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.1.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.1.png
index cd0f706054..d67491f331 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.1.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.2.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.2.png
index 1e160de4a8..8d48a25c3e 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.2.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.3.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.3.png
index d56654b1e8..a36db91f9c 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.3.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.4.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.4.png
index d56654b1e8..a36db91f9c 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.4.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.5.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.5.png
index 5873049914..42f259c364 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.5.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.6.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.6.png
index 14c6ac66de..d1df59b9ea 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.6.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.7.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.7.png
index c97a858f0b..4c6abee5d5 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.7.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.8.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.8.png
index c97a858f0b..4c6abee5d5 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.8.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.8.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.9.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.9.png
index 7a1a21bb9c..10ed5212ac 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.9.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.9.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.qml b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.qml
index f919068368..277bc2269c 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.qml
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-basic-ordering.qml
@@ -10,127 +10,127 @@ VisualTest {
}
Frame {
msec: 32
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 48
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 64
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 80
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 96
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 112
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 128
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 144
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 160
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 176
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 192
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 208
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 224
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 240
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 256
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 272
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 288
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 304
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 320
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 336
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 352
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 368
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 384
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 400
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 416
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 432
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 448
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 464
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 480
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 496
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 512
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -166,7 +166,7 @@ VisualTest {
}
Frame {
msec: 528
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -178,7 +178,7 @@ VisualTest {
}
Frame {
msec: 544
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -198,7 +198,7 @@ VisualTest {
}
Frame {
msec: 560
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -218,7 +218,7 @@ VisualTest {
}
Frame {
msec: 576
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -238,7 +238,7 @@ VisualTest {
}
Frame {
msec: 592
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -258,7 +258,7 @@ VisualTest {
}
Frame {
msec: 608
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -278,7 +278,7 @@ VisualTest {
}
Frame {
msec: 624
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -298,7 +298,7 @@ VisualTest {
}
Frame {
msec: 640
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -318,7 +318,7 @@ VisualTest {
}
Frame {
msec: 656
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -338,7 +338,7 @@ VisualTest {
}
Frame {
msec: 672
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -358,7 +358,7 @@ VisualTest {
}
Frame {
msec: 688
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -378,7 +378,7 @@ VisualTest {
}
Frame {
msec: 704
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -398,67 +398,67 @@ VisualTest {
}
Frame {
msec: 720
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 736
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 752
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 768
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 784
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 800
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 816
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 832
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 848
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 864
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 880
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 896
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 912
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 928
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 944
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 960
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 976
@@ -466,7 +466,7 @@ VisualTest {
}
Frame {
msec: 992
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -494,7 +494,7 @@ VisualTest {
}
Frame {
msec: 1008
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -514,7 +514,7 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -534,7 +534,7 @@ VisualTest {
}
Frame {
msec: 1040
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -554,7 +554,7 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -566,7 +566,7 @@ VisualTest {
}
Frame {
msec: 1072
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -586,7 +586,7 @@ VisualTest {
}
Frame {
msec: 1088
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -598,7 +598,7 @@ VisualTest {
}
Frame {
msec: 1104
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -610,7 +610,7 @@ VisualTest {
}
Frame {
msec: 1120
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -630,7 +630,7 @@ VisualTest {
}
Frame {
msec: 1136
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -650,7 +650,7 @@ VisualTest {
}
Frame {
msec: 1152
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -670,7 +670,7 @@ VisualTest {
}
Frame {
msec: 1168
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -690,7 +690,7 @@ VisualTest {
}
Frame {
msec: 1184
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -710,7 +710,7 @@ VisualTest {
}
Frame {
msec: 1200
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -730,7 +730,7 @@ VisualTest {
}
Frame {
msec: 1216
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -742,7 +742,7 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 5
@@ -754,91 +754,91 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1264
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1280
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1296
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1312
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1328
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1344
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1360
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1376
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1392
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1408
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1424
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1440
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1456
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1472
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1488
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1504
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1520
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1536
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1552
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1568
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1584
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 2
@@ -850,31 +850,31 @@ VisualTest {
}
Frame {
msec: 1600
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1616
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1632
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1648
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1664
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1680
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1696
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Mouse {
type: 3
@@ -886,59 +886,59 @@ VisualTest {
}
Frame {
msec: 1712
- hash: "5c6a93fe89f994f1d9fe126e71c68b6b"
+ hash: "5aefbefbf166bd03a7290a1c538cdf68"
}
Frame {
msec: 1728
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1744
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1760
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1776
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1792
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1808
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1824
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1840
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1856
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1872
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1888
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1904
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1920
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1936
@@ -946,51 +946,51 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1968
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 1984
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2000
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2016
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2032
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2048
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2064
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2080
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2096
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2112
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2128
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1002,7 +1002,7 @@ VisualTest {
}
Frame {
msec: 2144
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1014,7 +1014,7 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1026,7 +1026,7 @@ VisualTest {
}
Frame {
msec: 2176
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1046,7 +1046,7 @@ VisualTest {
}
Frame {
msec: 2192
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1066,7 +1066,7 @@ VisualTest {
}
Frame {
msec: 2208
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1086,7 +1086,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1098,7 +1098,7 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1110,7 +1110,7 @@ VisualTest {
}
Frame {
msec: 2256
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1130,7 +1130,7 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1150,7 +1150,7 @@ VisualTest {
}
Frame {
msec: 2288
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1162,7 +1162,7 @@ VisualTest {
}
Frame {
msec: 2304
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1182,7 +1182,7 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1194,11 +1194,11 @@ VisualTest {
}
Frame {
msec: 2336
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2352
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1210,19 +1210,19 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2384
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2400
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2416
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1234,7 +1234,7 @@ VisualTest {
}
Frame {
msec: 2432
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1246,7 +1246,7 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1266,7 +1266,7 @@ VisualTest {
}
Frame {
msec: 2464
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 5
@@ -1278,75 +1278,75 @@ VisualTest {
}
Frame {
msec: 2480
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2496
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2512
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2528
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2544
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2560
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2576
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2592
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2608
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2624
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2640
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2656
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2672
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2688
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2704
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2720
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2736
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2752
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 2
@@ -1358,31 +1358,31 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2784
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2800
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2816
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2832
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2848
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Frame {
msec: 2864
- hash: "87210b5ec4a5f3f0df8fe2a773a3cfe3"
+ hash: "8e8aaaa008909f199d0c5e57f91b1a51"
}
Mouse {
type: 3
@@ -1394,7 +1394,7 @@ VisualTest {
}
Frame {
msec: 2880
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2896
@@ -1402,119 +1402,119 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2928
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2944
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2960
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2976
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 2992
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3008
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3024
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3040
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3056
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3072
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3088
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3104
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3120
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3136
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3152
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3168
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3184
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3200
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3216
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3232
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3248
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3264
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3280
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3296
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3312
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3328
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3344
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3360
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1534,7 +1534,7 @@ VisualTest {
}
Frame {
msec: 3376
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1546,7 +1546,7 @@ VisualTest {
}
Frame {
msec: 3392
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1566,7 +1566,7 @@ VisualTest {
}
Frame {
msec: 3408
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1586,7 +1586,7 @@ VisualTest {
}
Frame {
msec: 3424
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1606,7 +1606,7 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1626,7 +1626,7 @@ VisualTest {
}
Frame {
msec: 3456
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1646,7 +1646,7 @@ VisualTest {
}
Frame {
msec: 3472
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1658,7 +1658,7 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1678,7 +1678,7 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1698,7 +1698,7 @@ VisualTest {
}
Frame {
msec: 3520
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1710,7 +1710,7 @@ VisualTest {
}
Frame {
msec: 3536
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1730,7 +1730,7 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1750,7 +1750,7 @@ VisualTest {
}
Frame {
msec: 3568
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1762,7 +1762,7 @@ VisualTest {
}
Frame {
msec: 3584
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1782,7 +1782,7 @@ VisualTest {
}
Frame {
msec: 3600
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1794,7 +1794,7 @@ VisualTest {
}
Frame {
msec: 3616
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1806,7 +1806,7 @@ VisualTest {
}
Frame {
msec: 3632
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1818,7 +1818,7 @@ VisualTest {
}
Frame {
msec: 3648
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1830,47 +1830,47 @@ VisualTest {
}
Frame {
msec: 3664
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3680
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3696
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3712
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3728
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3744
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3760
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3776
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3792
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3808
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3824
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1890,7 +1890,7 @@ VisualTest {
}
Frame {
msec: 3840
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1914,7 +1914,7 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1934,7 +1934,7 @@ VisualTest {
}
Frame {
msec: 3888
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1946,7 +1946,7 @@ VisualTest {
}
Frame {
msec: 3904
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 5
@@ -1958,59 +1958,59 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3936
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3952
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3968
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 3984
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4000
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4016
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4032
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4048
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4064
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4080
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4096
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4112
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4128
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 2
@@ -2022,31 +2022,31 @@ VisualTest {
}
Frame {
msec: 4144
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4160
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4176
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4192
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4208
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4224
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Frame {
msec: 4240
- hash: "ff2771e07c9a19279ae8c57bec0f8911"
+ hash: "8faf5704ee4f8e5fd37dd8352962a9f1"
}
Mouse {
type: 3
@@ -2058,67 +2058,67 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4272
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4288
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4304
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4320
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4336
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4352
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4368
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4384
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4400
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4416
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4432
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4448
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4464
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4480
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4496
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2130,7 +2130,7 @@ VisualTest {
}
Frame {
msec: 4512
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2150,7 +2150,7 @@ VisualTest {
}
Frame {
msec: 4528
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2162,7 +2162,7 @@ VisualTest {
}
Frame {
msec: 4544
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2174,7 +2174,7 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2186,7 +2186,7 @@ VisualTest {
}
Frame {
msec: 4576
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2198,23 +2198,23 @@ VisualTest {
}
Frame {
msec: 4592
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4608
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4624
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4640
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4656
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2234,7 +2234,7 @@ VisualTest {
}
Frame {
msec: 4672
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2246,7 +2246,7 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2266,7 +2266,7 @@ VisualTest {
}
Frame {
msec: 4704
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2286,7 +2286,7 @@ VisualTest {
}
Frame {
msec: 4720
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 5
@@ -2298,23 +2298,23 @@ VisualTest {
}
Frame {
msec: 4736
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4752
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4768
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4784
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4800
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4816
@@ -2322,15 +2322,15 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4848
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4864
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 2
@@ -2342,19 +2342,19 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4896
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4912
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Frame {
msec: 4928
- hash: "3bf5ba9c933e207c6709d77a759e096a"
+ hash: "720a197acd8afa47b4bed608d5545615"
}
Mouse {
type: 3
@@ -2366,35 +2366,35 @@ VisualTest {
}
Frame {
msec: 4944
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 4960
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 4976
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 4992
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5008
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5024
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5040
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5056
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2406,7 +2406,7 @@ VisualTest {
}
Frame {
msec: 5072
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2426,7 +2426,7 @@ VisualTest {
}
Frame {
msec: 5088
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2446,7 +2446,7 @@ VisualTest {
}
Frame {
msec: 5104
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2458,7 +2458,7 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2478,7 +2478,7 @@ VisualTest {
}
Frame {
msec: 5136
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2498,7 +2498,7 @@ VisualTest {
}
Frame {
msec: 5152
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2510,7 +2510,7 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2530,7 +2530,7 @@ VisualTest {
}
Frame {
msec: 5184
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2550,7 +2550,7 @@ VisualTest {
}
Frame {
msec: 5200
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2562,7 +2562,7 @@ VisualTest {
}
Frame {
msec: 5216
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 5
@@ -2582,55 +2582,55 @@ VisualTest {
}
Frame {
msec: 5232
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5248
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5264
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5280
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5296
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5312
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5328
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5344
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5360
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5376
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5392
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5408
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5424
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 2
@@ -2642,31 +2642,31 @@ VisualTest {
}
Frame {
msec: 5440
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5456
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5472
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5488
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5504
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5520
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Frame {
msec: 5536
- hash: "71d99cb6b9c582d8ab55af2473a90335"
+ hash: "749cb3a898f53ff9117752ef183029c3"
}
Mouse {
type: 3
@@ -2678,59 +2678,59 @@ VisualTest {
}
Frame {
msec: 5552
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5568
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5584
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5600
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5616
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5632
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5648
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5664
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5680
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5696
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5712
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5728
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5744
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5760
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5776
@@ -2738,71 +2738,71 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5808
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5824
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5840
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5856
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5872
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5888
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5904
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5920
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5936
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5952
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5968
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 5984
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6000
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6016
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6032
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6048
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Mouse {
type: 2
@@ -2814,27 +2814,27 @@ VisualTest {
}
Frame {
msec: 6064
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6080
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6096
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6112
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6128
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Frame {
msec: 6144
- hash: "4d47dd0a21928ac83fa3178c48b9c93f"
+ hash: "727c6a924a67856f1051c22633ac8cf3"
}
Mouse {
type: 3
@@ -2846,83 +2846,83 @@ VisualTest {
}
Frame {
msec: 6160
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6176
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6192
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6208
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6224
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6240
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6256
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6272
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6288
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6304
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6320
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6336
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6352
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6368
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6384
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6400
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6416
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6432
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6448
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6464
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -2934,7 +2934,7 @@ VisualTest {
}
Frame {
msec: 6480
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -2954,7 +2954,7 @@ VisualTest {
}
Frame {
msec: 6496
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -2966,7 +2966,7 @@ VisualTest {
}
Frame {
msec: 6512
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -2986,7 +2986,7 @@ VisualTest {
}
Frame {
msec: 6528
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3006,7 +3006,7 @@ VisualTest {
}
Frame {
msec: 6544
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3018,7 +3018,7 @@ VisualTest {
}
Frame {
msec: 6560
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3038,7 +3038,7 @@ VisualTest {
}
Frame {
msec: 6576
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3058,7 +3058,7 @@ VisualTest {
}
Frame {
msec: 6592
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3070,7 +3070,7 @@ VisualTest {
}
Frame {
msec: 6608
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3090,7 +3090,7 @@ VisualTest {
}
Frame {
msec: 6624
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3110,7 +3110,7 @@ VisualTest {
}
Frame {
msec: 6640
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3122,7 +3122,7 @@ VisualTest {
}
Frame {
msec: 6656
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3142,7 +3142,7 @@ VisualTest {
}
Frame {
msec: 6672
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3162,7 +3162,7 @@ VisualTest {
}
Frame {
msec: 6688
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3174,7 +3174,7 @@ VisualTest {
}
Frame {
msec: 6704
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3194,7 +3194,7 @@ VisualTest {
}
Frame {
msec: 6720
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3210,163 +3210,163 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6768
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6784
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6800
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6816
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6832
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6848
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6864
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6880
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6896
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6912
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6928
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6944
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6960
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6976
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 6992
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7008
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7024
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7040
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7056
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7072
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7088
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7104
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7120
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7136
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7152
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7168
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7184
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7200
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7216
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7232
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7248
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7264
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7280
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7296
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7312
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7328
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7344
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7360
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7376
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3378,7 +3378,7 @@ VisualTest {
}
Frame {
msec: 7392
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3398,7 +3398,7 @@ VisualTest {
}
Frame {
msec: 7408
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3410,7 +3410,7 @@ VisualTest {
}
Frame {
msec: 7424
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3430,7 +3430,7 @@ VisualTest {
}
Frame {
msec: 7440
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3450,7 +3450,7 @@ VisualTest {
}
Frame {
msec: 7456
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3470,7 +3470,7 @@ VisualTest {
}
Frame {
msec: 7472
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3490,7 +3490,7 @@ VisualTest {
}
Frame {
msec: 7488
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3510,7 +3510,7 @@ VisualTest {
}
Frame {
msec: 7504
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3522,7 +3522,7 @@ VisualTest {
}
Frame {
msec: 7520
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3534,23 +3534,23 @@ VisualTest {
}
Frame {
msec: 7536
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7552
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7568
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7584
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7600
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 5
@@ -3570,19 +3570,19 @@ VisualTest {
}
Frame {
msec: 7616
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7632
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7648
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7664
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 2
@@ -3594,7 +3594,7 @@ VisualTest {
}
Frame {
msec: 7680
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7696
@@ -3602,15 +3602,15 @@ VisualTest {
}
Frame {
msec: 7712
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7728
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Frame {
msec: 7744
- hash: "b055644ead316772d6acb25ec80b40a3"
+ hash: "2fce23e8592c4131a23ff8da4297bfe5"
}
Mouse {
type: 3
@@ -3622,19 +3622,19 @@ VisualTest {
}
Frame {
msec: 7760
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 7776
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 7792
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 7808
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3646,7 +3646,7 @@ VisualTest {
}
Frame {
msec: 7824
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3666,7 +3666,7 @@ VisualTest {
}
Frame {
msec: 7840
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3678,7 +3678,7 @@ VisualTest {
}
Frame {
msec: 7856
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3698,7 +3698,7 @@ VisualTest {
}
Frame {
msec: 7872
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3710,7 +3710,7 @@ VisualTest {
}
Frame {
msec: 7888
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3722,7 +3722,7 @@ VisualTest {
}
Frame {
msec: 7904
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3742,7 +3742,7 @@ VisualTest {
}
Frame {
msec: 7920
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3762,7 +3762,7 @@ VisualTest {
}
Frame {
msec: 7936
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3774,7 +3774,7 @@ VisualTest {
}
Frame {
msec: 7952
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3794,7 +3794,7 @@ VisualTest {
}
Frame {
msec: 7968
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Mouse {
type: 5
@@ -3814,171 +3814,171 @@ VisualTest {
}
Frame {
msec: 7984
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8000
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8016
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8032
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8048
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8064
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8080
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8096
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8112
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8128
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8144
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8160
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8176
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8192
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8208
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8224
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8240
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8256
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8272
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8288
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8304
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8320
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8336
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8352
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8368
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8384
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8400
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8416
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8432
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8448
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8464
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8480
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8496
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8512
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8528
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8544
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8560
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8576
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8592
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8608
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8624
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8640
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8656
@@ -3986,14 +3986,14 @@ VisualTest {
}
Frame {
msec: 8672
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8688
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
Frame {
msec: 8704
- hash: "80edf40b71c19f6b9a664e9de45e66b2"
+ hash: "ba34284a7acbd052a25da590bf20864e"
}
}
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.0.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.0.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.0.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.1.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.1.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.1.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.2.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.2.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.2.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.3.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.3.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.3.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.4.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.4.png
index 35d0512606..2d86eca875 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.4.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.5.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.5.png
index 1908199c68..7217cd23f4 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.5.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.6.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.6.png
index 5df65ac49f..6759725b23 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.6.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.7.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.7.png
index ed6a7ca7e1..4d86afb07d 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.7.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.8.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.8.png
index d875e3885a..f6f91935c3 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.8.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.8.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.9.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.9.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.9.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.9.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.qml b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.qml
index 4976f0a826..7fac1329a6 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.qml
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview-mouse.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 48
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 64
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 80
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 96
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 112
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 128
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 144
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 160
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 176
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 192
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 208
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 224
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 240
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 256
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 272
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 288
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 304
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 320
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 336
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 352
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 368
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 384
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 400
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 416
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 432
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 448
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 464
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 480
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 496
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 512
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 528
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 544
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 560
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 576
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 592
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 608
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 624
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 640
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 656
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 672
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 688
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 704
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 720
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 736
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 752
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 768
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 784
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 800
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 816
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 832
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 848
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 864
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 880
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 896
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 912
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 928
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 944
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 960
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 976
@@ -250,151 +250,151 @@ VisualTest {
}
Frame {
msec: 992
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1008
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1024
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1040
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1056
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1072
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1088
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1104
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1120
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1136
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1152
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1168
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1184
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1200
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1216
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1232
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1248
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1264
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1280
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1296
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1312
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1328
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1344
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1360
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1376
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1392
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1408
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1424
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1440
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1456
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1472
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1488
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1504
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1520
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1536
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1552
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1568
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -414,7 +414,7 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -434,7 +434,7 @@ VisualTest {
}
Frame {
msec: 1600
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -454,7 +454,7 @@ VisualTest {
}
Frame {
msec: 1616
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -474,7 +474,7 @@ VisualTest {
}
Frame {
msec: 1632
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -494,7 +494,7 @@ VisualTest {
}
Frame {
msec: 1648
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -514,7 +514,7 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -534,7 +534,7 @@ VisualTest {
}
Frame {
msec: 1680
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -554,7 +554,7 @@ VisualTest {
}
Frame {
msec: 1696
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -566,7 +566,7 @@ VisualTest {
}
Frame {
msec: 1712
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -586,7 +586,7 @@ VisualTest {
}
Frame {
msec: 1728
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -598,27 +598,27 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1760
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1776
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1792
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1808
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1824
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -638,7 +638,7 @@ VisualTest {
}
Frame {
msec: 1840
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -658,7 +658,7 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -678,7 +678,7 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -698,7 +698,7 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -718,7 +718,7 @@ VisualTest {
}
Frame {
msec: 1904
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -738,7 +738,7 @@ VisualTest {
}
Frame {
msec: 1920
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -778,7 +778,7 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -798,7 +798,7 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -818,7 +818,7 @@ VisualTest {
}
Frame {
msec: 1984
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -830,7 +830,7 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -842,27 +842,27 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2032
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2048
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2064
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2080
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2096
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -874,7 +874,7 @@ VisualTest {
}
Frame {
msec: 2112
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -886,7 +886,7 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -898,11 +898,11 @@ VisualTest {
}
Frame {
msec: 2144
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2160
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -914,7 +914,7 @@ VisualTest {
}
Frame {
msec: 2176
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -926,11 +926,11 @@ VisualTest {
}
Frame {
msec: 2192
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2208
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -942,11 +942,11 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2240
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -958,27 +958,27 @@ VisualTest {
}
Frame {
msec: 2256
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2272
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2288
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2304
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2320
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2336
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 2
@@ -990,31 +990,31 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2368
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2384
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2400
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2416
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2432
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2448
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 3
@@ -1026,47 +1026,47 @@ VisualTest {
}
Frame {
msec: 2464
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2480
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2496
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2512
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2528
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2544
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2560
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2576
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2592
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2608
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2624
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1086,7 +1086,7 @@ VisualTest {
}
Frame {
msec: 2640
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1106,7 +1106,7 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1126,7 +1126,7 @@ VisualTest {
}
Frame {
msec: 2672
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1146,7 +1146,7 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1166,7 +1166,7 @@ VisualTest {
}
Frame {
msec: 2704
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1186,7 +1186,7 @@ VisualTest {
}
Frame {
msec: 2720
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1206,7 +1206,7 @@ VisualTest {
}
Frame {
msec: 2736
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1226,7 +1226,7 @@ VisualTest {
}
Frame {
msec: 2752
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1246,7 +1246,7 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1266,7 +1266,7 @@ VisualTest {
}
Frame {
msec: 2784
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1286,7 +1286,7 @@ VisualTest {
}
Frame {
msec: 2800
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1306,7 +1306,7 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1326,7 +1326,7 @@ VisualTest {
}
Frame {
msec: 2832
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1346,7 +1346,7 @@ VisualTest {
}
Frame {
msec: 2848
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1366,7 +1366,7 @@ VisualTest {
}
Frame {
msec: 2864
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1386,7 +1386,7 @@ VisualTest {
}
Frame {
msec: 2880
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1426,7 +1426,7 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1446,7 +1446,7 @@ VisualTest {
}
Frame {
msec: 2928
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1466,7 +1466,7 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1486,7 +1486,7 @@ VisualTest {
}
Frame {
msec: 2960
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1506,7 +1506,7 @@ VisualTest {
}
Frame {
msec: 2976
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1526,7 +1526,7 @@ VisualTest {
}
Frame {
msec: 2992
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1546,7 +1546,7 @@ VisualTest {
}
Frame {
msec: 3008
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1566,7 +1566,7 @@ VisualTest {
}
Frame {
msec: 3024
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1586,7 +1586,7 @@ VisualTest {
}
Frame {
msec: 3040
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1606,7 +1606,7 @@ VisualTest {
}
Frame {
msec: 3056
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1626,7 +1626,7 @@ VisualTest {
}
Frame {
msec: 3072
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1646,7 +1646,7 @@ VisualTest {
}
Frame {
msec: 3088
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1666,7 +1666,7 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1686,7 +1686,7 @@ VisualTest {
}
Frame {
msec: 3120
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1706,7 +1706,7 @@ VisualTest {
}
Frame {
msec: 3136
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1718,35 +1718,35 @@ VisualTest {
}
Frame {
msec: 3152
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3168
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3184
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3200
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3216
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3232
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3248
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3264
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 2
@@ -1758,27 +1758,27 @@ VisualTest {
}
Frame {
msec: 3280
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3296
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3312
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3328
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3344
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3360
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 3
@@ -1790,67 +1790,67 @@ VisualTest {
}
Frame {
msec: 3376
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3392
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3408
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3424
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3440
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3456
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3472
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3488
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3504
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3520
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3536
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3552
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3568
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3584
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3600
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3616
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1862,7 +1862,7 @@ VisualTest {
}
Frame {
msec: 3632
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1882,7 +1882,7 @@ VisualTest {
}
Frame {
msec: 3648
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1894,7 +1894,7 @@ VisualTest {
}
Frame {
msec: 3664
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1906,7 +1906,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1934,7 +1934,7 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1946,7 +1946,7 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1958,7 +1958,7 @@ VisualTest {
}
Frame {
msec: 3728
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1986,7 +1986,7 @@ VisualTest {
}
Frame {
msec: 3744
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1998,7 +1998,7 @@ VisualTest {
}
Frame {
msec: 3760
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2018,7 +2018,7 @@ VisualTest {
}
Frame {
msec: 3776
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2046,7 +2046,7 @@ VisualTest {
}
Frame {
msec: 3792
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2058,7 +2058,7 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2070,7 +2070,7 @@ VisualTest {
}
Frame {
msec: 3824
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2098,7 +2098,7 @@ VisualTest {
}
Frame {
msec: 3840
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2122,7 +2122,7 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2142,7 +2142,7 @@ VisualTest {
}
Frame {
msec: 3888
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2154,7 +2154,7 @@ VisualTest {
}
Frame {
msec: 3904
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2166,7 +2166,7 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2194,7 +2194,7 @@ VisualTest {
}
Frame {
msec: 3936
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2206,7 +2206,7 @@ VisualTest {
}
Frame {
msec: 3952
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2218,7 +2218,7 @@ VisualTest {
}
Frame {
msec: 3968
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2246,7 +2246,7 @@ VisualTest {
}
Frame {
msec: 3984
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2258,7 +2258,7 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2270,7 +2270,7 @@ VisualTest {
}
Frame {
msec: 4016
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2282,7 +2282,7 @@ VisualTest {
}
Frame {
msec: 4032
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -2294,47 +2294,47 @@ VisualTest {
}
Frame {
msec: 4048
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4064
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4080
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4096
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4112
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4128
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4144
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4160
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4176
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4192
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4208
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 2
@@ -2346,31 +2346,31 @@ VisualTest {
}
Frame {
msec: 4224
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4240
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4256
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4272
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4288
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4304
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4320
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 3
@@ -2382,47 +2382,47 @@ VisualTest {
}
Frame {
msec: 4336
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4352
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4368
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4384
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4400
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4416
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4432
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4448
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4464
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4480
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4496
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2434,7 +2434,7 @@ VisualTest {
}
Frame {
msec: 4512
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2446,7 +2446,7 @@ VisualTest {
}
Frame {
msec: 4528
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2466,7 +2466,7 @@ VisualTest {
}
Frame {
msec: 4544
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2494,7 +2494,7 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2506,7 +2506,7 @@ VisualTest {
}
Frame {
msec: 4576
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2526,7 +2526,7 @@ VisualTest {
}
Frame {
msec: 4592
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2554,7 +2554,7 @@ VisualTest {
}
Frame {
msec: 4608
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2566,7 +2566,7 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2586,7 +2586,7 @@ VisualTest {
}
Frame {
msec: 4640
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2614,7 +2614,7 @@ VisualTest {
}
Frame {
msec: 4656
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2626,7 +2626,7 @@ VisualTest {
}
Frame {
msec: 4672
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2646,7 +2646,7 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2674,7 +2674,7 @@ VisualTest {
}
Frame {
msec: 4704
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2686,7 +2686,7 @@ VisualTest {
}
Frame {
msec: 4720
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2698,7 +2698,7 @@ VisualTest {
}
Frame {
msec: 4736
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2710,7 +2710,7 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2722,7 +2722,7 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2734,7 +2734,7 @@ VisualTest {
}
Frame {
msec: 4784
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2754,7 +2754,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2786,7 +2786,7 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2814,7 +2814,7 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2826,7 +2826,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2846,7 +2846,7 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2874,7 +2874,7 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2886,7 +2886,7 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2898,7 +2898,7 @@ VisualTest {
}
Frame {
msec: 4928
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 5
@@ -2910,59 +2910,59 @@ VisualTest {
}
Frame {
msec: 4944
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4960
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4976
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 4992
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5008
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5024
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5040
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5056
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5072
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5088
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5104
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5120
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5136
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5152
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 2
@@ -2974,23 +2974,23 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5184
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5200
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5216
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Frame {
msec: 5232
- hash: "f9631770db6ba7ce85528e67881b05f7"
+ hash: "df2427b700b53eedb5a810b20042ee8a"
}
Mouse {
type: 3
@@ -3002,47 +3002,47 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5264
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5280
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5296
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5312
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5328
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5344
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5360
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5376
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5392
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5408
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3054,7 +3054,7 @@ VisualTest {
}
Frame {
msec: 5424
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3074,7 +3074,7 @@ VisualTest {
}
Frame {
msec: 5440
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3094,7 +3094,7 @@ VisualTest {
}
Frame {
msec: 5456
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3106,7 +3106,7 @@ VisualTest {
}
Frame {
msec: 5472
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3126,7 +3126,7 @@ VisualTest {
}
Frame {
msec: 5488
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3146,7 +3146,7 @@ VisualTest {
}
Frame {
msec: 5504
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3174,7 +3174,7 @@ VisualTest {
}
Frame {
msec: 5520
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3186,7 +3186,7 @@ VisualTest {
}
Frame {
msec: 5536
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3206,7 +3206,7 @@ VisualTest {
}
Frame {
msec: 5552
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3234,7 +3234,7 @@ VisualTest {
}
Frame {
msec: 5568
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3246,7 +3246,7 @@ VisualTest {
}
Frame {
msec: 5584
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3266,7 +3266,7 @@ VisualTest {
}
Frame {
msec: 5600
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3286,7 +3286,7 @@ VisualTest {
}
Frame {
msec: 5616
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3298,11 +3298,11 @@ VisualTest {
}
Frame {
msec: 5632
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5648
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3314,11 +3314,11 @@ VisualTest {
}
Frame {
msec: 5664
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5680
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3338,7 +3338,7 @@ VisualTest {
}
Frame {
msec: 5696
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3366,7 +3366,7 @@ VisualTest {
}
Frame {
msec: 5712
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3378,7 +3378,7 @@ VisualTest {
}
Frame {
msec: 5728
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3398,7 +3398,7 @@ VisualTest {
}
Frame {
msec: 5744
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3426,7 +3426,7 @@ VisualTest {
}
Frame {
msec: 5760
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3458,7 +3458,7 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3478,7 +3478,7 @@ VisualTest {
}
Frame {
msec: 5808
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3498,7 +3498,7 @@ VisualTest {
}
Frame {
msec: 5824
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3510,7 +3510,7 @@ VisualTest {
}
Frame {
msec: 5840
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3538,7 +3538,7 @@ VisualTest {
}
Frame {
msec: 5856
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3550,7 +3550,7 @@ VisualTest {
}
Frame {
msec: 5872
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3562,7 +3562,7 @@ VisualTest {
}
Frame {
msec: 5888
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3574,15 +3574,15 @@ VisualTest {
}
Frame {
msec: 5904
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5920
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5936
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 5
@@ -3594,27 +3594,27 @@ VisualTest {
}
Frame {
msec: 5952
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5968
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 5984
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6000
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6016
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6032
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 2
@@ -3626,27 +3626,27 @@ VisualTest {
}
Frame {
msec: 6048
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6064
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6080
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6096
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6112
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Frame {
msec: 6128
- hash: "1ff6bba49d815f1257b9870ea528e57a"
+ hash: "325c50ec8928b0a1c5e876c6bab66ed1"
}
Mouse {
type: 3
@@ -3658,23 +3658,23 @@ VisualTest {
}
Frame {
msec: 6144
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6160
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6176
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6192
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6208
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3686,7 +3686,7 @@ VisualTest {
}
Frame {
msec: 6224
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3706,7 +3706,7 @@ VisualTest {
}
Frame {
msec: 6240
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3726,7 +3726,7 @@ VisualTest {
}
Frame {
msec: 6256
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3746,7 +3746,7 @@ VisualTest {
}
Frame {
msec: 6272
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3766,7 +3766,7 @@ VisualTest {
}
Frame {
msec: 6288
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3786,7 +3786,7 @@ VisualTest {
}
Frame {
msec: 6304
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3798,7 +3798,7 @@ VisualTest {
}
Frame {
msec: 6320
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3818,7 +3818,7 @@ VisualTest {
}
Frame {
msec: 6336
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3838,7 +3838,7 @@ VisualTest {
}
Frame {
msec: 6352
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3850,7 +3850,7 @@ VisualTest {
}
Frame {
msec: 6368
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3870,7 +3870,7 @@ VisualTest {
}
Frame {
msec: 6384
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3890,7 +3890,7 @@ VisualTest {
}
Frame {
msec: 6400
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3902,7 +3902,7 @@ VisualTest {
}
Frame {
msec: 6416
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3922,7 +3922,7 @@ VisualTest {
}
Frame {
msec: 6432
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3942,7 +3942,7 @@ VisualTest {
}
Frame {
msec: 6448
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3954,7 +3954,7 @@ VisualTest {
}
Frame {
msec: 6464
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3966,11 +3966,11 @@ VisualTest {
}
Frame {
msec: 6480
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6496
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3982,7 +3982,7 @@ VisualTest {
}
Frame {
msec: 6512
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -3994,15 +3994,15 @@ VisualTest {
}
Frame {
msec: 6528
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6544
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6560
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -4022,7 +4022,7 @@ VisualTest {
}
Frame {
msec: 6576
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -4042,7 +4042,7 @@ VisualTest {
}
Frame {
msec: 6592
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -4054,7 +4054,7 @@ VisualTest {
}
Frame {
msec: 6608
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -4066,7 +4066,7 @@ VisualTest {
}
Frame {
msec: 6624
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -4078,7 +4078,7 @@ VisualTest {
}
Frame {
msec: 6640
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -4090,7 +4090,7 @@ VisualTest {
}
Frame {
msec: 6656
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 5
@@ -4102,19 +4102,19 @@ VisualTest {
}
Frame {
msec: 6672
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6688
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6704
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6720
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6736
@@ -4122,43 +4122,43 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6768
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6784
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6800
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6816
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6832
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6848
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6864
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6880
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6896
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 2
@@ -4170,35 +4170,35 @@ VisualTest {
}
Frame {
msec: 6912
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6928
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6944
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6960
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6976
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 6992
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 7008
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Frame {
msec: 7024
- hash: "cb541daf0716f9b527bf602eb46eb3b7"
+ hash: "80c1909ff71e14021cde943db76a65cb"
}
Mouse {
type: 3
@@ -4210,167 +4210,167 @@ VisualTest {
}
Frame {
msec: 7040
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7056
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7072
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7088
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7104
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7120
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7136
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7152
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7168
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7184
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7200
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7216
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7232
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7248
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7264
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7280
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7296
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7312
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7328
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7344
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7360
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7376
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7392
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7408
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7424
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7440
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7456
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7472
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7488
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7504
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7520
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7536
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7552
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7568
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7584
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7600
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7616
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7632
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7648
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7664
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7680
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Mouse {
type: 2
@@ -4386,31 +4386,31 @@ VisualTest {
}
Frame {
msec: 7712
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7728
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7744
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7760
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7776
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7792
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Frame {
msec: 7808
- hash: "bf3f59e839b915d3ccc51045bfe3bd03"
+ hash: "354f554721815e988ffe2856eebdec53"
}
Mouse {
type: 3
@@ -4422,79 +4422,79 @@ VisualTest {
}
Frame {
msec: 7824
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7840
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7856
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7872
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7888
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7904
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7920
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7936
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7952
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7968
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 7984
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8000
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8016
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8032
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8048
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8064
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8080
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8096
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8112
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4506,7 +4506,7 @@ VisualTest {
}
Frame {
msec: 8128
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4518,7 +4518,7 @@ VisualTest {
}
Frame {
msec: 8144
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4538,7 +4538,7 @@ VisualTest {
}
Frame {
msec: 8160
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4558,7 +4558,7 @@ VisualTest {
}
Frame {
msec: 8176
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4578,7 +4578,7 @@ VisualTest {
}
Frame {
msec: 8192
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4598,7 +4598,7 @@ VisualTest {
}
Frame {
msec: 8208
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4618,7 +4618,7 @@ VisualTest {
}
Frame {
msec: 8224
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4638,7 +4638,7 @@ VisualTest {
}
Frame {
msec: 8240
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4658,7 +4658,7 @@ VisualTest {
}
Frame {
msec: 8256
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4678,7 +4678,7 @@ VisualTest {
}
Frame {
msec: 8272
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4698,7 +4698,7 @@ VisualTest {
}
Frame {
msec: 8288
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4718,19 +4718,19 @@ VisualTest {
}
Frame {
msec: 8304
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8320
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8336
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8352
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4750,7 +4750,7 @@ VisualTest {
}
Frame {
msec: 8368
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4770,7 +4770,7 @@ VisualTest {
}
Frame {
msec: 8384
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4790,7 +4790,7 @@ VisualTest {
}
Frame {
msec: 8400
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4810,7 +4810,7 @@ VisualTest {
}
Frame {
msec: 8416
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4830,7 +4830,7 @@ VisualTest {
}
Frame {
msec: 8432
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4850,7 +4850,7 @@ VisualTest {
}
Frame {
msec: 8448
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4870,7 +4870,7 @@ VisualTest {
}
Frame {
msec: 8464
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4890,7 +4890,7 @@ VisualTest {
}
Frame {
msec: 8480
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4910,7 +4910,7 @@ VisualTest {
}
Frame {
msec: 8496
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4930,7 +4930,7 @@ VisualTest {
}
Frame {
msec: 8512
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4950,7 +4950,7 @@ VisualTest {
}
Frame {
msec: 8528
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4970,7 +4970,7 @@ VisualTest {
}
Frame {
msec: 8544
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -4990,7 +4990,7 @@ VisualTest {
}
Frame {
msec: 8560
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -5010,7 +5010,7 @@ VisualTest {
}
Frame {
msec: 8576
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -5030,7 +5030,7 @@ VisualTest {
}
Frame {
msec: 8592
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -5050,7 +5050,7 @@ VisualTest {
}
Frame {
msec: 8608
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -5070,11 +5070,11 @@ VisualTest {
}
Frame {
msec: 8624
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8640
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8656
@@ -5082,102 +5082,102 @@ VisualTest {
}
Frame {
msec: 8672
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8688
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8704
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8720
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8736
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8752
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8768
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8784
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8800
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8816
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8832
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8848
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8864
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8880
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8896
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8912
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8928
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8944
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8960
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8976
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 8992
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 9008
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 9024
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 9040
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 9056
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
}
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.0.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.0.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.0.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.1.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.1.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.1.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.2.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.2.png
index 35d0512606..2d86eca875 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.2.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.3.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.3.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.3.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.4.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.4.png
index 35d0512606..2d86eca875 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.4.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.5.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.5.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.5.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.6.png b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.6.png
index f1fc0dbe55..fa8a070f27 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.6.png
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.qml b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.qml
index 7b58d8d36c..48aa1bec46 100644
--- a/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.qml
+++ b/tests/declarative-location/visual/test-map-objectview/data/tst-map-objectview.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 48
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 64
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 80
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 96
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 112
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 128
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 144
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 160
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 176
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 192
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 208
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 224
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 240
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 256
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 272
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 288
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 304
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 320
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 336
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 352
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 368
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 384
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 400
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 416
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 432
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 448
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 464
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 480
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 496
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 512
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 528
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 544
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 560
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 576
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 592
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 608
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 624
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 640
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 656
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 672
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 688
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 704
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 720
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 736
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 752
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 768
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 784
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 800
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 816
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 832
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 848
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 864
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 880
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 896
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 912
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 928
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 944
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 960
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 976
@@ -250,39 +250,39 @@ VisualTest {
}
Frame {
msec: 992
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1008
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1024
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1040
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1056
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1072
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1088
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1104
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1120
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -318,7 +318,7 @@ VisualTest {
}
Frame {
msec: 1136
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -330,51 +330,51 @@ VisualTest {
}
Frame {
msec: 1152
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1168
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1184
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1200
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1216
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1232
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1248
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1264
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1280
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1296
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1312
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1328
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -386,7 +386,7 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -398,31 +398,31 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1376
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1392
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1408
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1424
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1440
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1456
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 2
@@ -434,31 +434,31 @@ VisualTest {
}
Frame {
msec: 1472
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1488
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1504
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1520
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1536
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1552
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1568
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 3
@@ -470,63 +470,63 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 1600
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1616
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1632
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1648
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1664
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1680
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1696
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1712
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1728
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1744
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1760
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1776
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1792
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 1808
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -546,7 +546,7 @@ VisualTest {
}
Frame {
msec: 1824
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -566,7 +566,7 @@ VisualTest {
}
Frame {
msec: 1840
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -586,7 +586,7 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -606,7 +606,7 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -626,7 +626,7 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -638,7 +638,7 @@ VisualTest {
}
Frame {
msec: 1904
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -658,7 +658,7 @@ VisualTest {
}
Frame {
msec: 1920
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -698,7 +698,7 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -718,7 +718,7 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -738,7 +738,7 @@ VisualTest {
}
Frame {
msec: 1984
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -758,7 +758,7 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -778,7 +778,7 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -798,7 +798,7 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -818,7 +818,7 @@ VisualTest {
}
Frame {
msec: 2048
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -830,7 +830,7 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -850,7 +850,7 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -870,7 +870,7 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -890,7 +890,7 @@ VisualTest {
}
Frame {
msec: 2112
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -910,7 +910,7 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -930,7 +930,7 @@ VisualTest {
}
Frame {
msec: 2144
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -950,7 +950,7 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -962,7 +962,7 @@ VisualTest {
}
Frame {
msec: 2176
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -974,39 +974,39 @@ VisualTest {
}
Frame {
msec: 2192
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2208
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2224
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2240
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2256
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2272
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2288
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2304
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2320
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 2
@@ -1018,39 +1018,39 @@ VisualTest {
}
Frame {
msec: 2336
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2352
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2368
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2384
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2400
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2416
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2432
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2448
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 2464
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 3
@@ -1062,55 +1062,55 @@ VisualTest {
}
Frame {
msec: 2480
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2496
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2512
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2528
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2544
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2560
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2576
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2592
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2608
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2624
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2640
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2656
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 2672
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1130,7 +1130,7 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1150,7 +1150,7 @@ VisualTest {
}
Frame {
msec: 2704
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1170,7 +1170,7 @@ VisualTest {
}
Frame {
msec: 2720
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1190,7 +1190,7 @@ VisualTest {
}
Frame {
msec: 2736
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1210,7 +1210,7 @@ VisualTest {
}
Frame {
msec: 2752
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1230,7 +1230,7 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1242,7 +1242,7 @@ VisualTest {
}
Frame {
msec: 2784
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1262,7 +1262,7 @@ VisualTest {
}
Frame {
msec: 2800
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1282,7 +1282,7 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1302,7 +1302,7 @@ VisualTest {
}
Frame {
msec: 2832
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1322,7 +1322,7 @@ VisualTest {
}
Frame {
msec: 2848
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1342,7 +1342,7 @@ VisualTest {
}
Frame {
msec: 2864
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1362,7 +1362,7 @@ VisualTest {
}
Frame {
msec: 2880
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1402,7 +1402,7 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1422,7 +1422,7 @@ VisualTest {
}
Frame {
msec: 2928
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1434,7 +1434,7 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1454,7 +1454,7 @@ VisualTest {
}
Frame {
msec: 2960
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1474,7 +1474,7 @@ VisualTest {
}
Frame {
msec: 2976
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1486,7 +1486,7 @@ VisualTest {
}
Frame {
msec: 2992
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1498,7 +1498,7 @@ VisualTest {
}
Frame {
msec: 3008
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1510,7 +1510,7 @@ VisualTest {
}
Frame {
msec: 3024
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1522,11 +1522,11 @@ VisualTest {
}
Frame {
msec: 3040
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3056
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -1538,27 +1538,27 @@ VisualTest {
}
Frame {
msec: 3072
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3088
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3104
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3120
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3136
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3152
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 2
@@ -1570,39 +1570,39 @@ VisualTest {
}
Frame {
msec: 3168
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3184
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3200
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3216
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3232
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3248
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3264
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3280
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 3296
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 3
@@ -1614,35 +1614,35 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3328
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3344
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3360
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3376
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3392
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3408
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3424
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1654,7 +1654,7 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1674,7 +1674,7 @@ VisualTest {
}
Frame {
msec: 3456
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1694,7 +1694,7 @@ VisualTest {
}
Frame {
msec: 3472
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1714,7 +1714,7 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1734,7 +1734,7 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1754,7 +1754,7 @@ VisualTest {
}
Frame {
msec: 3520
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1774,7 +1774,7 @@ VisualTest {
}
Frame {
msec: 3536
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1794,7 +1794,7 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1806,7 +1806,7 @@ VisualTest {
}
Frame {
msec: 3568
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1826,7 +1826,7 @@ VisualTest {
}
Frame {
msec: 3584
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1846,7 +1846,7 @@ VisualTest {
}
Frame {
msec: 3600
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1866,7 +1866,7 @@ VisualTest {
}
Frame {
msec: 3616
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1886,7 +1886,7 @@ VisualTest {
}
Frame {
msec: 3632
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1906,7 +1906,7 @@ VisualTest {
}
Frame {
msec: 3648
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1926,7 +1926,7 @@ VisualTest {
}
Frame {
msec: 3664
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1938,7 +1938,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 5
@@ -1950,43 +1950,43 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3712
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3728
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3744
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3760
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3776
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3792
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3808
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3824
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3840
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3856
@@ -1994,23 +1994,23 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3888
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3904
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3920
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3936
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 2
@@ -2022,27 +2022,27 @@ VisualTest {
}
Frame {
msec: 3952
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3968
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 3984
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4000
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4016
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Frame {
msec: 4032
- hash: "caee2f42a7009c2ed60d436ab6b3e0a7"
+ hash: "e707cb1ffb4ec26de03b086132048277"
}
Mouse {
type: 3
@@ -2054,51 +2054,51 @@ VisualTest {
}
Frame {
msec: 4048
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4064
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4080
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4096
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4112
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4128
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4144
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4160
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4176
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4192
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4208
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4224
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2110,7 +2110,7 @@ VisualTest {
}
Frame {
msec: 4240
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2130,7 +2130,7 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2150,7 +2150,7 @@ VisualTest {
}
Frame {
msec: 4272
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2170,7 +2170,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2190,7 +2190,7 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2210,7 +2210,7 @@ VisualTest {
}
Frame {
msec: 4320
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2230,7 +2230,7 @@ VisualTest {
}
Frame {
msec: 4336
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2250,7 +2250,7 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2270,11 +2270,11 @@ VisualTest {
}
Frame {
msec: 4368
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4384
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2286,7 +2286,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2298,7 +2298,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2310,7 +2310,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2322,31 +2322,31 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4464
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4480
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4496
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4512
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4528
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4544
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2366,7 +2366,7 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2386,7 +2386,7 @@ VisualTest {
}
Frame {
msec: 4576
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2406,7 +2406,7 @@ VisualTest {
}
Frame {
msec: 4592
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2426,7 +2426,7 @@ VisualTest {
}
Frame {
msec: 4608
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2438,7 +2438,7 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2466,7 +2466,7 @@ VisualTest {
}
Frame {
msec: 4640
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2486,7 +2486,7 @@ VisualTest {
}
Frame {
msec: 4656
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2506,11 +2506,11 @@ VisualTest {
}
Frame {
msec: 4672
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4688
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2522,7 +2522,7 @@ VisualTest {
}
Frame {
msec: 4704
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2542,7 +2542,7 @@ VisualTest {
}
Frame {
msec: 4720
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2562,7 +2562,7 @@ VisualTest {
}
Frame {
msec: 4736
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2582,7 +2582,7 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2602,7 +2602,7 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2622,7 +2622,7 @@ VisualTest {
}
Frame {
msec: 4784
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2642,7 +2642,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2682,7 +2682,7 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2702,7 +2702,7 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2722,7 +2722,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2734,7 +2734,7 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2754,7 +2754,7 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2774,11 +2774,11 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4928
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2798,11 +2798,11 @@ VisualTest {
}
Frame {
msec: 4944
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 4960
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2822,7 +2822,7 @@ VisualTest {
}
Frame {
msec: 4976
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2842,7 +2842,7 @@ VisualTest {
}
Frame {
msec: 4992
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2862,7 +2862,7 @@ VisualTest {
}
Frame {
msec: 5008
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2882,7 +2882,7 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2894,11 +2894,11 @@ VisualTest {
}
Frame {
msec: 5040
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5056
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2910,7 +2910,7 @@ VisualTest {
}
Frame {
msec: 5072
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2930,7 +2930,7 @@ VisualTest {
}
Frame {
msec: 5088
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -2950,19 +2950,19 @@ VisualTest {
}
Frame {
msec: 5104
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5120
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5136
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5152
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 2
@@ -2974,23 +2974,23 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5184
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5200
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5216
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5232
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 3
@@ -3002,19 +3002,19 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5264
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5280
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5296
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3026,7 +3026,7 @@ VisualTest {
}
Frame {
msec: 5312
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3046,7 +3046,7 @@ VisualTest {
}
Frame {
msec: 5328
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3066,7 +3066,7 @@ VisualTest {
}
Frame {
msec: 5344
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3086,7 +3086,7 @@ VisualTest {
}
Frame {
msec: 5360
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3106,7 +3106,7 @@ VisualTest {
}
Frame {
msec: 5376
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3126,7 +3126,7 @@ VisualTest {
}
Frame {
msec: 5392
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3146,7 +3146,7 @@ VisualTest {
}
Frame {
msec: 5408
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3166,7 +3166,7 @@ VisualTest {
}
Frame {
msec: 5424
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3186,7 +3186,7 @@ VisualTest {
}
Frame {
msec: 5440
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3206,7 +3206,7 @@ VisualTest {
}
Frame {
msec: 5456
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3226,7 +3226,7 @@ VisualTest {
}
Frame {
msec: 5472
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3246,7 +3246,7 @@ VisualTest {
}
Frame {
msec: 5488
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3266,7 +3266,7 @@ VisualTest {
}
Frame {
msec: 5504
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3286,7 +3286,7 @@ VisualTest {
}
Frame {
msec: 5520
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3306,7 +3306,7 @@ VisualTest {
}
Frame {
msec: 5536
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3326,7 +3326,7 @@ VisualTest {
}
Frame {
msec: 5552
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3346,7 +3346,7 @@ VisualTest {
}
Frame {
msec: 5568
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3366,7 +3366,7 @@ VisualTest {
}
Frame {
msec: 5584
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3386,7 +3386,7 @@ VisualTest {
}
Frame {
msec: 5600
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3406,7 +3406,7 @@ VisualTest {
}
Frame {
msec: 5616
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3426,7 +3426,7 @@ VisualTest {
}
Frame {
msec: 5632
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3446,7 +3446,7 @@ VisualTest {
}
Frame {
msec: 5648
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3466,7 +3466,7 @@ VisualTest {
}
Frame {
msec: 5664
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3486,7 +3486,7 @@ VisualTest {
}
Frame {
msec: 5680
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Mouse {
type: 5
@@ -3506,23 +3506,23 @@ VisualTest {
}
Frame {
msec: 5696
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5712
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5728
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5744
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5760
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5776
@@ -3530,178 +3530,178 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5808
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5824
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5840
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5856
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5872
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5888
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5904
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5920
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5936
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5952
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5968
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 5984
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6000
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6016
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6032
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6048
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6064
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6080
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6096
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6112
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6128
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6144
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6160
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6176
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6192
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6208
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6224
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6240
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6256
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6272
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6288
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6304
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6320
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6336
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6352
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6368
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6384
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6400
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6416
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6432
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6448
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6464
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
Frame {
msec: 6480
- hash: "58a7b5eb0631edb2026dc3ccceb7ff1d"
+ hash: "2c2643a64c7d8ad7c646d04eb9cd044c"
}
}
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.0.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.0.png
index f426a6b09d..180276c1d9 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.0.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.1.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.1.png
index f426a6b09d..180276c1d9 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.1.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.10.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.10.png
index f426a6b09d..180276c1d9 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.10.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.10.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.2.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.2.png
index 30a8689ddf..8ff4b61282 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.2.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.3.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.3.png
index 087ff31fa0..b28c536ef1 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.3.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.4.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.4.png
index 64a852d946..2e9748b272 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.4.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.5.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.5.png
index 087ff31fa0..b28c536ef1 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.5.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.6.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.6.png
index 30a8689ddf..8ff4b61282 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.6.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.7.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.7.png
index 30a8689ddf..8ff4b61282 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.7.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.8.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.8.png
index 30a8689ddf..8ff4b61282 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.8.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.8.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.9.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.9.png
index f426a6b09d..180276c1d9 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.9.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.9.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.qml b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.qml
index 3d2ccbff33..b264ecd0f5 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.qml
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-add-remove-objects.qml
@@ -10,223 +10,223 @@ VisualTest {
}
Frame {
msec: 32
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 48
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 64
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 80
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 96
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 112
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 128
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 144
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 160
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 176
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 192
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 208
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 224
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 240
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 256
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 272
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 288
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 304
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 320
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 336
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 352
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 368
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 384
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 400
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 416
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 432
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 448
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 464
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 480
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 496
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 512
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 528
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 544
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 560
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 576
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 592
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 608
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 624
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 640
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 656
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 672
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 688
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 704
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 720
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 736
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 752
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 768
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 784
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 800
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 816
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 832
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 848
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 864
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 880
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 896
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -254,7 +254,7 @@ VisualTest {
}
Frame {
msec: 912
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -274,7 +274,7 @@ VisualTest {
}
Frame {
msec: 928
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -294,7 +294,7 @@ VisualTest {
}
Frame {
msec: 944
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -314,7 +314,7 @@ VisualTest {
}
Frame {
msec: 960
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -354,31 +354,31 @@ VisualTest {
}
Frame {
msec: 992
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1008
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1024
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1040
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1056
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1072
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1088
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -398,7 +398,7 @@ VisualTest {
}
Frame {
msec: 1104
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -418,7 +418,7 @@ VisualTest {
}
Frame {
msec: 1120
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -438,7 +438,7 @@ VisualTest {
}
Frame {
msec: 1136
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -458,7 +458,7 @@ VisualTest {
}
Frame {
msec: 1152
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -478,7 +478,7 @@ VisualTest {
}
Frame {
msec: 1168
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -498,7 +498,7 @@ VisualTest {
}
Frame {
msec: 1184
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -518,7 +518,7 @@ VisualTest {
}
Frame {
msec: 1200
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -538,7 +538,7 @@ VisualTest {
}
Frame {
msec: 1216
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -558,7 +558,7 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -578,7 +578,7 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -598,7 +598,7 @@ VisualTest {
}
Frame {
msec: 1264
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -618,7 +618,7 @@ VisualTest {
}
Frame {
msec: 1280
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -638,11 +638,11 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1312
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -654,7 +654,7 @@ VisualTest {
}
Frame {
msec: 1328
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -666,23 +666,23 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1360
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1376
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1392
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1408
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -694,43 +694,43 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1440
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1456
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1472
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1488
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1504
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1520
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1536
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1552
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1568
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 2
@@ -742,31 +742,31 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1600
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1616
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1632
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1648
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1664
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1680
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 3
@@ -778,63 +778,63 @@ VisualTest {
}
Frame {
msec: 1696
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1712
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1728
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1744
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1760
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1776
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1792
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1808
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1824
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1840
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1856
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1872
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1888
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1904
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 1920
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -874,7 +874,7 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -894,7 +894,7 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -914,7 +914,7 @@ VisualTest {
}
Frame {
msec: 1984
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -934,7 +934,7 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -954,7 +954,7 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -974,7 +974,7 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -986,63 +986,63 @@ VisualTest {
}
Frame {
msec: 2048
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2064
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2080
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2096
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2112
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2128
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2144
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2160
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2176
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2192
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2208
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2224
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2240
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2256
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2272
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 2
@@ -1054,27 +1054,27 @@ VisualTest {
}
Frame {
msec: 2288
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2304
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2320
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2336
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2352
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 2368
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 3
@@ -1086,63 +1086,63 @@ VisualTest {
}
Frame {
msec: 2384
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2400
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2416
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2432
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2448
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2464
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2480
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2496
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2512
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2528
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2544
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2560
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2576
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2592
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2608
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1162,7 +1162,7 @@ VisualTest {
}
Frame {
msec: 2624
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1182,7 +1182,7 @@ VisualTest {
}
Frame {
msec: 2640
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1202,7 +1202,7 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1222,7 +1222,7 @@ VisualTest {
}
Frame {
msec: 2672
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1242,7 +1242,7 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1262,7 +1262,7 @@ VisualTest {
}
Frame {
msec: 2704
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1282,7 +1282,7 @@ VisualTest {
}
Frame {
msec: 2720
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1302,7 +1302,7 @@ VisualTest {
}
Frame {
msec: 2736
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1322,7 +1322,7 @@ VisualTest {
}
Frame {
msec: 2752
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1342,7 +1342,7 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1362,7 +1362,7 @@ VisualTest {
}
Frame {
msec: 2784
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1382,7 +1382,7 @@ VisualTest {
}
Frame {
msec: 2800
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1394,23 +1394,23 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2832
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2848
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2864
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2880
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2896
@@ -1418,43 +1418,43 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2928
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2944
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2960
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2976
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 2992
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3008
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3024
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3040
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3056
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 2
@@ -1466,31 +1466,31 @@ VisualTest {
}
Frame {
msec: 3072
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3088
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3104
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3120
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3136
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3152
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3168
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 3
@@ -1502,51 +1502,51 @@ VisualTest {
}
Frame {
msec: 3184
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3200
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3216
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3232
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3248
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3264
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3280
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3296
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3312
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3328
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3344
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3360
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1558,7 +1558,7 @@ VisualTest {
}
Frame {
msec: 3376
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1578,7 +1578,7 @@ VisualTest {
}
Frame {
msec: 3392
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1598,7 +1598,7 @@ VisualTest {
}
Frame {
msec: 3408
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1618,7 +1618,7 @@ VisualTest {
}
Frame {
msec: 3424
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1638,7 +1638,7 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1658,7 +1658,7 @@ VisualTest {
}
Frame {
msec: 3456
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1678,7 +1678,7 @@ VisualTest {
}
Frame {
msec: 3472
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1698,7 +1698,7 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1718,7 +1718,7 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1730,7 +1730,7 @@ VisualTest {
}
Frame {
msec: 3520
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1758,7 +1758,7 @@ VisualTest {
}
Frame {
msec: 3536
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1778,7 +1778,7 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1790,11 +1790,11 @@ VisualTest {
}
Frame {
msec: 3568
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3584
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 5
@@ -1806,59 +1806,59 @@ VisualTest {
}
Frame {
msec: 3600
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3616
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3632
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3648
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3664
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3680
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3696
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3712
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3728
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3744
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3760
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3776
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3792
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3808
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 2
@@ -1870,11 +1870,11 @@ VisualTest {
}
Frame {
msec: 3824
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3840
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3856
@@ -1882,23 +1882,23 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3888
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3904
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3920
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Frame {
msec: 3936
- hash: "12b45e7795503626d2d847b7342ac875"
+ hash: "1993dc9d327da5ddb098de7194b55405"
}
Mouse {
type: 3
@@ -1910,67 +1910,67 @@ VisualTest {
}
Frame {
msec: 3952
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3968
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 3984
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4000
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4016
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4032
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4048
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4064
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4080
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4096
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4112
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4128
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4144
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4160
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4176
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4192
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -1982,7 +1982,7 @@ VisualTest {
}
Frame {
msec: 4208
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2002,7 +2002,7 @@ VisualTest {
}
Frame {
msec: 4224
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2022,7 +2022,7 @@ VisualTest {
}
Frame {
msec: 4240
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2042,7 +2042,7 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2062,7 +2062,7 @@ VisualTest {
}
Frame {
msec: 4272
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2082,7 +2082,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2102,7 +2102,7 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2122,7 +2122,7 @@ VisualTest {
}
Frame {
msec: 4320
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2142,7 +2142,7 @@ VisualTest {
}
Frame {
msec: 4336
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2154,7 +2154,7 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2166,7 +2166,7 @@ VisualTest {
}
Frame {
msec: 4368
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2178,7 +2178,7 @@ VisualTest {
}
Frame {
msec: 4384
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2198,7 +2198,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2210,7 +2210,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2230,7 +2230,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2242,7 +2242,7 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2262,11 +2262,11 @@ VisualTest {
}
Frame {
msec: 4464
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4480
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2278,7 +2278,7 @@ VisualTest {
}
Frame {
msec: 4496
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2290,7 +2290,7 @@ VisualTest {
}
Frame {
msec: 4512
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2310,7 +2310,7 @@ VisualTest {
}
Frame {
msec: 4528
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2330,11 +2330,11 @@ VisualTest {
}
Frame {
msec: 4544
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4560
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 5
@@ -2346,39 +2346,39 @@ VisualTest {
}
Frame {
msec: 4576
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4592
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4608
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4624
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4640
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4656
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4672
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4688
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4704
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 2
@@ -2390,27 +2390,27 @@ VisualTest {
}
Frame {
msec: 4720
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4736
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4752
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4768
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4784
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4800
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Frame {
msec: 4816
@@ -2418,7 +2418,7 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "64d641293bbf4f1950f9a6e9bb91b408"
+ hash: "29d8cef025c6f2a07a8a8d9e80f26125"
}
Mouse {
type: 3
@@ -2430,67 +2430,67 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4864
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4880
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4896
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4912
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4928
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4944
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4960
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4976
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 4992
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5008
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5024
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5040
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5056
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5072
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5088
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2510,7 +2510,7 @@ VisualTest {
}
Frame {
msec: 5104
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2530,7 +2530,7 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2550,7 +2550,7 @@ VisualTest {
}
Frame {
msec: 5136
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2570,7 +2570,7 @@ VisualTest {
}
Frame {
msec: 5152
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2590,7 +2590,7 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2602,7 +2602,7 @@ VisualTest {
}
Frame {
msec: 5184
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2630,7 +2630,7 @@ VisualTest {
}
Frame {
msec: 5200
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2650,7 +2650,7 @@ VisualTest {
}
Frame {
msec: 5216
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2670,7 +2670,7 @@ VisualTest {
}
Frame {
msec: 5232
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2690,7 +2690,7 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2710,7 +2710,7 @@ VisualTest {
}
Frame {
msec: 5264
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2730,7 +2730,7 @@ VisualTest {
}
Frame {
msec: 5280
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2750,7 +2750,7 @@ VisualTest {
}
Frame {
msec: 5296
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2770,7 +2770,7 @@ VisualTest {
}
Frame {
msec: 5312
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2790,7 +2790,7 @@ VisualTest {
}
Frame {
msec: 5328
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2802,11 +2802,11 @@ VisualTest {
}
Frame {
msec: 5344
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5360
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2818,7 +2818,7 @@ VisualTest {
}
Frame {
msec: 5376
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2830,11 +2830,11 @@ VisualTest {
}
Frame {
msec: 5392
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5408
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2846,7 +2846,7 @@ VisualTest {
}
Frame {
msec: 5424
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2858,7 +2858,7 @@ VisualTest {
}
Frame {
msec: 5440
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2878,7 +2878,7 @@ VisualTest {
}
Frame {
msec: 5456
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2898,7 +2898,7 @@ VisualTest {
}
Frame {
msec: 5472
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2910,7 +2910,7 @@ VisualTest {
}
Frame {
msec: 5488
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -2922,39 +2922,39 @@ VisualTest {
}
Frame {
msec: 5504
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5520
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5536
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5552
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5568
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5584
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5600
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5616
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5632
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 2
@@ -2966,35 +2966,35 @@ VisualTest {
}
Frame {
msec: 5648
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5664
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5680
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5696
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5712
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5728
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5744
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5760
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 5776
@@ -3010,51 +3010,51 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5808
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5824
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5840
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5856
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5872
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5888
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5904
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5920
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5936
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5952
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 5968
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3066,7 +3066,7 @@ VisualTest {
}
Frame {
msec: 5984
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3086,7 +3086,7 @@ VisualTest {
}
Frame {
msec: 6000
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3106,7 +3106,7 @@ VisualTest {
}
Frame {
msec: 6016
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3126,7 +3126,7 @@ VisualTest {
}
Frame {
msec: 6032
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3146,7 +3146,7 @@ VisualTest {
}
Frame {
msec: 6048
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3166,7 +3166,7 @@ VisualTest {
}
Frame {
msec: 6064
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3186,7 +3186,7 @@ VisualTest {
}
Frame {
msec: 6080
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3206,7 +3206,7 @@ VisualTest {
}
Frame {
msec: 6096
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3226,7 +3226,7 @@ VisualTest {
}
Frame {
msec: 6112
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3246,7 +3246,7 @@ VisualTest {
}
Frame {
msec: 6128
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3258,7 +3258,7 @@ VisualTest {
}
Frame {
msec: 6144
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3270,7 +3270,7 @@ VisualTest {
}
Frame {
msec: 6160
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3282,11 +3282,11 @@ VisualTest {
}
Frame {
msec: 6176
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6192
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -3298,63 +3298,63 @@ VisualTest {
}
Frame {
msec: 6208
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6224
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6240
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6256
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6272
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6288
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6304
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6320
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6336
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6352
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6368
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6384
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6400
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6416
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6432
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 2
@@ -3366,35 +3366,35 @@ VisualTest {
}
Frame {
msec: 6448
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6464
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6480
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6496
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6512
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6528
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6544
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 6560
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 3
@@ -3406,7 +3406,7 @@ VisualTest {
}
Frame {
msec: 6576
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3418,7 +3418,7 @@ VisualTest {
}
Frame {
msec: 6592
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3430,15 +3430,15 @@ VisualTest {
}
Frame {
msec: 6608
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 6624
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 6640
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3450,11 +3450,11 @@ VisualTest {
}
Frame {
msec: 6656
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 6672
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3466,7 +3466,7 @@ VisualTest {
}
Frame {
msec: 6688
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3486,7 +3486,7 @@ VisualTest {
}
Frame {
msec: 6704
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3506,7 +3506,7 @@ VisualTest {
}
Frame {
msec: 6720
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3530,7 +3530,7 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3542,7 +3542,7 @@ VisualTest {
}
Frame {
msec: 6768
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3554,7 +3554,7 @@ VisualTest {
}
Frame {
msec: 6784
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3574,7 +3574,7 @@ VisualTest {
}
Frame {
msec: 6800
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3594,7 +3594,7 @@ VisualTest {
}
Frame {
msec: 6816
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3614,7 +3614,7 @@ VisualTest {
}
Frame {
msec: 6832
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3634,7 +3634,7 @@ VisualTest {
}
Frame {
msec: 6848
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3654,7 +3654,7 @@ VisualTest {
}
Frame {
msec: 6864
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3674,7 +3674,7 @@ VisualTest {
}
Frame {
msec: 6880
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3694,7 +3694,7 @@ VisualTest {
}
Frame {
msec: 6896
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3714,7 +3714,7 @@ VisualTest {
}
Frame {
msec: 6912
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3734,7 +3734,7 @@ VisualTest {
}
Frame {
msec: 6928
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3754,7 +3754,7 @@ VisualTest {
}
Frame {
msec: 6944
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3774,7 +3774,7 @@ VisualTest {
}
Frame {
msec: 6960
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3794,7 +3794,7 @@ VisualTest {
}
Frame {
msec: 6976
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3806,7 +3806,7 @@ VisualTest {
}
Frame {
msec: 6992
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3826,11 +3826,11 @@ VisualTest {
}
Frame {
msec: 7008
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7024
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -3842,87 +3842,87 @@ VisualTest {
}
Frame {
msec: 7040
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7056
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7072
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7088
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7104
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7120
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7136
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7152
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7168
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7184
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7200
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7216
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7232
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7248
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7264
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7280
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7296
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7312
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7328
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7344
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7360
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 2
@@ -3934,35 +3934,35 @@ VisualTest {
}
Frame {
msec: 7376
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7392
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7408
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7424
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7440
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7456
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7472
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7488
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 3
@@ -3974,51 +3974,51 @@ VisualTest {
}
Frame {
msec: 7504
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7520
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7536
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7552
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7568
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7584
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7600
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7616
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7632
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7648
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7664
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7680
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7696
@@ -4026,19 +4026,19 @@ VisualTest {
}
Frame {
msec: 7712
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7728
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7744
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 7760
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4050,7 +4050,7 @@ VisualTest {
}
Frame {
msec: 7776
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4070,7 +4070,7 @@ VisualTest {
}
Frame {
msec: 7792
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4090,7 +4090,7 @@ VisualTest {
}
Frame {
msec: 7808
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4110,7 +4110,7 @@ VisualTest {
}
Frame {
msec: 7824
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4130,7 +4130,7 @@ VisualTest {
}
Frame {
msec: 7840
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4150,7 +4150,7 @@ VisualTest {
}
Frame {
msec: 7856
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4170,7 +4170,7 @@ VisualTest {
}
Frame {
msec: 7872
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4190,7 +4190,7 @@ VisualTest {
}
Frame {
msec: 7888
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4210,7 +4210,7 @@ VisualTest {
}
Frame {
msec: 7904
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4230,7 +4230,7 @@ VisualTest {
}
Frame {
msec: 7920
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4242,7 +4242,7 @@ VisualTest {
}
Frame {
msec: 7936
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4262,7 +4262,7 @@ VisualTest {
}
Frame {
msec: 7952
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4274,7 +4274,7 @@ VisualTest {
}
Frame {
msec: 7968
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4286,7 +4286,7 @@ VisualTest {
}
Frame {
msec: 7984
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4298,11 +4298,11 @@ VisualTest {
}
Frame {
msec: 8000
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8016
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4322,7 +4322,7 @@ VisualTest {
}
Frame {
msec: 8032
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4334,7 +4334,7 @@ VisualTest {
}
Frame {
msec: 8048
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4346,7 +4346,7 @@ VisualTest {
}
Frame {
msec: 8064
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4366,7 +4366,7 @@ VisualTest {
}
Frame {
msec: 8080
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 5
@@ -4378,63 +4378,63 @@ VisualTest {
}
Frame {
msec: 8096
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8112
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8128
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8144
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8160
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8176
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8192
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8208
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8224
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8240
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8256
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8272
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8288
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8304
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8320
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 2
@@ -4446,35 +4446,35 @@ VisualTest {
}
Frame {
msec: 8336
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8352
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8368
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8384
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8400
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8416
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8432
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Frame {
msec: 8448
- hash: "56301b3b41631db674ab62b8b229e2b7"
+ hash: "cd7e23e8935cadb6ab6ced016d1afa4d"
}
Mouse {
type: 3
@@ -4486,51 +4486,51 @@ VisualTest {
}
Frame {
msec: 8464
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8480
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8496
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8512
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8528
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8544
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8560
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8576
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8592
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8608
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8624
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8640
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8656
@@ -4538,27 +4538,27 @@ VisualTest {
}
Frame {
msec: 8672
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8688
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8704
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8720
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8736
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 8752
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4578,7 +4578,7 @@ VisualTest {
}
Frame {
msec: 8768
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4598,7 +4598,7 @@ VisualTest {
}
Frame {
msec: 8784
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4618,7 +4618,7 @@ VisualTest {
}
Frame {
msec: 8800
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4630,7 +4630,7 @@ VisualTest {
}
Frame {
msec: 8816
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4658,7 +4658,7 @@ VisualTest {
}
Frame {
msec: 8832
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4678,7 +4678,7 @@ VisualTest {
}
Frame {
msec: 8848
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4698,7 +4698,7 @@ VisualTest {
}
Frame {
msec: 8864
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4718,7 +4718,7 @@ VisualTest {
}
Frame {
msec: 8880
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4738,7 +4738,7 @@ VisualTest {
}
Frame {
msec: 8896
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4758,7 +4758,7 @@ VisualTest {
}
Frame {
msec: 8912
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4778,7 +4778,7 @@ VisualTest {
}
Frame {
msec: 8928
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4798,7 +4798,7 @@ VisualTest {
}
Frame {
msec: 8944
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4818,7 +4818,7 @@ VisualTest {
}
Frame {
msec: 8960
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4838,7 +4838,7 @@ VisualTest {
}
Frame {
msec: 8976
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -4850,159 +4850,159 @@ VisualTest {
}
Frame {
msec: 8992
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9008
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9024
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9040
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9056
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9072
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9088
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9104
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9120
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9136
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9152
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9168
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9184
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9200
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9216
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9232
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9248
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9264
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9280
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9296
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9312
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9328
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9344
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9360
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9376
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9392
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9408
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9424
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9440
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9456
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9472
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9488
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9504
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9520
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9536
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9552
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9568
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9584
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9600
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9616
@@ -5010,50 +5010,50 @@ VisualTest {
}
Frame {
msec: 9632
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9648
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9664
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9680
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9696
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9712
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9728
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9744
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9760
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9776
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9792
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 9808
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
}
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.0.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.0.png
index f426a6b09d..180276c1d9 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.0.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.1.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.1.png
index f426a6b09d..180276c1d9 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.1.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.2.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.2.png
index f426a6b09d..180276c1d9 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.2.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.3.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.3.png
index 92ace0f431..32330cce0b 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.3.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.4.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.4.png
index 8d79a32f35..feea937a47 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.4.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.5.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.5.png
index 2a390af17a..9f8a45780a 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.5.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.6.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.6.png
index 143d59176a..700802bb9e 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.6.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.7.png b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.7.png
index 143d59176a..700802bb9e 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.7.png
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.qml b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.qml
index 92315eb99f..68fc5064a6 100644
--- a/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.qml
+++ b/tests/declarative-location/visual/test-map-polygon/data/polygon-pan-map.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 48
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 64
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 80
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 96
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 112
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 128
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 144
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 160
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 176
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 192
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 208
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 224
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 240
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 256
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 272
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 288
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 304
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 320
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 336
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 352
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 368
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 384
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 400
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 416
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 432
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 448
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 464
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 480
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 496
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 512
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 528
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 544
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 560
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 576
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 592
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 608
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 624
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 640
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 656
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 672
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 688
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 704
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 720
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 736
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 752
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 768
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 784
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 800
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 816
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 832
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 848
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 864
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 880
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 896
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 912
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 928
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 944
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 960
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 976
@@ -250,51 +250,51 @@ VisualTest {
}
Frame {
msec: 992
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1008
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1024
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1040
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1056
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1072
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1088
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1104
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1120
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1136
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1152
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1168
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -314,7 +314,7 @@ VisualTest {
}
Frame {
msec: 1184
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -334,7 +334,7 @@ VisualTest {
}
Frame {
msec: 1200
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -354,7 +354,7 @@ VisualTest {
}
Frame {
msec: 1216
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -374,7 +374,7 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -394,7 +394,7 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -414,7 +414,7 @@ VisualTest {
}
Frame {
msec: 1264
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -434,7 +434,7 @@ VisualTest {
}
Frame {
msec: 1280
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -454,7 +454,7 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -474,7 +474,7 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -494,7 +494,7 @@ VisualTest {
}
Frame {
msec: 1328
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -514,7 +514,7 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -534,7 +534,7 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -546,27 +546,27 @@ VisualTest {
}
Frame {
msec: 1376
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1392
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1408
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1424
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1440
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1456
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -586,7 +586,7 @@ VisualTest {
}
Frame {
msec: 1472
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -606,7 +606,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -626,7 +626,7 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -646,7 +646,7 @@ VisualTest {
}
Frame {
msec: 1520
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -666,7 +666,7 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -686,7 +686,7 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -706,7 +706,7 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -718,7 +718,7 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -730,7 +730,7 @@ VisualTest {
}
Frame {
msec: 1600
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -742,7 +742,7 @@ VisualTest {
}
Frame {
msec: 1616
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -754,15 +754,15 @@ VisualTest {
}
Frame {
msec: 1632
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1648
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1664
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -774,39 +774,39 @@ VisualTest {
}
Frame {
msec: 1680
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1696
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1712
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1728
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1744
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1760
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1776
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1792
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1808
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -818,11 +818,11 @@ VisualTest {
}
Frame {
msec: 1824
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1840
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -834,7 +834,7 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -846,19 +846,19 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1888
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1904
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1920
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1936
@@ -866,31 +866,31 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1968
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 1984
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2000
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2016
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2032
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2048
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 2
@@ -902,67 +902,67 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2080
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2096
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2112
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2128
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2144
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2160
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2176
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2192
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2208
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2224
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2240
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2256
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2272
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2288
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Frame {
msec: 2304
- hash: "a100d99d45e9f3a24f4bb9a287a8892a"
+ hash: "47b74bd25faba4b012bf44ba01abaa75"
}
Mouse {
type: 5
@@ -974,7 +974,7 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "7870cdb32fd959820621fd04eef1b742"
+ hash: "27402c514ca2dd834752c82ae896b33a"
}
Mouse {
type: 5
@@ -994,7 +994,7 @@ VisualTest {
}
Frame {
msec: 2336
- hash: "b3dd88282391ba7ed179d8dae64794fb"
+ hash: "521dae2f2b074f715bd4a0f0ab713ab9"
}
Mouse {
type: 5
@@ -1014,7 +1014,7 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "4e842f9825f6cf2ab160f0bac33a17b4"
+ hash: "7d80837786564e9a56ca6dd8efa15b6e"
}
Mouse {
type: 5
@@ -1034,7 +1034,7 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "4bbf7c8fed0f8e299f6e8bf8e21329a2"
+ hash: "03dde47a1fdda73959c0ee11049d4752"
}
Mouse {
type: 5
@@ -1054,7 +1054,7 @@ VisualTest {
}
Frame {
msec: 2384
- hash: "6711c28689db6a1e3b66bd4834d96133"
+ hash: "7940e011a91586eefe6fdc0688084193"
}
Mouse {
type: 5
@@ -1066,7 +1066,7 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "20b59af177902b0fb2581e707b35e126"
+ hash: "f7fa386c17ea11b76d8d9644a3ccd0c6"
}
Mouse {
type: 5
@@ -1078,7 +1078,7 @@ VisualTest {
}
Frame {
msec: 2416
- hash: "284f74e1a1226710d591d9c712d57801"
+ hash: "16b7abd979612d7ed9c39108a434c4e0"
}
Mouse {
type: 5
@@ -1098,7 +1098,7 @@ VisualTest {
}
Frame {
msec: 2432
- hash: "337515db48a9e1284d46daa262025420"
+ hash: "76c20c975966c9c2cf36fdff41398b6f"
}
Mouse {
type: 5
@@ -1118,7 +1118,7 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "eb4375a6be8eecd14f3e5bf7a6ebd461"
+ hash: "3127f95e7b2ec262d05af8fac3bf1f4e"
}
Mouse {
type: 5
@@ -1138,7 +1138,7 @@ VisualTest {
}
Frame {
msec: 2464
- hash: "8de3005bdaae013d4697e78c91b3b38a"
+ hash: "6b682404a51c7d951424607f124f417f"
}
Mouse {
type: 5
@@ -1158,7 +1158,7 @@ VisualTest {
}
Frame {
msec: 2480
- hash: "e67a44322a28949bdc04ae336eaf2ace"
+ hash: "926860476372503a40105c0aa29dbcd5"
}
Mouse {
type: 5
@@ -1178,7 +1178,7 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "9456105c77ced562455c9d8c596c5bdb"
+ hash: "48585005c0f2197fa215d4c90d32c95a"
}
Mouse {
type: 5
@@ -1198,7 +1198,7 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "512c91132bf3a3fdb2f6e8d40622c87a"
+ hash: "6d6e2a65c634ad0cbd369f3e0472a1e5"
}
Mouse {
type: 5
@@ -1210,7 +1210,7 @@ VisualTest {
}
Frame {
msec: 2528
- hash: "ccf37d78e3f9d93e76e32cd4b2fbb3cb"
+ hash: "e43a1dbcb63fa17dc92baa2959ebc918"
}
Mouse {
type: 5
@@ -1222,11 +1222,11 @@ VisualTest {
}
Frame {
msec: 2544
- hash: "d11edbacaa20c0b5c1dae8f98b8c6e80"
+ hash: "5b7ed8d402402cc3625d152b36ddb0b8"
}
Frame {
msec: 2560
- hash: "d11edbacaa20c0b5c1dae8f98b8c6e80"
+ hash: "5b7ed8d402402cc3625d152b36ddb0b8"
}
Mouse {
type: 5
@@ -1246,7 +1246,7 @@ VisualTest {
}
Frame {
msec: 2576
- hash: "4126c3a8282df1402c9d0895fd8b1d4d"
+ hash: "d1d3dca30e74df72437902c8d94642e3"
}
Mouse {
type: 5
@@ -1266,7 +1266,7 @@ VisualTest {
}
Frame {
msec: 2592
- hash: "55fc3cb71c3fb0c095b195c59af0acae"
+ hash: "56e3ad1c5566b61837a19287b4fec894"
}
Mouse {
type: 5
@@ -1286,7 +1286,7 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "a837d6a9dd1a8f4267a17bb2273b17a9"
+ hash: "f6551607995dfa631d990fc115eac868"
}
Mouse {
type: 5
@@ -1306,7 +1306,7 @@ VisualTest {
}
Frame {
msec: 2624
- hash: "af9c916642fcef473da8fd5d720cbb9f"
+ hash: "2e29ed67fa3e157530e7e2446d5d1137"
}
Mouse {
type: 5
@@ -1318,7 +1318,7 @@ VisualTest {
}
Frame {
msec: 2640
- hash: "a696f65a4feb9def19e3ff3ffa5cd135"
+ hash: "59d456ee7607e557ef95d3fd220820b1"
}
Mouse {
type: 5
@@ -1338,7 +1338,7 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "fad02ed5a785411de14978385c14d4d9"
+ hash: "d6ec1f84a0cf6146e383b4dc47626b12"
}
Mouse {
type: 5
@@ -1358,7 +1358,7 @@ VisualTest {
}
Frame {
msec: 2672
- hash: "0be71385b3a8511b1db6957479867dde"
+ hash: "13160b3041ba8bc364d49088ab72d380"
}
Mouse {
type: 5
@@ -1378,7 +1378,7 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "06a790d83b15ebbe73540e9657847a07"
+ hash: "868a05bac4a11a09a9d40bed11401857"
}
Mouse {
type: 5
@@ -1398,7 +1398,7 @@ VisualTest {
}
Frame {
msec: 2704
- hash: "765f935d5ea70a9c8a6583eb006eb6dc"
+ hash: "a66717654833b08962202c3458e24cf1"
}
Mouse {
type: 5
@@ -1418,7 +1418,7 @@ VisualTest {
}
Frame {
msec: 2720
- hash: "82db7a7296685825e657c39f16d222e2"
+ hash: "16a880329801fa8a9ff6e7516e1e3e95"
}
Mouse {
type: 5
@@ -1438,7 +1438,7 @@ VisualTest {
}
Frame {
msec: 2736
- hash: "40ff18e1a7f5c8d8e733d1ba0c238e3d"
+ hash: "c20322ccdcf1f0972d2807c6a8382dee"
}
Mouse {
type: 5
@@ -1458,7 +1458,7 @@ VisualTest {
}
Frame {
msec: 2752
- hash: "4ba3b91e11ce488df23d122c5161c36e"
+ hash: "eb0973cba69efd2ace79ad0f172cd099"
}
Mouse {
type: 5
@@ -1478,7 +1478,7 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "719623370eafe310352de7e1bda45e8d"
+ hash: "7d822e72ee71f8d96055f1c39a26a642"
}
Mouse {
type: 5
@@ -1498,7 +1498,7 @@ VisualTest {
}
Frame {
msec: 2784
- hash: "02d0c7405df7802f851bdf07c958a27e"
+ hash: "9fe7d6bd0047141ce6e1ec8648029124"
}
Mouse {
type: 5
@@ -1518,7 +1518,7 @@ VisualTest {
}
Frame {
msec: 2800
- hash: "e8b2abe3e2ba07bded9bc9cd57186f9f"
+ hash: "61904ff4d10a97188f4e6dc89bff10ce"
}
Mouse {
type: 5
@@ -1538,7 +1538,7 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "e2b3f991cde3bf6ba26cb5250a49c57a"
+ hash: "7e9c6ffce99dbfaad817ebcaa21d027e"
}
Mouse {
type: 5
@@ -1558,7 +1558,7 @@ VisualTest {
}
Frame {
msec: 2832
- hash: "9fe236e098f022178cb3aad579557613"
+ hash: "444a01a2e7621dad41e19d279a9be835"
}
Mouse {
type: 5
@@ -1570,7 +1570,7 @@ VisualTest {
}
Frame {
msec: 2848
- hash: "eb7b0c87df5231bad68d08624b102e41"
+ hash: "b02d20b5e632399404709f914fbe1157"
}
Mouse {
type: 5
@@ -1582,7 +1582,7 @@ VisualTest {
}
Frame {
msec: 2864
- hash: "71952229099f7779edfb0a31987c06ef"
+ hash: "506b4b853137ad3202201655ba859f29"
}
Mouse {
type: 5
@@ -1594,7 +1594,7 @@ VisualTest {
}
Frame {
msec: 2880
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 2896
@@ -1602,43 +1602,43 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 2928
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 2944
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 2960
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 2976
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 2992
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 3008
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 3024
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 3040
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Frame {
msec: 3056
- hash: "191c549eafa1ea82f27154755cc5abac"
+ hash: "e2c1ca13327328d497f2c85d8c95969f"
}
Mouse {
type: 5
@@ -1650,7 +1650,7 @@ VisualTest {
}
Frame {
msec: 3072
- hash: "49bee961b02720349297add96a302827"
+ hash: "8f0ba2247152b82070db72bf82f032f3"
}
Mouse {
type: 5
@@ -1662,7 +1662,7 @@ VisualTest {
}
Frame {
msec: 3088
- hash: "f5d044e75c716f463a0102639f658026"
+ hash: "7ac0716deae3dea3f32b5528f1a76754"
}
Mouse {
type: 5
@@ -1674,7 +1674,7 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "6f23f25d114dbcc6a8db33f1ab5c25e3"
+ hash: "ee9b3695c29f19a14cc09045fb85a1fb"
}
Mouse {
type: 5
@@ -1694,7 +1694,7 @@ VisualTest {
}
Frame {
msec: 3120
- hash: "683b79af12e6d886b02599a65a0bd792"
+ hash: "ef03c0255a5b532def285fa8fcbe1981"
}
Mouse {
type: 5
@@ -1714,7 +1714,7 @@ VisualTest {
}
Frame {
msec: 3136
- hash: "8084731179883aacef6b3ab9ba1fed93"
+ hash: "52b472d50f14de5a7eed1bea96272543"
}
Mouse {
type: 5
@@ -1734,7 +1734,7 @@ VisualTest {
}
Frame {
msec: 3152
- hash: "7612dc4a10729f49aab337a39b8f387f"
+ hash: "134c8d3409755bfbac6c929d13e8a8f1"
}
Mouse {
type: 5
@@ -1754,7 +1754,7 @@ VisualTest {
}
Frame {
msec: 3168
- hash: "c56c3d08571c1656fae9bdf35f47deb1"
+ hash: "7b0f47357a45861946c3b265d9c52a94"
}
Mouse {
type: 5
@@ -1774,7 +1774,7 @@ VisualTest {
}
Frame {
msec: 3184
- hash: "09672fee35cf91864a17e692c86267a5"
+ hash: "806a96ebff8d83898da16090860bf678"
}
Mouse {
type: 5
@@ -1794,7 +1794,7 @@ VisualTest {
}
Frame {
msec: 3200
- hash: "05bbc386f3fb286d169e86b3ceea6116"
+ hash: "82ddde1a21188c28674f5e69c6372907"
}
Mouse {
type: 5
@@ -1814,7 +1814,7 @@ VisualTest {
}
Frame {
msec: 3216
- hash: "7eaa7a53fbef56cd26d71b28005d6bc7"
+ hash: "9ba09aa26ac9701a10a5ee8dbc177f33"
}
Mouse {
type: 5
@@ -1834,7 +1834,7 @@ VisualTest {
}
Frame {
msec: 3232
- hash: "9e2c9fe4565288e7180537ea273c7787"
+ hash: "dbad09a7d927af7593b099330e1d1c0c"
}
Mouse {
type: 5
@@ -1854,7 +1854,7 @@ VisualTest {
}
Frame {
msec: 3248
- hash: "cbc5e36ad13a4e54b50031febeef547a"
+ hash: "6aca8f53340247688ff1056226d5efec"
}
Mouse {
type: 5
@@ -1874,7 +1874,7 @@ VisualTest {
}
Frame {
msec: 3264
- hash: "e114b8d4f627a3a1231abe6e5ffad9c8"
+ hash: "f01ec4d4d67e94a579f3de553abbb5d8"
}
Mouse {
type: 5
@@ -1894,7 +1894,7 @@ VisualTest {
}
Frame {
msec: 3280
- hash: "77c26ad125acbf98764b4a81d08da3df"
+ hash: "45fa03ab95f2c393d3719609da259ed6"
}
Mouse {
type: 5
@@ -1914,7 +1914,7 @@ VisualTest {
}
Frame {
msec: 3296
- hash: "dad61c6ea10d9eb7c65c1db9a061b4b5"
+ hash: "722cd7a4f24680b3316783a7d8550bea"
}
Mouse {
type: 5
@@ -1934,7 +1934,7 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "9c7a90189a979643e8b64c3bd51e991e"
+ hash: "79da07ddf9fd64be2c156b8ff5be49b2"
}
Mouse {
type: 5
@@ -1954,7 +1954,7 @@ VisualTest {
}
Frame {
msec: 3328
- hash: "7ead69e5eef54aa6fe9fed3ebc976063"
+ hash: "af25c71d1d2e87045dbd5794b9ffaf77"
}
Mouse {
type: 5
@@ -1974,7 +1974,7 @@ VisualTest {
}
Frame {
msec: 3344
- hash: "066fba4794c4b257328d53e7e2944edd"
+ hash: "47c5ecadc4b09d6aeba7b101cb648947"
}
Mouse {
type: 5
@@ -1994,7 +1994,7 @@ VisualTest {
}
Frame {
msec: 3360
- hash: "c99568bd5f6a66d6214ef7f18298bd7d"
+ hash: "5ad1856ebbe2b65a2534996a07e72228"
}
Mouse {
type: 5
@@ -2014,7 +2014,7 @@ VisualTest {
}
Frame {
msec: 3376
- hash: "49141098e3b69ede2c409924ddca95e5"
+ hash: "5d46ce7c3768a976ed0ceb25fe32df03"
}
Mouse {
type: 5
@@ -2034,7 +2034,7 @@ VisualTest {
}
Frame {
msec: 3392
- hash: "17e02d522c36d43bf721ed78ed1eb7b1"
+ hash: "cb26bad7b46c81bc2e28899254d5c44c"
}
Mouse {
type: 5
@@ -2054,7 +2054,7 @@ VisualTest {
}
Frame {
msec: 3408
- hash: "73f213f1de55d177903b32c96d34f59c"
+ hash: "0a7a7d01c950e208421ad5410c9383a0"
}
Mouse {
type: 5
@@ -2074,7 +2074,7 @@ VisualTest {
}
Frame {
msec: 3424
- hash: "5b931630d7091794cacce90021e1862a"
+ hash: "c402ce71796c99459e34425e6b77d0b6"
}
Mouse {
type: 5
@@ -2094,7 +2094,7 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "a247e88b80808b2542a132a4301a732e"
+ hash: "f3422c5de85dedc53164fd38a8596c26"
}
Mouse {
type: 5
@@ -2114,7 +2114,7 @@ VisualTest {
}
Frame {
msec: 3456
- hash: "bdb87853911c832e02c4f840ec2cc543"
+ hash: "67221953903e6aeda651ccb5066df7f6"
}
Mouse {
type: 5
@@ -2134,7 +2134,7 @@ VisualTest {
}
Frame {
msec: 3472
- hash: "0e52e015da9539e674b9121a7d6058b1"
+ hash: "7774b728475a36a4168776e135f8243c"
}
Mouse {
type: 5
@@ -2154,7 +2154,7 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "62469398d6e1da723439afdbbe29ac23"
+ hash: "bb4fbb137936b2adc2db8f7c3c7546f1"
}
Mouse {
type: 5
@@ -2174,91 +2174,91 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3520
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3536
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3552
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3568
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3584
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3600
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3616
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3632
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3648
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3664
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3680
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3696
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3712
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3728
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3744
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3760
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3776
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3792
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3808
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3824
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3840
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Frame {
msec: 3856
@@ -2266,7 +2266,7 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "b58fede13519424a3a41076511126e3e"
+ hash: "74573823db8c52fb2f33f16ba6615177"
}
Mouse {
type: 5
@@ -2286,7 +2286,7 @@ VisualTest {
}
Frame {
msec: 3888
- hash: "b531271c2503f3e431862496b088f000"
+ hash: "af47488fa736f506cc0e9d9923926fda"
}
Mouse {
type: 5
@@ -2306,7 +2306,7 @@ VisualTest {
}
Frame {
msec: 3904
- hash: "e2e4cc8f0e083be5cd7f1f08bea6588f"
+ hash: "a829c62790790edccb93ab4fdabfdba7"
}
Mouse {
type: 5
@@ -2326,7 +2326,7 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "dff6ac99ea5d3f74366df4f6c5140cdb"
+ hash: "c12708d704017de294a6a8f62c3d7d9b"
}
Mouse {
type: 5
@@ -2346,7 +2346,7 @@ VisualTest {
}
Frame {
msec: 3936
- hash: "d4629b159faf1c8ab7bf1f95ad239a9f"
+ hash: "500affae3f10a44aa87e18b1ac5eac9e"
}
Mouse {
type: 5
@@ -2366,7 +2366,7 @@ VisualTest {
}
Frame {
msec: 3952
- hash: "8a77190a6a27fde209dfddf52df6f57e"
+ hash: "7caad1e1d11e8b29587233f122c2d754"
}
Mouse {
type: 5
@@ -2386,7 +2386,7 @@ VisualTest {
}
Frame {
msec: 3968
- hash: "4067be988ce73627d5536e2d8c14fe02"
+ hash: "91cc3de7ac05fb3034584980c825a807"
}
Mouse {
type: 5
@@ -2406,7 +2406,7 @@ VisualTest {
}
Frame {
msec: 3984
- hash: "627bf4a33b8211cb1bb2f14a42f357b4"
+ hash: "900a80b5be23183709225e190ed9db36"
}
Mouse {
type: 5
@@ -2426,7 +2426,7 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "4ff71a21be4ad396d1041679a724b5df"
+ hash: "026c81ae3dadc7fea65dbefbd73ca57c"
}
Mouse {
type: 5
@@ -2446,7 +2446,7 @@ VisualTest {
}
Frame {
msec: 4016
- hash: "589bafe5166f1571fdb02a39e8396be8"
+ hash: "8a32633f6d570dd8101c5b4b2f018b60"
}
Mouse {
type: 5
@@ -2466,7 +2466,7 @@ VisualTest {
}
Frame {
msec: 4032
- hash: "8311c583dad6ac007b6f248767578e30"
+ hash: "329413a956f44432e63bc1bee18d7768"
}
Mouse {
type: 5
@@ -2486,7 +2486,7 @@ VisualTest {
}
Frame {
msec: 4048
- hash: "eaf98af07e33b61774b0a08ff14d7211"
+ hash: "a53524f17397a15f4570d235905262f1"
}
Mouse {
type: 5
@@ -2506,7 +2506,7 @@ VisualTest {
}
Frame {
msec: 4064
- hash: "4ce58c48ae092498c5c1e9388301cf7f"
+ hash: "1d2ab0338f6b2344e1cf1384a83f1499"
}
Mouse {
type: 5
@@ -2526,7 +2526,7 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "0fc6b3400ee55a6474a0c089d72066c8"
+ hash: "045c295823737680b589d56270dd68fe"
}
Mouse {
type: 5
@@ -2546,7 +2546,7 @@ VisualTest {
}
Frame {
msec: 4096
- hash: "77b045cbf8cd95606914b0a3c3adcfae"
+ hash: "6b06374f115c881cc0d0d023dded1e95"
}
Mouse {
type: 5
@@ -2566,7 +2566,7 @@ VisualTest {
}
Frame {
msec: 4112
- hash: "a5ab4101a06bb9802d081c940cde9657"
+ hash: "84c604aa78e0f213af4ceded7036b23b"
}
Mouse {
type: 5
@@ -2586,7 +2586,7 @@ VisualTest {
}
Frame {
msec: 4128
- hash: "88a06d47a55a7413b095b67c958b7f63"
+ hash: "2aa8d7845c799e5e595666e7923e3957"
}
Mouse {
type: 5
@@ -2606,7 +2606,7 @@ VisualTest {
}
Frame {
msec: 4144
- hash: "024ec32683d33ad69ffcb0b35c71a6aa"
+ hash: "38fc8a76bf2cb4b549f9f26d88af283e"
}
Mouse {
type: 5
@@ -2626,7 +2626,7 @@ VisualTest {
}
Frame {
msec: 4160
- hash: "e3018ad8158aa6ced51521cf7d14d0b6"
+ hash: "3ed6e26975a09bff9e51b082cb99d0b1"
}
Mouse {
type: 5
@@ -2646,7 +2646,7 @@ VisualTest {
}
Frame {
msec: 4176
- hash: "d05ee8fba87ddb619e98ea674af0e090"
+ hash: "43f09c8a49f6aa9cba3c29eabe20bbd0"
}
Mouse {
type: 5
@@ -2666,7 +2666,7 @@ VisualTest {
}
Frame {
msec: 4192
- hash: "805020b6c84675bb64d834630afe8d78"
+ hash: "117f4f598ee65cc004e83f0e449d4655"
}
Mouse {
type: 5
@@ -2686,7 +2686,7 @@ VisualTest {
}
Frame {
msec: 4208
- hash: "894ac3b12069ab8033d5c3d303419626"
+ hash: "f953a27d7e31c1396ba37d9e49494e99"
}
Mouse {
type: 5
@@ -2706,7 +2706,7 @@ VisualTest {
}
Frame {
msec: 4224
- hash: "bf8adf19a4d304d23b970b20dda947a5"
+ hash: "a44cbce7a4ff6f724d766ec2cee4aa45"
}
Mouse {
type: 5
@@ -2726,7 +2726,7 @@ VisualTest {
}
Frame {
msec: 4240
- hash: "8a11a180a95b3e0d46578bce34e9117a"
+ hash: "52a00b9f96b9283d934f87b769623699"
}
Mouse {
type: 5
@@ -2746,7 +2746,7 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "ee98cfcb6ce1c2cf4bf06722ca43e3ae"
+ hash: "66b2c195489bfa635eada0a850315900"
}
Mouse {
type: 5
@@ -2766,7 +2766,7 @@ VisualTest {
}
Frame {
msec: 4272
- hash: "16b38f691c93925304ae6c445fc20ece"
+ hash: "811545cb80f7f0c3746ae43a76678c7b"
}
Mouse {
type: 5
@@ -2786,7 +2786,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "06cf87ee80604be2555104ae45886b98"
+ hash: "8a7cb07129d9c5814724f3f3c2208c66"
}
Mouse {
type: 5
@@ -2806,7 +2806,7 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "dd211ffe9f512eba355ea812dfd8029e"
+ hash: "20a374d9ceda93fc71e5f787b3c79ae4"
}
Mouse {
type: 5
@@ -2826,7 +2826,7 @@ VisualTest {
}
Frame {
msec: 4320
- hash: "51fc1dc24dc489499db50e8711197a1c"
+ hash: "8a4ccfd0427300bdd566b2b212338c95"
}
Mouse {
type: 5
@@ -2846,7 +2846,7 @@ VisualTest {
}
Frame {
msec: 4336
- hash: "1d161632e03462566d39885e09916035"
+ hash: "ae1d6c236dd65ca7ed3babef7c06f512"
}
Mouse {
type: 5
@@ -2866,7 +2866,7 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "02dc5a391401dfa6311a472bd26970f6"
+ hash: "0c11a9f5d434f9e98d836928e70c63c6"
}
Mouse {
type: 5
@@ -2886,7 +2886,7 @@ VisualTest {
}
Frame {
msec: 4368
- hash: "222c120dd014101895e051cb1bb83444"
+ hash: "f8510e59497029bc244961ce6a3a99d0"
}
Mouse {
type: 5
@@ -2906,7 +2906,7 @@ VisualTest {
}
Frame {
msec: 4384
- hash: "efbb67524e2578ad95db325db9d72330"
+ hash: "60bd535804284e6b918ad84cf589c84f"
}
Mouse {
type: 5
@@ -2926,7 +2926,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "4602cb757927db83a3d734b1c1b6cb77"
+ hash: "8a1cb67b6ac3f4a2f925c1a2e9abeb71"
}
Mouse {
type: 5
@@ -2946,7 +2946,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "01738a2a16f81277492d66e8b5478e03"
+ hash: "76b79363c3354720ce3275600fbaaec9"
}
Mouse {
type: 5
@@ -2966,7 +2966,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "a26ad58869592790279422576aacb4cb"
+ hash: "f12e9ce034277448018bfd0997ae052b"
}
Mouse {
type: 5
@@ -2986,7 +2986,7 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "ab2b58f7c7ce07e5eb0ff208ee2d80a2"
+ hash: "0c1d5ce6978976a2f43e90140fda2901"
}
Mouse {
type: 5
@@ -3006,7 +3006,7 @@ VisualTest {
}
Frame {
msec: 4464
- hash: "1a37503ff8f8236821a421499f9e78e8"
+ hash: "0e7a65b186a00ae2a50e607dc5164599"
}
Mouse {
type: 5
@@ -3026,7 +3026,7 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "8fc372af0218934a9c8fda2d2aabd759"
+ hash: "f7d0402f3939786437733c6a5cfca15e"
}
Mouse {
type: 5
@@ -3046,7 +3046,7 @@ VisualTest {
}
Frame {
msec: 4496
- hash: "49ad736d6321918041d4adcc0ea214f6"
+ hash: "5b1e5908466227e30844056c721da8d0"
}
Mouse {
type: 5
@@ -3058,7 +3058,7 @@ VisualTest {
}
Frame {
msec: 4512
- hash: "debcdaabf3aa698498d975969766d163"
+ hash: "3dd081c0c37934d12e32331abb3406ff"
}
Mouse {
type: 5
@@ -3070,27 +3070,27 @@ VisualTest {
}
Frame {
msec: 4528
- hash: "d1508f0da3ddaa1d2a899f96c82b113f"
+ hash: "a8d34f8b841a76f6be941ab9c97f6f4c"
}
Frame {
msec: 4544
- hash: "d1508f0da3ddaa1d2a899f96c82b113f"
+ hash: "a8d34f8b841a76f6be941ab9c97f6f4c"
}
Frame {
msec: 4560
- hash: "d1508f0da3ddaa1d2a899f96c82b113f"
+ hash: "a8d34f8b841a76f6be941ab9c97f6f4c"
}
Frame {
msec: 4576
- hash: "d1508f0da3ddaa1d2a899f96c82b113f"
+ hash: "a8d34f8b841a76f6be941ab9c97f6f4c"
}
Frame {
msec: 4592
- hash: "d1508f0da3ddaa1d2a899f96c82b113f"
+ hash: "a8d34f8b841a76f6be941ab9c97f6f4c"
}
Frame {
msec: 4608
- hash: "d1508f0da3ddaa1d2a899f96c82b113f"
+ hash: "a8d34f8b841a76f6be941ab9c97f6f4c"
}
Mouse {
type: 5
@@ -3102,7 +3102,7 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "886209327a26cd6e17e61b2d82d9e2de"
+ hash: "b30eb0e20f185f77bd042a4ea92c836e"
}
Mouse {
type: 5
@@ -3122,7 +3122,7 @@ VisualTest {
}
Frame {
msec: 4640
- hash: "583c1eea12ba51ce88c171a8348864c0"
+ hash: "0b3a4824398762972004a9fe30efa4bd"
}
Mouse {
type: 5
@@ -3142,7 +3142,7 @@ VisualTest {
}
Frame {
msec: 4656
- hash: "1a37503ff8f8236821a421499f9e78e8"
+ hash: "0e7a65b186a00ae2a50e607dc5164599"
}
Mouse {
type: 5
@@ -3162,7 +3162,7 @@ VisualTest {
}
Frame {
msec: 4672
- hash: "735df2c73d9c4d15af11ac44de5babe7"
+ hash: "0e1e9a228020bae4e1d056bbe56b68d7"
}
Mouse {
type: 5
@@ -3182,7 +3182,7 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "5ca6d4f501a567eaba039996ae7b81e3"
+ hash: "7b31413cd1f7afb4b34162092f5e8b35"
}
Mouse {
type: 5
@@ -3202,7 +3202,7 @@ VisualTest {
}
Frame {
msec: 4704
- hash: "40a6b4e25fab5f61f4f04e3da26e4e8b"
+ hash: "771c97f1cad20a5646c525840a6b0bb9"
}
Mouse {
type: 5
@@ -3222,7 +3222,7 @@ VisualTest {
}
Frame {
msec: 4720
- hash: "9dc7fa127d174631e85a0e723be81177"
+ hash: "6f511f7f83f2c644bc3114e2f98e32a2"
}
Mouse {
type: 5
@@ -3242,7 +3242,7 @@ VisualTest {
}
Frame {
msec: 4736
- hash: "eb20145f3336ed7e78a83bea7213e9d0"
+ hash: "1d1cf0842fc89a5cd0e832a7514fcea6"
}
Mouse {
type: 5
@@ -3262,7 +3262,7 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "babf7898955387210fdefb1857bd7235"
+ hash: "99d0ea72f21edd9bfc4046c60b7aed17"
}
Mouse {
type: 5
@@ -3282,7 +3282,7 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "557da0ab0df52d010ca1de63e97fc6bd"
+ hash: "e7bb95b631dc1374d2e7d6654036c148"
}
Mouse {
type: 5
@@ -3302,7 +3302,7 @@ VisualTest {
}
Frame {
msec: 4784
- hash: "e24f3bf91e1e1c57b96dc479efb7f872"
+ hash: "67e8e19979925e0966919c731ec19f83"
}
Mouse {
type: 5
@@ -3322,7 +3322,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "a00cd1d2643a972faf01533ff00bff4c"
+ hash: "b2ad2035016ccef1050165fa4f78aad5"
}
Mouse {
type: 5
@@ -3362,7 +3362,7 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "1ebdf4fdff44e20eaac49041930632c1"
+ hash: "5b1e2126e9ecbe1837d216f26385b295"
}
Mouse {
type: 5
@@ -3382,7 +3382,7 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "e2a45e062cdaa52cc30569832799ca4d"
+ hash: "142c0701e527a0d02c416861832eabbc"
}
Mouse {
type: 5
@@ -3402,7 +3402,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "9cb4c1f970b097a4308a8ececec6ffb5"
+ hash: "23928fbf80c8c7395bfcd48b70b31938"
}
Mouse {
type: 5
@@ -3422,7 +3422,7 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "d9872eb321922c49b1db602c90035de2"
+ hash: "c009fe2f4563414cc637d1eba7efcef1"
}
Mouse {
type: 5
@@ -3442,7 +3442,7 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "21fc3973bc90df7def73b83082f4c541"
+ hash: "6dbd99c2d912e441d84115773163068a"
}
Mouse {
type: 5
@@ -3462,7 +3462,7 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "3bff3eb02e677faa81e6d6e7364c80fa"
+ hash: "6e10eacbb4cdc037ca9a29ecf2db9978"
}
Mouse {
type: 5
@@ -3482,7 +3482,7 @@ VisualTest {
}
Frame {
msec: 4928
- hash: "f175320a9d3221eea57146fa9a9a6862"
+ hash: "03b54ed3d516b75910d2e0f7f1f70115"
}
Mouse {
type: 5
@@ -3502,7 +3502,7 @@ VisualTest {
}
Frame {
msec: 4944
- hash: "653640255afce08d1a8d9da613722745"
+ hash: "1523019427e58e3b50eee4349d80d218"
}
Mouse {
type: 5
@@ -3522,7 +3522,7 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "a9e6405568181e159e991ec8c881e239"
+ hash: "2845dd906125315d8fb7bc01a12c6064"
}
Mouse {
type: 5
@@ -3542,7 +3542,7 @@ VisualTest {
}
Frame {
msec: 4976
- hash: "9c87d52418629d2c51dd647612e28078"
+ hash: "f14bc071b63c93fe7cdf65a2634971a6"
}
Mouse {
type: 5
@@ -3562,7 +3562,7 @@ VisualTest {
}
Frame {
msec: 4992
- hash: "cb655cbf4f4127f2c2e73290a2ced1fd"
+ hash: "fdde52fb8e74ccfa7780324048d4fbcc"
}
Mouse {
type: 5
@@ -3582,7 +3582,7 @@ VisualTest {
}
Frame {
msec: 5008
- hash: "30c09592683878bef10b2ec30eaa851f"
+ hash: "aec1dbd8925316e7f376cb186b6235e9"
}
Mouse {
type: 5
@@ -3602,7 +3602,7 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "ebf3882c530620c5571c0e875cd2ba46"
+ hash: "38544ba25d7c011b8e8ecb192b728cf1"
}
Mouse {
type: 5
@@ -3622,7 +3622,7 @@ VisualTest {
}
Frame {
msec: 5040
- hash: "c572acaa631cfeed7e4cdb0b8c79af8c"
+ hash: "b088d2e8f8948a1ae5d363b72f2dc7ce"
}
Mouse {
type: 5
@@ -3642,7 +3642,7 @@ VisualTest {
}
Frame {
msec: 5056
- hash: "6e2cf5cc0b339dd2deab864d5b4b8ceb"
+ hash: "243e1ef27abff04dbee7043fff769401"
}
Mouse {
type: 5
@@ -3662,7 +3662,7 @@ VisualTest {
}
Frame {
msec: 5072
- hash: "c8bfa8b04186c517d1a5ef0d421ec4b6"
+ hash: "88cddaeb669ee53189de4de8fe7daecb"
}
Mouse {
type: 5
@@ -3682,7 +3682,7 @@ VisualTest {
}
Frame {
msec: 5088
- hash: "a17f45fadad0cf9f3d8ccb596286eb81"
+ hash: "9fad3e42bebe330ec3417ce4faf9d291"
}
Mouse {
type: 5
@@ -3702,7 +3702,7 @@ VisualTest {
}
Frame {
msec: 5104
- hash: "20e8231815251b2d209437b0d830f95f"
+ hash: "1db92b8ba6255b2ff8140fb97f8befa2"
}
Mouse {
type: 5
@@ -3722,7 +3722,7 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "6162ecf0f997f02f8faa908367c6876d"
+ hash: "8da15fe30e1a56ae1c9599903d80b2a8"
}
Mouse {
type: 5
@@ -3742,7 +3742,7 @@ VisualTest {
}
Frame {
msec: 5136
- hash: "90e2a011de55daa0dfe9375b52967758"
+ hash: "5ecd3ff27a0d555344d33c4774045c94"
}
Mouse {
type: 5
@@ -3762,7 +3762,7 @@ VisualTest {
}
Frame {
msec: 5152
- hash: "f1a57568ff22075806239f39923d7d34"
+ hash: "a5a737335177b4c77f45e81ba1ab79eb"
}
Mouse {
type: 5
@@ -3782,7 +3782,7 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "4ee649e045178db58c68b21c0e8278a2"
+ hash: "abd895399ec74df3f01510de8625ecab"
}
Mouse {
type: 5
@@ -3802,7 +3802,7 @@ VisualTest {
}
Frame {
msec: 5184
- hash: "32a8aea24b33aa92e270446e28965900"
+ hash: "c10a141f13b94e2a9247d13849bcd89e"
}
Mouse {
type: 5
@@ -3822,7 +3822,7 @@ VisualTest {
}
Frame {
msec: 5200
- hash: "ec075cb90d6fa3cb8f622c78ae77b9f2"
+ hash: "47c5a31b9789840ba476af3b9463f95e"
}
Mouse {
type: 5
@@ -3842,7 +3842,7 @@ VisualTest {
}
Frame {
msec: 5216
- hash: "abb6af5dd6cbd9a8477427ead8279fc3"
+ hash: "30956712a1cc7aa9e4c3c860983fa4f2"
}
Mouse {
type: 5
@@ -3862,7 +3862,7 @@ VisualTest {
}
Frame {
msec: 5232
- hash: "ed199ee3ba179e9a6d4f8e285aa59b6a"
+ hash: "c6aa1a723fe3d1065e3d21c3f74f1408"
}
Mouse {
type: 5
@@ -3882,7 +3882,7 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "60948eed86831ce3ec5ea27917d213e5"
+ hash: "c995427421c8e9c2b73f721886d275bd"
}
Mouse {
type: 5
@@ -3894,7 +3894,7 @@ VisualTest {
}
Frame {
msec: 5264
- hash: "38c3ef2b362bfc65f412f55c9e30ca2c"
+ hash: "988cecea039b2685353501a320e7ad49"
}
Mouse {
type: 5
@@ -3906,11 +3906,11 @@ VisualTest {
}
Frame {
msec: 5280
- hash: "e82e8bd297f8e58e1ef12df1ea0b4174"
+ hash: "09ea02990fb88daa34dbd0c56ab0b4bc"
}
Frame {
msec: 5296
- hash: "e82e8bd297f8e58e1ef12df1ea0b4174"
+ hash: "09ea02990fb88daa34dbd0c56ab0b4bc"
}
Mouse {
type: 5
@@ -3922,51 +3922,51 @@ VisualTest {
}
Frame {
msec: 5312
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5328
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5344
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5360
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5376
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5392
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5408
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5424
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5440
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5456
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5472
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5488
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 3
@@ -3978,51 +3978,51 @@ VisualTest {
}
Frame {
msec: 5504
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5520
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5536
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5552
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5568
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5584
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5600
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5616
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5632
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5648
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5664
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5680
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4034,7 +4034,7 @@ VisualTest {
}
Frame {
msec: 5696
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4054,7 +4054,7 @@ VisualTest {
}
Frame {
msec: 5712
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4074,7 +4074,7 @@ VisualTest {
}
Frame {
msec: 5728
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4094,7 +4094,7 @@ VisualTest {
}
Frame {
msec: 5744
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4114,7 +4114,7 @@ VisualTest {
}
Frame {
msec: 5760
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4154,7 +4154,7 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4174,7 +4174,7 @@ VisualTest {
}
Frame {
msec: 5808
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Mouse {
type: 5
@@ -4186,231 +4186,231 @@ VisualTest {
}
Frame {
msec: 5824
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5840
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5856
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5872
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5888
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5904
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5920
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5936
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5952
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5968
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 5984
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6000
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6016
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6032
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6048
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6064
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6080
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6096
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6112
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6128
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6144
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6160
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6176
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6192
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6208
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6224
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6240
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6256
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6272
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6288
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6304
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6320
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6336
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6352
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6368
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6384
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6400
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6416
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6432
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6448
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6464
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6480
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6496
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6512
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6528
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6544
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6560
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6576
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6592
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6608
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6624
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6640
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6656
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6672
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6688
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6704
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6720
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6736
@@ -4418,94 +4418,94 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6768
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6784
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6800
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6816
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6832
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6848
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6864
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6880
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6896
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6912
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6928
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6944
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6960
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6976
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 6992
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 7008
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 7024
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 7040
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 7056
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 7072
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 7088
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
Frame {
msec: 7104
- hash: "685550e221429aed2e2842656cf218fd"
+ hash: "4f82f31f17254dbf49ecb98cae83ad14"
}
}
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.0.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.0.png
index 0098e460ac..662141da23 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.0.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.1.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.1.png
index 0098e460ac..662141da23 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.1.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.10.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.10.png
index 0098e460ac..662141da23 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.10.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.10.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.2.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.2.png
index 0098e460ac..662141da23 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.2.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.3.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.3.png
index 484b92afb9..4518ae96f2 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.3.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.4.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.4.png
index 61a728f6b4..ff310cf270 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.4.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.5.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.5.png
index 5717947769..48a1e06e83 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.5.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.6.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.6.png
index 61a728f6b4..ff310cf270 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.6.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.7.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.7.png
index 0098e460ac..662141da23 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.7.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.8.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.8.png
index 484b92afb9..4518ae96f2 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.8.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.8.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.9.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.9.png
index 484b92afb9..4518ae96f2 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.9.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.9.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.qml b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.qml
index 02aff4c617..b72bc9ef4b 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.qml
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-add-remove-objects.qml
@@ -1,44 +1,3 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the Qt Mobility Components.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
import Qt.VisualTest 4.7
VisualTest {
@@ -51,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 48
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 64
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 80
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 96
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 112
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 128
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 144
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 160
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 176
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 192
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 208
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 224
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 240
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 256
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 272
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 288
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 304
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 320
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 336
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 352
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 368
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 384
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 400
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 416
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 432
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 448
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 464
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 480
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 496
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 512
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 528
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 544
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 560
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 576
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 592
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 608
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 624
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 640
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 656
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 672
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 688
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 704
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 720
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 736
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 752
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 768
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 784
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 800
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 816
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 832
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 848
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 864
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 880
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 896
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 912
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 928
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 944
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 960
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 976
@@ -291,75 +250,75 @@ VisualTest {
}
Frame {
msec: 992
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1008
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1024
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1040
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1056
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1072
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1088
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1104
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1120
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1136
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1152
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1168
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1184
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1200
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1216
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1232
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1248
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1264
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -379,7 +338,7 @@ VisualTest {
}
Frame {
msec: 1280
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -399,7 +358,7 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -419,7 +378,7 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -439,7 +398,7 @@ VisualTest {
}
Frame {
msec: 1328
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -459,7 +418,7 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -479,7 +438,7 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -499,7 +458,7 @@ VisualTest {
}
Frame {
msec: 1376
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -519,7 +478,7 @@ VisualTest {
}
Frame {
msec: 1392
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -539,7 +498,7 @@ VisualTest {
}
Frame {
msec: 1408
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -559,7 +518,7 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -579,7 +538,7 @@ VisualTest {
}
Frame {
msec: 1440
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -599,7 +558,7 @@ VisualTest {
}
Frame {
msec: 1456
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -619,7 +578,7 @@ VisualTest {
}
Frame {
msec: 1472
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -639,7 +598,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -659,7 +618,7 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -679,7 +638,7 @@ VisualTest {
}
Frame {
msec: 1520
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -699,7 +658,7 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -719,7 +678,7 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -739,7 +698,7 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -759,7 +718,7 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -779,7 +738,7 @@ VisualTest {
}
Frame {
msec: 1600
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -799,7 +758,7 @@ VisualTest {
}
Frame {
msec: 1616
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -819,7 +778,7 @@ VisualTest {
}
Frame {
msec: 1632
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -839,7 +798,7 @@ VisualTest {
}
Frame {
msec: 1648
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -859,7 +818,7 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -879,7 +838,7 @@ VisualTest {
}
Frame {
msec: 1680
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -891,7 +850,7 @@ VisualTest {
}
Frame {
msec: 1696
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -903,39 +862,39 @@ VisualTest {
}
Frame {
msec: 1712
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1728
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1744
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1760
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1776
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1792
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1808
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1824
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1840
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -947,7 +906,7 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -959,7 +918,7 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -979,7 +938,7 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -991,7 +950,7 @@ VisualTest {
}
Frame {
msec: 1904
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1019,7 +978,7 @@ VisualTest {
}
Frame {
msec: 1920
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1936
@@ -1027,31 +986,31 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1968
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1984
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2000
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2016
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2032
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2048
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1063,7 +1022,7 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1083,7 +1042,7 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1103,7 +1062,7 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1123,7 +1082,7 @@ VisualTest {
}
Frame {
msec: 2112
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1143,7 +1102,7 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1163,7 +1122,7 @@ VisualTest {
}
Frame {
msec: 2144
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1183,7 +1142,7 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1203,7 +1162,7 @@ VisualTest {
}
Frame {
msec: 2176
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -1215,95 +1174,95 @@ VisualTest {
}
Frame {
msec: 2192
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2208
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2224
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2240
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2256
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2272
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2288
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2304
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2320
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2336
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2352
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2368
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2384
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2400
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2416
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2432
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2448
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2464
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2480
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2496
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2512
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2528
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2544
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 2
@@ -1315,39 +1274,39 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2576
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2592
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2608
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2624
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2640
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2656
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2672
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 2688
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 3
@@ -1359,51 +1318,51 @@ VisualTest {
}
Frame {
msec: 2704
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2720
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2736
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2752
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2768
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2784
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2800
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2816
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2832
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2848
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2864
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2880
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2896
@@ -1411,19 +1370,19 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2928
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2944
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 2960
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1443,7 +1402,7 @@ VisualTest {
}
Frame {
msec: 2976
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1463,7 +1422,7 @@ VisualTest {
}
Frame {
msec: 2992
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1483,7 +1442,7 @@ VisualTest {
}
Frame {
msec: 3008
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1503,7 +1462,7 @@ VisualTest {
}
Frame {
msec: 3024
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1523,7 +1482,7 @@ VisualTest {
}
Frame {
msec: 3040
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1543,7 +1502,7 @@ VisualTest {
}
Frame {
msec: 3056
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1555,7 +1514,7 @@ VisualTest {
}
Frame {
msec: 3072
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1567,7 +1526,7 @@ VisualTest {
}
Frame {
msec: 3088
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1579,7 +1538,7 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1591,11 +1550,11 @@ VisualTest {
}
Frame {
msec: 3120
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3136
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -1607,43 +1566,43 @@ VisualTest {
}
Frame {
msec: 3152
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3168
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3184
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3200
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3216
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3232
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3248
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3264
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3280
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3296
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 2
@@ -1655,35 +1614,35 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3328
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3344
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3360
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3376
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3392
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3408
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 3424
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 3
@@ -1695,71 +1654,71 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3456
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3472
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3488
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3504
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3520
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3536
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3552
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3568
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3584
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3600
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3616
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3632
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3648
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3664
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3680
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 3696
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1779,7 +1738,7 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1799,7 +1758,7 @@ VisualTest {
}
Frame {
msec: 3728
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1819,7 +1778,7 @@ VisualTest {
}
Frame {
msec: 3744
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1839,7 +1798,7 @@ VisualTest {
}
Frame {
msec: 3760
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1859,7 +1818,7 @@ VisualTest {
}
Frame {
msec: 3776
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1879,7 +1838,7 @@ VisualTest {
}
Frame {
msec: 3792
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1899,7 +1858,7 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1919,7 +1878,7 @@ VisualTest {
}
Frame {
msec: 3824
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1939,7 +1898,7 @@ VisualTest {
}
Frame {
msec: 3840
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1963,7 +1922,7 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -1991,7 +1950,7 @@ VisualTest {
}
Frame {
msec: 3888
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2011,7 +1970,7 @@ VisualTest {
}
Frame {
msec: 3904
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2031,7 +1990,7 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2051,7 +2010,7 @@ VisualTest {
}
Frame {
msec: 3936
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2071,7 +2030,7 @@ VisualTest {
}
Frame {
msec: 3952
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2091,7 +2050,7 @@ VisualTest {
}
Frame {
msec: 3968
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2111,7 +2070,7 @@ VisualTest {
}
Frame {
msec: 3984
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2131,7 +2090,7 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2151,7 +2110,7 @@ VisualTest {
}
Frame {
msec: 4016
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2171,7 +2130,7 @@ VisualTest {
}
Frame {
msec: 4032
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2183,7 +2142,7 @@ VisualTest {
}
Frame {
msec: 4048
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2195,7 +2154,7 @@ VisualTest {
}
Frame {
msec: 4064
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2207,7 +2166,7 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2227,7 +2186,7 @@ VisualTest {
}
Frame {
msec: 4096
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2239,31 +2198,31 @@ VisualTest {
}
Frame {
msec: 4112
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4128
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4144
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4160
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4176
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4192
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4208
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 2
@@ -2275,35 +2234,35 @@ VisualTest {
}
Frame {
msec: 4224
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4240
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4256
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4272
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4288
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4304
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4320
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 4336
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 3
@@ -2315,67 +2274,67 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4368
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4384
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4400
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4416
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4432
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4448
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4464
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4480
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4496
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4512
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4528
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4544
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4560
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4576
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4592
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2387,7 +2346,7 @@ VisualTest {
}
Frame {
msec: 4608
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2399,7 +2358,7 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2419,7 +2378,7 @@ VisualTest {
}
Frame {
msec: 4640
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2439,7 +2398,7 @@ VisualTest {
}
Frame {
msec: 4656
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2459,7 +2418,7 @@ VisualTest {
}
Frame {
msec: 4672
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2479,7 +2438,7 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2499,7 +2458,7 @@ VisualTest {
}
Frame {
msec: 4704
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2519,7 +2478,7 @@ VisualTest {
}
Frame {
msec: 4720
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2539,7 +2498,7 @@ VisualTest {
}
Frame {
msec: 4736
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2559,7 +2518,7 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2579,7 +2538,7 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2599,7 +2558,7 @@ VisualTest {
}
Frame {
msec: 4784
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2619,7 +2578,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2659,7 +2618,7 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2671,7 +2630,7 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2683,7 +2642,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 5
@@ -2695,39 +2654,39 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4896
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4912
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4928
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4944
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4960
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4976
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 4992
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5008
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 2
@@ -2739,35 +2698,35 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5040
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5056
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5072
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5088
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5104
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5120
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Frame {
msec: 5136
- hash: "1e145874247de6c86a1a89b005a569f9"
+ hash: "67a41126cfb36e44da67271d4ef79af2"
}
Mouse {
type: 3
@@ -2779,27 +2738,27 @@ VisualTest {
}
Frame {
msec: 5152
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5168
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5184
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5200
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5216
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5232
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2811,7 +2770,7 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2831,7 +2790,7 @@ VisualTest {
}
Frame {
msec: 5264
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2843,7 +2802,7 @@ VisualTest {
}
Frame {
msec: 5280
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2855,7 +2814,7 @@ VisualTest {
}
Frame {
msec: 5296
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2875,7 +2834,7 @@ VisualTest {
}
Frame {
msec: 5312
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2887,7 +2846,7 @@ VisualTest {
}
Frame {
msec: 5328
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2907,7 +2866,7 @@ VisualTest {
}
Frame {
msec: 5344
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2927,7 +2886,7 @@ VisualTest {
}
Frame {
msec: 5360
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2947,7 +2906,7 @@ VisualTest {
}
Frame {
msec: 5376
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2967,7 +2926,7 @@ VisualTest {
}
Frame {
msec: 5392
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -2987,7 +2946,7 @@ VisualTest {
}
Frame {
msec: 5408
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -3007,7 +2966,7 @@ VisualTest {
}
Frame {
msec: 5424
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -3027,7 +2986,7 @@ VisualTest {
}
Frame {
msec: 5440
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -3047,7 +3006,7 @@ VisualTest {
}
Frame {
msec: 5456
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -3067,7 +3026,7 @@ VisualTest {
}
Frame {
msec: 5472
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -3087,7 +3046,7 @@ VisualTest {
}
Frame {
msec: 5488
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -3099,7 +3058,7 @@ VisualTest {
}
Frame {
msec: 5504
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 5
@@ -3111,67 +3070,67 @@ VisualTest {
}
Frame {
msec: 5520
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5536
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5552
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5568
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5584
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5600
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5616
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5632
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5648
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5664
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5680
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5696
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5712
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5728
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5744
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5760
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5776
@@ -3179,7 +3138,7 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 2
@@ -3191,47 +3150,47 @@ VisualTest {
}
Frame {
msec: 5808
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5824
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5840
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5856
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5872
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5888
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5904
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5920
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5936
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5952
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Frame {
msec: 5968
- hash: "9970ddd2ead2a6207114bdc16a995276"
+ hash: "c607894da1a8137d5c93865e18f3ac93"
}
Mouse {
type: 3
@@ -3243,51 +3202,51 @@ VisualTest {
}
Frame {
msec: 5984
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6000
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6016
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6032
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6048
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6064
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6080
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6096
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6112
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6128
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6144
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6160
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3307,7 +3266,7 @@ VisualTest {
}
Frame {
msec: 6176
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3327,7 +3286,7 @@ VisualTest {
}
Frame {
msec: 6192
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3347,7 +3306,7 @@ VisualTest {
}
Frame {
msec: 6208
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3367,7 +3326,7 @@ VisualTest {
}
Frame {
msec: 6224
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3387,7 +3346,7 @@ VisualTest {
}
Frame {
msec: 6240
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3407,7 +3366,7 @@ VisualTest {
}
Frame {
msec: 6256
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3427,7 +3386,7 @@ VisualTest {
}
Frame {
msec: 6272
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3447,7 +3406,7 @@ VisualTest {
}
Frame {
msec: 6288
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3467,7 +3426,7 @@ VisualTest {
}
Frame {
msec: 6304
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3479,7 +3438,7 @@ VisualTest {
}
Frame {
msec: 6320
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3499,7 +3458,7 @@ VisualTest {
}
Frame {
msec: 6336
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3519,7 +3478,7 @@ VisualTest {
}
Frame {
msec: 6352
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3539,7 +3498,7 @@ VisualTest {
}
Frame {
msec: 6368
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3559,7 +3518,7 @@ VisualTest {
}
Frame {
msec: 6384
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3579,7 +3538,7 @@ VisualTest {
}
Frame {
msec: 6400
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3591,11 +3550,11 @@ VisualTest {
}
Frame {
msec: 6416
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6432
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3607,7 +3566,7 @@ VisualTest {
}
Frame {
msec: 6448
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -3619,31 +3578,31 @@ VisualTest {
}
Frame {
msec: 6464
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6480
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6496
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6512
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6528
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6544
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6560
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 2
@@ -3655,39 +3614,39 @@ VisualTest {
}
Frame {
msec: 6576
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6592
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6608
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6624
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6640
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6656
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6672
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6688
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 6704
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 3
@@ -3699,7 +3658,7 @@ VisualTest {
}
Frame {
msec: 6720
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6736
@@ -3707,59 +3666,59 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6768
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6784
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6800
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6816
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6832
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6848
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6864
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6880
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6896
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6912
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6928
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6944
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 6960
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3779,7 +3738,7 @@ VisualTest {
}
Frame {
msec: 6976
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3799,7 +3758,7 @@ VisualTest {
}
Frame {
msec: 6992
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3819,7 +3778,7 @@ VisualTest {
}
Frame {
msec: 7008
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3839,7 +3798,7 @@ VisualTest {
}
Frame {
msec: 7024
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3859,7 +3818,7 @@ VisualTest {
}
Frame {
msec: 7040
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3879,7 +3838,7 @@ VisualTest {
}
Frame {
msec: 7056
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3899,7 +3858,7 @@ VisualTest {
}
Frame {
msec: 7072
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3911,7 +3870,7 @@ VisualTest {
}
Frame {
msec: 7088
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -3931,67 +3890,67 @@ VisualTest {
}
Frame {
msec: 7104
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7120
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7136
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7152
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7168
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7184
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7200
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7216
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7232
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7248
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7264
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7280
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7296
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7312
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7328
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7344
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 2
@@ -4003,43 +3962,43 @@ VisualTest {
}
Frame {
msec: 7360
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7376
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7392
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7408
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7424
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7440
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7456
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7472
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7488
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 7504
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 3
@@ -4051,47 +4010,47 @@ VisualTest {
}
Frame {
msec: 7520
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7536
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7552
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7568
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7584
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7600
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7616
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7632
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7648
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7664
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7680
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7696
@@ -4099,11 +4058,11 @@ VisualTest {
}
Frame {
msec: 7712
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7728
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4115,7 +4074,7 @@ VisualTest {
}
Frame {
msec: 7744
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4135,7 +4094,7 @@ VisualTest {
}
Frame {
msec: 7760
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4155,7 +4114,7 @@ VisualTest {
}
Frame {
msec: 7776
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4175,7 +4134,7 @@ VisualTest {
}
Frame {
msec: 7792
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4195,7 +4154,7 @@ VisualTest {
}
Frame {
msec: 7808
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4215,7 +4174,7 @@ VisualTest {
}
Frame {
msec: 7824
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4235,7 +4194,7 @@ VisualTest {
}
Frame {
msec: 7840
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4255,7 +4214,7 @@ VisualTest {
}
Frame {
msec: 7856
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4275,7 +4234,7 @@ VisualTest {
}
Frame {
msec: 7872
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4295,63 +4254,63 @@ VisualTest {
}
Frame {
msec: 7888
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7904
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7920
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7936
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7952
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7968
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 7984
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8000
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8016
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8032
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8048
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8064
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8080
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8096
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8112
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 2
@@ -4363,39 +4322,39 @@ VisualTest {
}
Frame {
msec: 8128
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8144
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8160
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8176
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8192
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8208
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8224
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8240
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8256
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 3
@@ -4407,59 +4366,59 @@ VisualTest {
}
Frame {
msec: 8272
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8288
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8304
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8320
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8336
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8352
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8368
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8384
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8400
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8416
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8432
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8448
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8464
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8480
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4479,7 +4438,7 @@ VisualTest {
}
Frame {
msec: 8496
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4499,7 +4458,7 @@ VisualTest {
}
Frame {
msec: 8512
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4519,7 +4478,7 @@ VisualTest {
}
Frame {
msec: 8528
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4539,7 +4498,7 @@ VisualTest {
}
Frame {
msec: 8544
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4551,7 +4510,7 @@ VisualTest {
}
Frame {
msec: 8560
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4579,7 +4538,7 @@ VisualTest {
}
Frame {
msec: 8576
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4591,7 +4550,7 @@ VisualTest {
}
Frame {
msec: 8592
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4603,7 +4562,7 @@ VisualTest {
}
Frame {
msec: 8608
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4623,7 +4582,7 @@ VisualTest {
}
Frame {
msec: 8624
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4643,7 +4602,7 @@ VisualTest {
}
Frame {
msec: 8640
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4683,7 +4642,7 @@ VisualTest {
}
Frame {
msec: 8672
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4703,11 +4662,11 @@ VisualTest {
}
Frame {
msec: 8688
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8704
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 5
@@ -4719,39 +4678,39 @@ VisualTest {
}
Frame {
msec: 8720
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8736
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8752
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8768
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8784
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8800
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8816
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8832
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8848
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 2
@@ -4763,35 +4722,35 @@ VisualTest {
}
Frame {
msec: 8864
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8880
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8896
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8912
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8928
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8944
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8960
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Frame {
msec: 8976
- hash: "3d8a6799f85e82e1b97653cdb67d7497"
+ hash: "ecb21f7b28302b3ec84076d4a271a90f"
}
Mouse {
type: 3
@@ -4803,87 +4762,87 @@ VisualTest {
}
Frame {
msec: 8992
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9008
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9024
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9040
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9056
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9072
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9088
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9104
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9120
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9136
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9152
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9168
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9184
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9200
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9216
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9232
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9248
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9264
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9280
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9296
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9312
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -4895,7 +4854,7 @@ VisualTest {
}
Frame {
msec: 9328
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -4915,7 +4874,7 @@ VisualTest {
}
Frame {
msec: 9344
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -4935,7 +4894,7 @@ VisualTest {
}
Frame {
msec: 9360
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -4955,7 +4914,7 @@ VisualTest {
}
Frame {
msec: 9376
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -4967,31 +4926,31 @@ VisualTest {
}
Frame {
msec: 9392
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9408
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9424
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9440
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9456
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9472
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9488
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5011,7 +4970,7 @@ VisualTest {
}
Frame {
msec: 9504
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5031,7 +4990,7 @@ VisualTest {
}
Frame {
msec: 9520
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5051,7 +5010,7 @@ VisualTest {
}
Frame {
msec: 9536
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5071,7 +5030,7 @@ VisualTest {
}
Frame {
msec: 9552
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5091,7 +5050,7 @@ VisualTest {
}
Frame {
msec: 9568
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5111,7 +5070,7 @@ VisualTest {
}
Frame {
msec: 9584
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5131,7 +5090,7 @@ VisualTest {
}
Frame {
msec: 9600
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -5163,190 +5122,190 @@ VisualTest {
}
Frame {
msec: 9632
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9648
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9664
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9680
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9696
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9712
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9728
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9744
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9760
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9776
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9792
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9808
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9824
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9840
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9856
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9872
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9888
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9904
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9920
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9936
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9952
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9968
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 9984
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10000
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10016
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10032
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10048
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10064
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10080
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10096
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10112
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10128
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10144
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10160
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10176
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10192
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10208
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10224
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10240
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10256
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10272
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10288
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10304
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10320
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10336
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10352
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 10368
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
}
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.0.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.0.png
index 0098e460ac..662141da23 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.0.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.0.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.1.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.1.png
index 0098e460ac..662141da23 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.1.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.1.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.2.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.2.png
index 4967362c10..18ff413632 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.2.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.2.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.3.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.3.png
index 4baa81d8a2..e474517b27 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.3.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.3.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.4.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.4.png
index 65037492a7..aca16a5790 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.4.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.4.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.5.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.5.png
index 55781f4399..10ea94bf76 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.5.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.5.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.6.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.6.png
index a3732bf348..93b02d01e2 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.6.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.6.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.7.png b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.7.png
index a3732bf348..93b02d01e2 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.7.png
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.7.png
Binary files differ
diff --git a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.qml b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.qml
index a4d51290c0..47865d73cb 100644
--- a/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.qml
+++ b/tests/declarative-location/visual/test-map-polyline/data/polyline-pan-map.qml
@@ -10,111 +10,111 @@ VisualTest {
}
Frame {
msec: 32
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 48
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 64
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 80
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 96
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 112
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 128
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 144
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 160
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 176
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 192
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 208
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 224
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 240
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 256
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 272
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 288
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 304
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 320
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 336
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 352
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 368
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 384
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 400
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 416
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 432
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 448
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -134,7 +134,7 @@ VisualTest {
}
Frame {
msec: 464
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -154,7 +154,7 @@ VisualTest {
}
Frame {
msec: 480
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -174,7 +174,7 @@ VisualTest {
}
Frame {
msec: 496
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -194,7 +194,7 @@ VisualTest {
}
Frame {
msec: 512
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -214,7 +214,7 @@ VisualTest {
}
Frame {
msec: 528
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -234,7 +234,7 @@ VisualTest {
}
Frame {
msec: 544
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -254,7 +254,7 @@ VisualTest {
}
Frame {
msec: 560
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -274,7 +274,7 @@ VisualTest {
}
Frame {
msec: 576
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -294,7 +294,7 @@ VisualTest {
}
Frame {
msec: 592
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -314,7 +314,7 @@ VisualTest {
}
Frame {
msec: 608
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -334,7 +334,7 @@ VisualTest {
}
Frame {
msec: 624
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -354,7 +354,7 @@ VisualTest {
}
Frame {
msec: 640
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -374,7 +374,7 @@ VisualTest {
}
Frame {
msec: 656
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -394,7 +394,7 @@ VisualTest {
}
Frame {
msec: 672
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -414,7 +414,7 @@ VisualTest {
}
Frame {
msec: 688
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -434,7 +434,7 @@ VisualTest {
}
Frame {
msec: 704
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -454,7 +454,7 @@ VisualTest {
}
Frame {
msec: 720
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -474,7 +474,7 @@ VisualTest {
}
Frame {
msec: 736
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -494,7 +494,7 @@ VisualTest {
}
Frame {
msec: 752
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -514,7 +514,7 @@ VisualTest {
}
Frame {
msec: 768
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -526,7 +526,7 @@ VisualTest {
}
Frame {
msec: 784
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -546,11 +546,11 @@ VisualTest {
}
Frame {
msec: 800
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 816
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -562,19 +562,19 @@ VisualTest {
}
Frame {
msec: 832
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 848
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 864
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 880
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -594,7 +594,7 @@ VisualTest {
}
Frame {
msec: 896
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -606,7 +606,7 @@ VisualTest {
}
Frame {
msec: 912
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -618,7 +618,7 @@ VisualTest {
}
Frame {
msec: 928
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -638,7 +638,7 @@ VisualTest {
}
Frame {
msec: 944
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -658,7 +658,7 @@ VisualTest {
}
Frame {
msec: 960
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -698,7 +698,7 @@ VisualTest {
}
Frame {
msec: 992
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -710,7 +710,7 @@ VisualTest {
}
Frame {
msec: 1008
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -722,15 +722,15 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1040
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1056
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -742,59 +742,59 @@ VisualTest {
}
Frame {
msec: 1072
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1088
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1104
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1120
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1136
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1152
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1168
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1184
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1200
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1216
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1232
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1248
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1264
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1280
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 2
@@ -806,31 +806,31 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1312
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1328
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1344
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1360
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1376
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Frame {
msec: 1392
- hash: "aac7697de1fbe10bafcd51d341220ec1"
+ hash: "a112f0dbb70030c7c2f415837373d74d"
}
Mouse {
type: 5
@@ -842,7 +842,7 @@ VisualTest {
}
Frame {
msec: 1408
- hash: "2a16b784581951537064ba95d21a54cc"
+ hash: "09d251552054e736e6db66ee32e09789"
}
Mouse {
type: 5
@@ -862,7 +862,7 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "e3ca165b96c3971882adefef374ba12a"
+ hash: "f7f05c2b9d88afe77b817a4c3a2e7303"
}
Mouse {
type: 5
@@ -882,7 +882,7 @@ VisualTest {
}
Frame {
msec: 1440
- hash: "1e39e4215e66cdf2047dcc3931c753a8"
+ hash: "6b61d49fcaaf46eef441c83668133c74"
}
Mouse {
type: 5
@@ -902,7 +902,7 @@ VisualTest {
}
Frame {
msec: 1456
- hash: "2ca4a6f7b7c196974d1bee992fcf8a43"
+ hash: "e5bd84561c20d73e8b258cfaa738dd1f"
}
Mouse {
type: 5
@@ -922,7 +922,7 @@ VisualTest {
}
Frame {
msec: 1472
- hash: "3d4e40e2259e6dce90ae4a13b2ea361c"
+ hash: "d61842a30f4b44e9154f8f3582c25d7c"
}
Mouse {
type: 5
@@ -942,7 +942,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "8140fd9c2aaefbc3ee43bb8a886ae8ce"
+ hash: "c96461a53704c9eee9082344b40fece0"
}
Mouse {
type: 5
@@ -962,7 +962,7 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "b383b1c800ebf9c257094ebfc83fba3e"
+ hash: "02aac2be427d26f2f44da8c861b1e61d"
}
Mouse {
type: 5
@@ -982,7 +982,7 @@ VisualTest {
}
Frame {
msec: 1520
- hash: "07a635b45cdf5b20d96852757122d7fb"
+ hash: "7cf835871ce5c894c3a916e7666a50df"
}
Mouse {
type: 5
@@ -1002,7 +1002,7 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "d7ffa928ae2fdc4c3c4bd2df0369e611"
+ hash: "ca10716f7bd0a7e1bacbf79ace3f148e"
}
Mouse {
type: 5
@@ -1022,7 +1022,7 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "346e13af43122006ec4861419019836e"
+ hash: "7ca7bf6e5f7f230a1d643baa03a07e96"
}
Mouse {
type: 5
@@ -1034,7 +1034,7 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "a04e26a74802da373f35e3b595009db9"
+ hash: "ec74d0f59f63bd1dfddcd839aa3dbc99"
}
Mouse {
type: 5
@@ -1046,31 +1046,31 @@ VisualTest {
}
Frame {
msec: 1584
- hash: "f5e5624baf353ad3f5e7bc72b9968a7c"
+ hash: "5f64385acb86486d7051e11856b6ac80"
}
Frame {
msec: 1600
- hash: "f5e5624baf353ad3f5e7bc72b9968a7c"
+ hash: "5f64385acb86486d7051e11856b6ac80"
}
Frame {
msec: 1616
- hash: "f5e5624baf353ad3f5e7bc72b9968a7c"
+ hash: "5f64385acb86486d7051e11856b6ac80"
}
Frame {
msec: 1632
- hash: "f5e5624baf353ad3f5e7bc72b9968a7c"
+ hash: "5f64385acb86486d7051e11856b6ac80"
}
Frame {
msec: 1648
- hash: "f5e5624baf353ad3f5e7bc72b9968a7c"
+ hash: "5f64385acb86486d7051e11856b6ac80"
}
Frame {
msec: 1664
- hash: "f5e5624baf353ad3f5e7bc72b9968a7c"
+ hash: "5f64385acb86486d7051e11856b6ac80"
}
Frame {
msec: 1680
- hash: "f5e5624baf353ad3f5e7bc72b9968a7c"
+ hash: "5f64385acb86486d7051e11856b6ac80"
}
Mouse {
type: 5
@@ -1090,11 +1090,11 @@ VisualTest {
}
Frame {
msec: 1696
- hash: "417f2d3750b417a1edc829ae284c6a7b"
+ hash: "7158eddf5f89474c777345d043e2a144"
}
Frame {
msec: 1712
- hash: "417f2d3750b417a1edc829ae284c6a7b"
+ hash: "7158eddf5f89474c777345d043e2a144"
}
Mouse {
type: 5
@@ -1114,7 +1114,7 @@ VisualTest {
}
Frame {
msec: 1728
- hash: "f404a631bd08bad269eec96192d014b1"
+ hash: "3b4ee5c4b9a0bf6e6bf3699d4c3e714f"
}
Mouse {
type: 5
@@ -1134,7 +1134,7 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "de2cc529863b80b1f373993251e4258a"
+ hash: "ac08f953c6faf9290dd9be885880e126"
}
Mouse {
type: 5
@@ -1154,7 +1154,7 @@ VisualTest {
}
Frame {
msec: 1760
- hash: "e94309dc2d4fedf5f8a679f820032bba"
+ hash: "39e73671982a506589b8b21f17cc1cf5"
}
Mouse {
type: 5
@@ -1174,7 +1174,7 @@ VisualTest {
}
Frame {
msec: 1776
- hash: "b5273db474050ed8523c6318327ae024"
+ hash: "6162d4500fd00e9816105f86025d0ce3"
}
Mouse {
type: 5
@@ -1194,7 +1194,7 @@ VisualTest {
}
Frame {
msec: 1792
- hash: "6861b1b3028e0572bb06afe8b289f18e"
+ hash: "d34023e3cb94e0a25c6e7832677656e0"
}
Mouse {
type: 5
@@ -1206,7 +1206,7 @@ VisualTest {
}
Frame {
msec: 1808
- hash: "0657500d61e86451881991d88bc2fcb0"
+ hash: "5cab7d8b1eb10c22c0d7df4b7d94b495"
}
Mouse {
type: 5
@@ -1226,7 +1226,7 @@ VisualTest {
}
Frame {
msec: 1824
- hash: "96e6af4059e6c3dafdb2dc8b75c3b774"
+ hash: "06b98e5d083f5e21ad8c728771a31159"
}
Mouse {
type: 5
@@ -1238,7 +1238,7 @@ VisualTest {
}
Frame {
msec: 1840
- hash: "f0a279b2fd060513cd8754bb790cd78e"
+ hash: "19d944533f462765b2551e81068f64cd"
}
Mouse {
type: 5
@@ -1258,7 +1258,7 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "7b9d87d9f15b20a90d6a51f1e9dd413a"
+ hash: "ea399ba502ca32f8477e65712ad0927a"
}
Mouse {
type: 5
@@ -1270,7 +1270,7 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "c76fa6ab0357253adcac3fc82064bf96"
+ hash: "66ff611f4aa6893011369a964aa2ee6c"
}
Mouse {
type: 5
@@ -1282,7 +1282,7 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "70a7e2acc850d3ad4bf6576631f9194a"
+ hash: "f6239d76df888056021f8046bec1fc25"
}
Mouse {
type: 5
@@ -1302,7 +1302,7 @@ VisualTest {
}
Frame {
msec: 1904
- hash: "46b6277d75866d6d81b9efe154dd67dd"
+ hash: "fb860bb1164ce272955e1495802f6f7c"
}
Mouse {
type: 5
@@ -1322,7 +1322,7 @@ VisualTest {
}
Frame {
msec: 1920
- hash: "a3051068d2a0f38fc414aebabcd78da6"
+ hash: "f34fd01993595e4761588a2ea1577a4b"
}
Mouse {
type: 5
@@ -1354,7 +1354,7 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "8ae3b45bca71072d2bdff24710509f6a"
+ hash: "9c4faa61cd6561f1c122d96e937044e5"
}
Mouse {
type: 5
@@ -1366,75 +1366,75 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 1984
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2000
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2016
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2032
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2048
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2064
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2080
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2096
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2112
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2128
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2144
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2160
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2176
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2192
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2208
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2224
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Frame {
msec: 2240
- hash: "9c175e067ee41c7e104f35e07a8e13eb"
+ hash: "def33e5b1c7c44c40da8640becde3049"
}
Mouse {
type: 5
@@ -1446,7 +1446,7 @@ VisualTest {
}
Frame {
msec: 2256
- hash: "8ae3b45bca71072d2bdff24710509f6a"
+ hash: "9c4faa61cd6561f1c122d96e937044e5"
}
Mouse {
type: 5
@@ -1466,7 +1466,7 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "9c1e6795f0150d4a194b0cdfc3cd9baa"
+ hash: "9b09e3cd4e55504ee9e4c00e32f73d28"
}
Mouse {
type: 5
@@ -1478,7 +1478,7 @@ VisualTest {
}
Frame {
msec: 2288
- hash: "c94fcbb5e5d7afbc4b930c1b8b2ff23f"
+ hash: "2fa5c91a48f8bdead9c39018c3b5e058"
}
Mouse {
type: 5
@@ -1498,7 +1498,7 @@ VisualTest {
}
Frame {
msec: 2304
- hash: "ce73bf3b73a7c68dbf81ad42ff454b6d"
+ hash: "cb23635b0cfd049525244ce88ef02de2"
}
Mouse {
type: 5
@@ -1518,7 +1518,7 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "87aa893d1bb90748aa393f7f5c6532a7"
+ hash: "8fc670f6229f2d3a919bc953cd991d98"
}
Mouse {
type: 5
@@ -1538,7 +1538,7 @@ VisualTest {
}
Frame {
msec: 2336
- hash: "71351e9d4c7c9fe5fd1367a0dbeb470c"
+ hash: "d1297f96c8b51f85800dc4de5d88e832"
}
Mouse {
type: 5
@@ -1558,7 +1558,7 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "f7fe71708e3449c459b8aa973e07357d"
+ hash: "f137f796181076e618171e3a3cb65b37"
}
Mouse {
type: 5
@@ -1578,7 +1578,7 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "8b9b9c11c0f9e9bc2989fdd92944f7c5"
+ hash: "671152a47fd1c0f8e998a198ce2aa5ce"
}
Mouse {
type: 5
@@ -1598,7 +1598,7 @@ VisualTest {
}
Frame {
msec: 2384
- hash: "fd1e288c204161c2559480158662c14b"
+ hash: "12b9a33603b74fb6191c6c4b74aec975"
}
Mouse {
type: 5
@@ -1618,7 +1618,7 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "e25de71f643e266432da7d8e53dd2936"
+ hash: "4095d9523daa04887b11ff79a3b4a56b"
}
Mouse {
type: 5
@@ -1638,7 +1638,7 @@ VisualTest {
}
Frame {
msec: 2416
- hash: "1f55f1e4083b890dc80623a6215c4fd2"
+ hash: "ac2b12c6da0d1950c5eb3c12bc000b2c"
}
Mouse {
type: 5
@@ -1658,7 +1658,7 @@ VisualTest {
}
Frame {
msec: 2432
- hash: "61b365b34c1d798b6279091093aaf854"
+ hash: "a547b3b4e1cadb9f9eff4d2c9ff55e42"
}
Mouse {
type: 5
@@ -1678,7 +1678,7 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "7d5e6222cc499a1e8c517a667fa12326"
+ hash: "98be43bcb3397dab456318dbb1fc6a51"
}
Mouse {
type: 5
@@ -1698,7 +1698,7 @@ VisualTest {
}
Frame {
msec: 2464
- hash: "80d33d166679148c8e10c68efe4983d5"
+ hash: "9375ee84d5de0e8b07937bf76254a56b"
}
Mouse {
type: 5
@@ -1718,7 +1718,7 @@ VisualTest {
}
Frame {
msec: 2480
- hash: "2ae3ba480cde293de0cbefe260b50ba4"
+ hash: "5691063780a80b005abd5ed2ea9e6875"
}
Mouse {
type: 5
@@ -1738,7 +1738,7 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "5cb0e96017fa2cf7de19b38ae204ca46"
+ hash: "e92ac6755974a4dc67047ac40fa8138d"
}
Mouse {
type: 5
@@ -1758,7 +1758,7 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "b03d011628ccc68e5687c8e8204a1b48"
+ hash: "03905c030f4362a07af0a27e5f4d92c9"
}
Mouse {
type: 5
@@ -1778,7 +1778,7 @@ VisualTest {
}
Frame {
msec: 2528
- hash: "332d44e4a54430a8f365fb5dacd1c01c"
+ hash: "72dc3887f28ddcded3d556cd5a776208"
}
Mouse {
type: 5
@@ -1798,7 +1798,7 @@ VisualTest {
}
Frame {
msec: 2544
- hash: "618a7f6373bb69133b2f34f417a946a5"
+ hash: "167afa5bffd20103f5f200a20e22d888"
}
Mouse {
type: 5
@@ -1818,7 +1818,7 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "e594c8ef4fd0e0441b3543cfe572eb4a"
+ hash: "9cb87df2713c82dd95dcc7d2ad585c19"
}
Mouse {
type: 5
@@ -1838,7 +1838,7 @@ VisualTest {
}
Frame {
msec: 2576
- hash: "389b12548ecce82f802df056ef1eee19"
+ hash: "f59e79985f65953b603d107be124a341"
}
Mouse {
type: 5
@@ -1858,7 +1858,7 @@ VisualTest {
}
Frame {
msec: 2592
- hash: "c8b6326f5cd600f4f49880d24a77f66f"
+ hash: "6976d84a2dbf133f5cd9ae09845c99a9"
}
Mouse {
type: 5
@@ -1878,7 +1878,7 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "85c162d90a96d95a62ac838c1ec7bbde"
+ hash: "31de9e8337dac1af821f25779c03023f"
}
Mouse {
type: 5
@@ -1890,7 +1890,7 @@ VisualTest {
}
Frame {
msec: 2624
- hash: "f76783bf8a463c0fe5432579cc3941eb"
+ hash: "e00725b33715d4e6565fb4315e82b181"
}
Mouse {
type: 5
@@ -1910,7 +1910,7 @@ VisualTest {
}
Frame {
msec: 2640
- hash: "9e5835efa448a07e8bd6385e7aee466d"
+ hash: "100c43e943e6c586ab1533ee8f2645ac"
}
Mouse {
type: 5
@@ -1930,7 +1930,7 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "cb05486eff353edc553b60d412930fbf"
+ hash: "49793fc1bead7bb4b79e85d0c4cbab24"
}
Mouse {
type: 5
@@ -1950,7 +1950,7 @@ VisualTest {
}
Frame {
msec: 2672
- hash: "fbbdd76aedef863332c4878af088a01a"
+ hash: "f2f1ecbb1534eb46d9d872c7c24d8f51"
}
Mouse {
type: 5
@@ -1962,7 +1962,7 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "4fcc543cd5b4224d5236f1a36ae4bed9"
+ hash: "2cea096631b7b6f63f7fc198ff8f7fd5"
}
Mouse {
type: 5
@@ -1974,51 +1974,51 @@ VisualTest {
}
Frame {
msec: 2704
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2720
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2736
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2752
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2768
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2784
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2800
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2816
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2832
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2848
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2864
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2880
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2896
@@ -2026,99 +2026,99 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2928
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2944
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2960
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2976
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 2992
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3008
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3024
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3040
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3056
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3072
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3088
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3104
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3120
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3136
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3152
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3168
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3184
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3200
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3216
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3232
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3248
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3264
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Frame {
msec: 3280
- hash: "03203c21306339faac20f9355b3a2f38"
+ hash: "fc4d485f0c94dbff85e4f3ab46e1865c"
}
Mouse {
type: 5
@@ -2130,11 +2130,11 @@ VisualTest {
}
Frame {
msec: 3296
- hash: "0686215c643fb7327af6097bf68f8882"
+ hash: "78bbb737b791e233b9e8ebf72e317499"
}
Frame {
msec: 3312
- hash: "0686215c643fb7327af6097bf68f8882"
+ hash: "78bbb737b791e233b9e8ebf72e317499"
}
Mouse {
type: 5
@@ -2146,7 +2146,7 @@ VisualTest {
}
Frame {
msec: 3328
- hash: "3a85e7b95978c333e53f508e2f32442f"
+ hash: "22654e26bf0a04deec9d55dbf1c345a9"
}
Mouse {
type: 5
@@ -2166,7 +2166,7 @@ VisualTest {
}
Frame {
msec: 3344
- hash: "02f917785f666b70f21767ecb886ef8f"
+ hash: "2dacdcfda2d14aaf17ce6e8920b228a6"
}
Mouse {
type: 5
@@ -2186,7 +2186,7 @@ VisualTest {
}
Frame {
msec: 3360
- hash: "655d8c58bc09a1f38734574687ec89b6"
+ hash: "43fb77e45d2f68d271436d4d2d4d7660"
}
Mouse {
type: 5
@@ -2198,7 +2198,7 @@ VisualTest {
}
Frame {
msec: 3376
- hash: "2e6ed3df460fa443e6e06f68f6df2759"
+ hash: "79dad21a5d180b36448a121546447753"
}
Mouse {
type: 5
@@ -2218,7 +2218,7 @@ VisualTest {
}
Frame {
msec: 3392
- hash: "cfe92bef9da3fd2698b7d5b94d9d8dbe"
+ hash: "b9225d90e393e8601085ccccad3ff114"
}
Mouse {
type: 5
@@ -2238,7 +2238,7 @@ VisualTest {
}
Frame {
msec: 3408
- hash: "c0001c2837d7723bc2872eb3099b9dfb"
+ hash: "5efdf5315c1b451f3f6953bc740543f4"
}
Mouse {
type: 5
@@ -2258,7 +2258,7 @@ VisualTest {
}
Frame {
msec: 3424
- hash: "f60cd2ce12acc1ca27c91d130a08ef71"
+ hash: "77e5aeac543bf910299edf75fb16055d"
}
Mouse {
type: 5
@@ -2278,7 +2278,7 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "2ed64469564b78e25420a5b2647041b9"
+ hash: "ad32eea92c3b5737c794061b1daa9fca"
}
Mouse {
type: 5
@@ -2298,7 +2298,7 @@ VisualTest {
}
Frame {
msec: 3456
- hash: "2d268d5cac486246d97f195fbca8e5a1"
+ hash: "67ab94f79e789236d6e90958bbc15d10"
}
Mouse {
type: 5
@@ -2318,7 +2318,7 @@ VisualTest {
}
Frame {
msec: 3472
- hash: "28218d7a7a9cbf0337ba7ae55d6b8356"
+ hash: "1812961a8bb919e58a8bb2c2f179152d"
}
Mouse {
type: 5
@@ -2338,7 +2338,7 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "de0bd7afec7583adfc31d3aefd0584e7"
+ hash: "7150ac836c2d727d1901105de54b42d3"
}
Mouse {
type: 5
@@ -2358,7 +2358,7 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "7d6d153615aaf05135f2b19b1186bbb4"
+ hash: "9affd8ab0cda24d2bf5758799e9654d4"
}
Mouse {
type: 5
@@ -2378,7 +2378,7 @@ VisualTest {
}
Frame {
msec: 3520
- hash: "05c3a3c396b80ea65335394fd2b8a71f"
+ hash: "f0dd57ffd7d9c55a78d5a2977e9426e1"
}
Mouse {
type: 5
@@ -2398,7 +2398,7 @@ VisualTest {
}
Frame {
msec: 3536
- hash: "ccce8ebe453594e60f76851806bf6358"
+ hash: "01c997f0c28a7d363b1d357211a19619"
}
Mouse {
type: 5
@@ -2418,7 +2418,7 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "f7f59b52d741e0e4295c1a58091ccd50"
+ hash: "589e9aae75c69c20b70f3565661b46ca"
}
Mouse {
type: 5
@@ -2438,7 +2438,7 @@ VisualTest {
}
Frame {
msec: 3568
- hash: "0ce907391248e4569467f1a0b07ce20d"
+ hash: "439a96ae57ee07cca2a131a28f3fc269"
}
Mouse {
type: 5
@@ -2458,7 +2458,7 @@ VisualTest {
}
Frame {
msec: 3584
- hash: "68b2cb5f36063575da7e412a8509b670"
+ hash: "ad01f8083a91f1d4599c33dddc129b85"
}
Mouse {
type: 5
@@ -2478,7 +2478,7 @@ VisualTest {
}
Frame {
msec: 3600
- hash: "93ee1f8c1ebfeac658c3daf9875f82cf"
+ hash: "e4500eaececc6810145e446c4ada7168"
}
Mouse {
type: 5
@@ -2498,7 +2498,7 @@ VisualTest {
}
Frame {
msec: 3616
- hash: "28dbd1698970e01578276be558a9f981"
+ hash: "0686c3533938eeb252cd655c6eb1b9e4"
}
Mouse {
type: 5
@@ -2518,7 +2518,7 @@ VisualTest {
}
Frame {
msec: 3632
- hash: "40f0bb02dfe87a892a7259319c05313e"
+ hash: "09562472f38bb390903a095cc31b36a4"
}
Mouse {
type: 5
@@ -2538,7 +2538,7 @@ VisualTest {
}
Frame {
msec: 3648
- hash: "9cc5a742eeb66e21ae38f1a2ba2bfb94"
+ hash: "acaefb9507ddd0af4fbbaec418035ac6"
}
Mouse {
type: 5
@@ -2558,7 +2558,7 @@ VisualTest {
}
Frame {
msec: 3664
- hash: "b2a93f8ecf61ce571f9c5ba8a06c593f"
+ hash: "873113f015a3b6ec0fbc8e6fc78167ec"
}
Mouse {
type: 5
@@ -2570,7 +2570,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "69e9eb33f55cdb4c9bf85005fecca1e4"
+ hash: "677914aa9a026d129412fa246bb9af62"
}
Mouse {
type: 5
@@ -2590,7 +2590,7 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "147bc9d8102b63a64955c6c87dab52e2"
+ hash: "1b5db23aee3c40aed3112c1c673b1d82"
}
Mouse {
type: 5
@@ -2610,7 +2610,7 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "1be7f57a36294584745581101b2ba416"
+ hash: "0c212f6b18d6fa4f5d33b49f0dc748fe"
}
Mouse {
type: 5
@@ -2630,7 +2630,7 @@ VisualTest {
}
Frame {
msec: 3728
- hash: "333babf8b35030fda98850e3ddcb3968"
+ hash: "760cda9275efe92387f6c9ee389b5ab0"
}
Mouse {
type: 5
@@ -2650,7 +2650,7 @@ VisualTest {
}
Frame {
msec: 3744
- hash: "9ed8081583b260d0034cfcd33dd540a1"
+ hash: "24cda33c038b4f66c97d7b5d54876859"
}
Mouse {
type: 5
@@ -2670,7 +2670,7 @@ VisualTest {
}
Frame {
msec: 3760
- hash: "189555fe7a3ac1a6714758e3bfc2701e"
+ hash: "06f32037b2abedcb897b355e8f4d746e"
}
Mouse {
type: 5
@@ -2690,7 +2690,7 @@ VisualTest {
}
Frame {
msec: 3776
- hash: "126f9a0675225df3c8abe89a12999b7a"
+ hash: "9c81d0b90eb27eb19fb9a465b1b5bd7a"
}
Mouse {
type: 5
@@ -2710,7 +2710,7 @@ VisualTest {
}
Frame {
msec: 3792
- hash: "b8d3c1a0e1893ca3df497274030a17a8"
+ hash: "ba8a5ad547866861e0328163ddb3b4b0"
}
Mouse {
type: 5
@@ -2730,7 +2730,7 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "93b17964046d50109f67cb9ff2225416"
+ hash: "213ebe71ca107be5eddcf6f8eb1ccc24"
}
Mouse {
type: 5
@@ -2750,7 +2750,7 @@ VisualTest {
}
Frame {
msec: 3824
- hash: "c3e74eb7bf6998499f003cc016993a16"
+ hash: "1244d5ab7982eb931837368e26f193b3"
}
Mouse {
type: 5
@@ -2770,7 +2770,7 @@ VisualTest {
}
Frame {
msec: 3840
- hash: "52363ed150267800fbe3ebf4d0ba1316"
+ hash: "234a1572bbf3e4b13ebca70463fae978"
}
Mouse {
type: 5
@@ -2810,7 +2810,7 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "4b0d7d60a1f2c42a22d6a6b11581d5e9"
+ hash: "cf33013296819ec88721657a7345e26a"
}
Mouse {
type: 5
@@ -2830,7 +2830,7 @@ VisualTest {
}
Frame {
msec: 3888
- hash: "8b147935e21a2194c5f2af8ade504d48"
+ hash: "42706b359137d27fa3bcfa8b2c7b55d2"
}
Mouse {
type: 5
@@ -2850,7 +2850,7 @@ VisualTest {
}
Frame {
msec: 3904
- hash: "7a76fa2c9c9f6a825b60a142d15d13bf"
+ hash: "c6bacb1bfb723936140b5444ff3b0425"
}
Mouse {
type: 5
@@ -2870,7 +2870,7 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "36e0bbc54be2ed5b24f08e33d8765ba1"
+ hash: "0e99d7c60567cabe55a19a6768189a61"
}
Mouse {
type: 5
@@ -2890,7 +2890,7 @@ VisualTest {
}
Frame {
msec: 3936
- hash: "276b4c65dbe669bff895959520cfc1ff"
+ hash: "c188e580d83acbfa69565171a5f1129f"
}
Mouse {
type: 5
@@ -2910,7 +2910,7 @@ VisualTest {
}
Frame {
msec: 3952
- hash: "f46d6783c057c4d2f77a8b8cec424b9c"
+ hash: "a0850732bb126f65c59c1b19a5f6239e"
}
Mouse {
type: 5
@@ -2930,7 +2930,7 @@ VisualTest {
}
Frame {
msec: 3968
- hash: "76b685008c2dac620fffa96f84a7b1a3"
+ hash: "b1911d0b2c830b062b0b643b81af47ca"
}
Mouse {
type: 5
@@ -2950,7 +2950,7 @@ VisualTest {
}
Frame {
msec: 3984
- hash: "f79aec8887b31a98deb3f3d276785f47"
+ hash: "175eef004bbb5e2c589e06ae365060ee"
}
Mouse {
type: 5
@@ -2970,7 +2970,7 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "efc2ea91f004e93498aa735999a40bce"
+ hash: "70018bafe6ca3c0a80d95d407ac7d6fc"
}
Mouse {
type: 5
@@ -2990,7 +2990,7 @@ VisualTest {
}
Frame {
msec: 4016
- hash: "b65137519529f0a40741b96fae54cbb6"
+ hash: "3a1e8dae3e92475654b14370dd786ac6"
}
Mouse {
type: 5
@@ -3010,7 +3010,7 @@ VisualTest {
}
Frame {
msec: 4032
- hash: "81f5e838354c20236cddfef205617df1"
+ hash: "41f4e7ec40c8f3ff80e698edcbf8f514"
}
Mouse {
type: 5
@@ -3030,7 +3030,7 @@ VisualTest {
}
Frame {
msec: 4048
- hash: "716ca8215786b0c0dac22971da6c7c1f"
+ hash: "52e028f5463e2440f743bd06d066e21e"
}
Mouse {
type: 5
@@ -3050,7 +3050,7 @@ VisualTest {
}
Frame {
msec: 4064
- hash: "4741b2784b49b4d2692605408da61f5b"
+ hash: "868efe38144ff112dec51f2cbad6c42c"
}
Mouse {
type: 5
@@ -3070,7 +3070,7 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "bc602cecd344e101cbf113f815bdb106"
+ hash: "e13ad94ccefa1036a32ab292f43b1cbb"
}
Mouse {
type: 5
@@ -3090,7 +3090,7 @@ VisualTest {
}
Frame {
msec: 4096
- hash: "efb6bd4706a644ca7b369b8dec7d836a"
+ hash: "235de5961d9775ba475765dda3733d02"
}
Mouse {
type: 5
@@ -3110,7 +3110,7 @@ VisualTest {
}
Frame {
msec: 4112
- hash: "7175ff7dfb1458aedf93368f5ec712c5"
+ hash: "17cf2afc59328c1966a0da46fc7fbfe0"
}
Mouse {
type: 5
@@ -3130,7 +3130,7 @@ VisualTest {
}
Frame {
msec: 4128
- hash: "cb58f8982d1e7c36557d034bb959ae92"
+ hash: "ed2cec8191d5d0d7aebb005c089227b4"
}
Mouse {
type: 5
@@ -3150,7 +3150,7 @@ VisualTest {
}
Frame {
msec: 4144
- hash: "d7258eb5f469b1fe668ed31d439ecbe8"
+ hash: "8bc6769855cc9d5482ccceaff8a4fc42"
}
Mouse {
type: 5
@@ -3170,7 +3170,7 @@ VisualTest {
}
Frame {
msec: 4160
- hash: "8bedfa27d88e6417d5433b73c91d2c49"
+ hash: "67318cd4b05dbcbe544cd0c357eea839"
}
Mouse {
type: 5
@@ -3182,7 +3182,7 @@ VisualTest {
}
Frame {
msec: 4176
- hash: "c5fd391e224492be58b6c1ed358c7b19"
+ hash: "60574c12160b1fbd90a5e785f1d8aa73"
}
Mouse {
type: 5
@@ -3202,7 +3202,7 @@ VisualTest {
}
Frame {
msec: 4192
- hash: "d43a1d22827b86f7e20c1ac2f268eb59"
+ hash: "a9117c98c194d55b88b5ac0d77f42acf"
}
Mouse {
type: 5
@@ -3222,51 +3222,51 @@ VisualTest {
}
Frame {
msec: 4208
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4224
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4240
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4256
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4272
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4288
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4304
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4320
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4336
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4352
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4368
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Frame {
msec: 4384
- hash: "2197a29f3b1386e898face09c0d502d7"
+ hash: "310ce34c569042d7f58e789e5a19d433"
}
Mouse {
type: 5
@@ -3278,7 +3278,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "ac3610afa5018704d1b3d49a144beb87"
+ hash: "703b3f30d3fc65f5fee4af0975e5b9d6"
}
Mouse {
type: 5
@@ -3298,7 +3298,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "e0da45ad65cfd2197a245438584952ec"
+ hash: "4db461648cf7bcb600a8759b2bc7ce72"
}
Mouse {
type: 5
@@ -3318,7 +3318,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "8c865773461d82937b612056bc4934ee"
+ hash: "00d5a0f68d31c81f201cacc1164687af"
}
Mouse {
type: 5
@@ -3338,7 +3338,7 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "4332d4d02e5db250cff9912d981db7e3"
+ hash: "96631241a89881b8f0623000317992a9"
}
Mouse {
type: 5
@@ -3358,7 +3358,7 @@ VisualTest {
}
Frame {
msec: 4464
- hash: "c9a8e77fd42437cd11a4093399ade6cc"
+ hash: "eab392d065c0ff8670ff6ac4adb5cded"
}
Mouse {
type: 5
@@ -3378,7 +3378,7 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "80478b10b87ae34b6dfb2ae4c7d4eabe"
+ hash: "902ec37d1d67349d734e331b0fa90c0d"
}
Mouse {
type: 5
@@ -3398,7 +3398,7 @@ VisualTest {
}
Frame {
msec: 4496
- hash: "f0ad7be6e636e9caeaadcf63115773cd"
+ hash: "119a015c7242220e5053972b6b149633"
}
Mouse {
type: 5
@@ -3418,7 +3418,7 @@ VisualTest {
}
Frame {
msec: 4512
- hash: "48d39902949c1341cd0ed749baa3dd0e"
+ hash: "83945b29c290d7bf27375f52e7811a6b"
}
Mouse {
type: 5
@@ -3438,7 +3438,7 @@ VisualTest {
}
Frame {
msec: 4528
- hash: "fc61e73af2a9f1160bec0988d9b305fe"
+ hash: "e07f6cade109b3f46f77c85b77b5ede5"
}
Mouse {
type: 5
@@ -3458,7 +3458,7 @@ VisualTest {
}
Frame {
msec: 4544
- hash: "87351d6fbde24b45a06623c34beb3fed"
+ hash: "8b347a82042319bb3dd31e6a900ea1b1"
}
Mouse {
type: 5
@@ -3478,7 +3478,7 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "33d465abadd59dabf3f39387d9dbd1ee"
+ hash: "2575e3f08899bd8c2faf8b64c7ae0978"
}
Mouse {
type: 5
@@ -3498,7 +3498,7 @@ VisualTest {
}
Frame {
msec: 4576
- hash: "326a16956f6627f90d7d90505dfd446f"
+ hash: "3c2d38eb875afd4eab5d1e51f40cb7d7"
}
Mouse {
type: 5
@@ -3518,7 +3518,7 @@ VisualTest {
}
Frame {
msec: 4592
- hash: "1d06fe194f263082e1856dff186f4c40"
+ hash: "e614723eff6b1d173c6456694f73599b"
}
Mouse {
type: 5
@@ -3538,7 +3538,7 @@ VisualTest {
}
Frame {
msec: 4608
- hash: "ba58d196c204e2b9ca037f89985bf4b8"
+ hash: "4a95625900a275522a9b8dd10c2bf851"
}
Mouse {
type: 5
@@ -3558,7 +3558,7 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "67750bbbeaef1e62617cbeff825409e5"
+ hash: "b2464d3c72a99e7b027a8ccfc0454462"
}
Mouse {
type: 5
@@ -3578,7 +3578,7 @@ VisualTest {
}
Frame {
msec: 4640
- hash: "a0af41da84fe53ac3694f8d2b50f07e1"
+ hash: "a8c848730f57dcd09735b58b046fd3da"
}
Mouse {
type: 5
@@ -3598,7 +3598,7 @@ VisualTest {
}
Frame {
msec: 4656
- hash: "35766ee64c559ec1c1ed15b2c73d0ebc"
+ hash: "9384e50d399ac76b438580a477892311"
}
Mouse {
type: 5
@@ -3618,7 +3618,7 @@ VisualTest {
}
Frame {
msec: 4672
- hash: "1b92b035816251aef43fcf2d5a63e8ef"
+ hash: "8c1ea1c2f1fd48892c0a1101738d6e04"
}
Mouse {
type: 5
@@ -3638,7 +3638,7 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "d48f897abf5da79c9f4d8ea0a0df1995"
+ hash: "73d36159aae1a58562e5de1b8c52c151"
}
Mouse {
type: 5
@@ -3658,7 +3658,7 @@ VisualTest {
}
Frame {
msec: 4704
- hash: "3d74fe9886b6cb7e9fed619d02dd4ee0"
+ hash: "55f1ed43e44bca7ead813f78bec0865c"
}
Mouse {
type: 5
@@ -3678,7 +3678,7 @@ VisualTest {
}
Frame {
msec: 4720
- hash: "61c2064f2905b10afd64fa21d9b8eb34"
+ hash: "39cad5e6df3c923cb3f372ab0ff99f91"
}
Mouse {
type: 5
@@ -3698,7 +3698,7 @@ VisualTest {
}
Frame {
msec: 4736
- hash: "d91a049d0a620b7ca9322ec853a4920f"
+ hash: "767d6db8ea951d7b5b46563f9ffae2a3"
}
Mouse {
type: 5
@@ -3718,7 +3718,7 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "35ad1794662bbf8066fce8b063cae8b3"
+ hash: "cf273c6540cebf0981823ffff5cd1c29"
}
Mouse {
type: 5
@@ -3738,7 +3738,7 @@ VisualTest {
}
Frame {
msec: 4768
- hash: "ef01c5ebe6fea31c803b9c1e6cc74b45"
+ hash: "9e90a4f5a07abf6e0a012bd5d4d16ec3"
}
Mouse {
type: 5
@@ -3758,7 +3758,7 @@ VisualTest {
}
Frame {
msec: 4784
- hash: "b797758042ac68b306249ecb478f2cb1"
+ hash: "95d2b0ddfd1be4be9c583bddea33f0ad"
}
Mouse {
type: 5
@@ -3778,7 +3778,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "2b857d7ebd108a0a485c684ae0c94b1e"
+ hash: "f2dc94086ffad89fa6d66219fe1e1c90"
}
Mouse {
type: 5
@@ -3818,7 +3818,7 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "0f08a640e31d94a86c3510c68dc614e8"
+ hash: "0ed847d05da40bf2fc2270b17a1460d6"
}
Mouse {
type: 5
@@ -3838,7 +3838,7 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "4f7ffc64d9301b2359b55171561bd398"
+ hash: "1e3ea6f56bdefa572456d8df5fcc8034"
}
Mouse {
type: 5
@@ -3858,7 +3858,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "51e1f19955a099ad5780b44f5f49e0a6"
+ hash: "4904ec5f63412ea550448ef30ae209cb"
}
Mouse {
type: 5
@@ -3878,7 +3878,7 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "63335d137f74065032f902c4a9a9a282"
+ hash: "b901ba450cc5c1bb77fc00c24e4e29c3"
}
Mouse {
type: 5
@@ -3890,7 +3890,7 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "624ff9db3bccfd221638197155045f56"
+ hash: "d0d491feaa305cff118b11c3ea99ce58"
}
Mouse {
type: 5
@@ -3910,7 +3910,7 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "9640f6c197affb1df5b8e5be489aefda"
+ hash: "055b6e7bed5b0327794535c93f95ddb7"
}
Mouse {
type: 5
@@ -3930,7 +3930,7 @@ VisualTest {
}
Frame {
msec: 4928
- hash: "235c6a2e6561be2e5352c7fc43042501"
+ hash: "6408525c034dce5ab13ee89757799546"
}
Mouse {
type: 5
@@ -3950,7 +3950,7 @@ VisualTest {
}
Frame {
msec: 4944
- hash: "42a6ee976cce85954776def689f2ff02"
+ hash: "fd0e6906c396a326aa536288b406d2de"
}
Mouse {
type: 5
@@ -3970,7 +3970,7 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "f33f0d7ac0959da351c0f5953d460db1"
+ hash: "f7264ef81de00288c1d18cca7eb6e7c4"
}
Mouse {
type: 5
@@ -3990,7 +3990,7 @@ VisualTest {
}
Frame {
msec: 4976
- hash: "e9a6e2f9a5559ef7b917442c4b117eb9"
+ hash: "4825ec337a7d0d62c0ca2d9fb506a9c2"
}
Mouse {
type: 5
@@ -4010,7 +4010,7 @@ VisualTest {
}
Frame {
msec: 4992
- hash: "7f0b2b269245bce333d123ffb5e5e878"
+ hash: "6984664a71722bf123af80cc9c2b3c75"
}
Mouse {
type: 5
@@ -4030,7 +4030,7 @@ VisualTest {
}
Frame {
msec: 5008
- hash: "a7f73547a00264bdc3ce3b13561c2049"
+ hash: "27dd62ee9eac60ff3aedb269cc39d6d0"
}
Mouse {
type: 5
@@ -4050,7 +4050,7 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "b61d190f812c82f8807a035db11d94a3"
+ hash: "2293acc57516cfff697bcb81e6c50430"
}
Mouse {
type: 5
@@ -4062,7 +4062,7 @@ VisualTest {
}
Frame {
msec: 5040
- hash: "cb3781b50d8ddb7ed422f61e4cf6b107"
+ hash: "ec365cb13bc978dc355965a822fa618d"
}
Mouse {
type: 5
@@ -4082,7 +4082,7 @@ VisualTest {
}
Frame {
msec: 5056
- hash: "6edb148c43c69b76051b695349add976"
+ hash: "0b13aaabfa32e4fe444a48eeaf5b43bc"
}
Mouse {
type: 5
@@ -4102,7 +4102,7 @@ VisualTest {
}
Frame {
msec: 5072
- hash: "7321af24c1ddb803632162256dc5fa3b"
+ hash: "87508e1b30380158ac8b08c21e5e0fbf"
}
Mouse {
type: 5
@@ -4122,7 +4122,7 @@ VisualTest {
}
Frame {
msec: 5088
- hash: "943ee97bde631cc5f4bfcd384464395b"
+ hash: "22ca1f9d2388913c5cb3748388290a96"
}
Mouse {
type: 5
@@ -4142,7 +4142,7 @@ VisualTest {
}
Frame {
msec: 5104
- hash: "f8f04e717029d387c7663f0f883c1a71"
+ hash: "c4bf5f1d086860f8e85eff3260e8ba3f"
}
Mouse {
type: 5
@@ -4162,7 +4162,7 @@ VisualTest {
}
Frame {
msec: 5120
- hash: "b7a599e2faa5d78aa3b0582b2d11089c"
+ hash: "d5f9c70fdae90e1d3de93782568a8822"
}
Mouse {
type: 5
@@ -4182,7 +4182,7 @@ VisualTest {
}
Frame {
msec: 5136
- hash: "bc6fc2d62bde4858417ec48830269d68"
+ hash: "fde0033333d5c024c755a75750b072e4"
}
Mouse {
type: 5
@@ -4202,7 +4202,7 @@ VisualTest {
}
Frame {
msec: 5152
- hash: "837133b0acc136e597589ecc15686291"
+ hash: "fb0f8be3fda57ffe907cc84fefc3d3a7"
}
Mouse {
type: 5
@@ -4222,7 +4222,7 @@ VisualTest {
}
Frame {
msec: 5168
- hash: "dd4d3eff786ae7d892b7e60eb945edea"
+ hash: "7ccf78f3b164ceb5f4e002991881a826"
}
Mouse {
type: 5
@@ -4242,7 +4242,7 @@ VisualTest {
}
Frame {
msec: 5184
- hash: "bed3de34d193d37799a450785eacb2cd"
+ hash: "bcb59b1f36117f9b215d794b9437ea8a"
}
Mouse {
type: 5
@@ -4254,7 +4254,7 @@ VisualTest {
}
Frame {
msec: 5200
- hash: "2ffa6a6c67581b73b458ff3444260668"
+ hash: "6134432f0757f02ae06fbf84f0eca459"
}
Mouse {
type: 5
@@ -4274,11 +4274,11 @@ VisualTest {
}
Frame {
msec: 5216
- hash: "fdbe44797fbafe09c12466533f569cbd"
+ hash: "c6290f7f0b63e6a2052fe08809c9c516"
}
Frame {
msec: 5232
- hash: "fdbe44797fbafe09c12466533f569cbd"
+ hash: "c6290f7f0b63e6a2052fe08809c9c516"
}
Mouse {
type: 5
@@ -4290,83 +4290,83 @@ VisualTest {
}
Frame {
msec: 5248
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5264
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5280
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5296
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5312
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5328
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5344
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5360
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5376
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5392
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5408
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5424
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5440
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5456
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5472
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5488
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5504
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5520
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5536
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5552
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Mouse {
type: 3
@@ -4378,55 +4378,55 @@ VisualTest {
}
Frame {
msec: 5568
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5584
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5600
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5616
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5632
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5648
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5664
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5680
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5696
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5712
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5728
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5744
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5760
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5776
@@ -4434,115 +4434,115 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5808
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5824
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5840
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5856
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5872
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5888
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5904
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5920
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5936
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5952
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5968
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 5984
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6000
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6016
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6032
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6048
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6064
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6080
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6096
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6112
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6128
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6144
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6160
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6176
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6192
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6208
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6224
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Mouse {
type: 5
@@ -4562,7 +4562,7 @@ VisualTest {
}
Frame {
msec: 6240
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Mouse {
type: 5
@@ -4582,7 +4582,7 @@ VisualTest {
}
Frame {
msec: 6256
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Mouse {
type: 5
@@ -4602,7 +4602,7 @@ VisualTest {
}
Frame {
msec: 6272
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Mouse {
type: 5
@@ -4614,115 +4614,115 @@ VisualTest {
}
Frame {
msec: 6288
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6304
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6320
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6336
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6352
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6368
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6384
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6400
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6416
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6432
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6448
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6464
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6480
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6496
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6512
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6528
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6544
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6560
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6576
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6592
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6608
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6624
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6640
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6656
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6672
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6688
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6704
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6720
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6736
@@ -4730,122 +4730,122 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6768
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6784
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6800
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6816
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6832
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6848
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6864
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6880
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6896
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6912
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6928
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6944
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6960
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6976
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 6992
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7008
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7024
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7040
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7056
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7072
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7088
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7104
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7120
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7136
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7152
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7168
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7184
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7200
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
Frame {
msec: 7216
- hash: "11abc297056c99381f01c2589864fbba"
+ hash: "3890043d98d7bcd8c0e5d3a19124eb46"
}
}
diff --git a/tests/nfcsymbianbackend/common/qnfctagtestcommon.h b/tests/nfcsymbianbackend/common/qnfctagtestcommon.h
index 5389c9df90..73ce368e4b 100644
--- a/tests/nfcsymbianbackend/common/qnfctagtestcommon.h
+++ b/tests/nfcsymbianbackend/common/qnfctagtestcommon.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
@@ -38,6 +38,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+
#ifndef QNFCTAGTESTCOMMON_H
#define QNFCTAGTESTCOMMON_H
@@ -367,8 +368,8 @@ protected:
QList<QNdefMessage> mInputMessages;
QList<QNdefMessage> mExpectedMessages;
QList<QNdefMessage> mReceivedMessages;
- void (QNearFieldTarget::*readNdefMessages)();
- void (QNearFieldTarget::*writeNdefMessages)(const QList<QNdefMessage> &messages);
+ QNearFieldTarget::RequestId (QNearFieldTarget::*readNdefMessages)();
+ QNearFieldTarget::RequestId (QNearFieldTarget::*writeNdefMessages)(const QList<QNdefMessage> &messages);
};
NfcTagNdefOperationCommon::NfcTagNdefOperationCommon(QNearFieldTarget * tag) : MNfcTagOperation(tag)
diff --git a/tests/nfcsymbianbackend/nfctestserviceprovider/nfctestserviceprovider.pro b/tests/nfcsymbianbackend/nfctestserviceprovider/nfctestserviceprovider.pro
index 0214f0e3fd..b14b9b50e6 100644
--- a/tests/nfcsymbianbackend/nfctestserviceprovider/nfctestserviceprovider.pro
+++ b/tests/nfcsymbianbackend/nfctestserviceprovider/nfctestserviceprovider.pro
@@ -11,7 +11,14 @@ MOBILITY = serviceframework \
connectivity
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
HEADERS += nfctestserviceprovider.h
SOURCES += nfctestserviceprovider_reg.rss \
diff --git a/tests/nfcsymbianbackend/nfctestserviceprovider2/nfctestserviceprovider2.pro b/tests/nfcsymbianbackend/nfctestserviceprovider2/nfctestserviceprovider2.pro
index c53d01a2f0..e3d5ccf8cb 100644
--- a/tests/nfcsymbianbackend/nfctestserviceprovider2/nfctestserviceprovider2.pro
+++ b/tests/nfcsymbianbackend/nfctestserviceprovider2/nfctestserviceprovider2.pro
@@ -11,7 +11,14 @@ MOBILITY = serviceframework \
connectivity
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
HEADERS += nfctestserviceprovider2.h
SOURCES += nfctestserviceprovider2_reg.rss \
diff --git a/tests/nfcsymbianbackend/qcontenthandler/qcontenthandler.pro b/tests/nfcsymbianbackend/qcontenthandler/qcontenthandler.pro
index adcbf21e09..fa4052a44f 100644
--- a/tests/nfcsymbianbackend/qcontenthandler/qcontenthandler.pro
+++ b/tests/nfcsymbianbackend/qcontenthandler/qcontenthandler.pro
@@ -10,7 +10,14 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
HEADERS += ../common/qautomsgbox.h
SOURCES += tst_qcontenthandler.cpp \
diff --git a/tests/nfcsymbianbackend/qllcpserver/qllcpserver.pro b/tests/nfcsymbianbackend/qllcpserver/qllcpserver.pro
index 74cd924745..dced55d680 100644
--- a/tests/nfcsymbianbackend/qllcpserver/qllcpserver.pro
+++ b/tests/nfcsymbianbackend/qllcpserver/qllcpserver.pro
@@ -10,7 +10,14 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
HEADERS += ../common/qautomsgbox.h
SOURCES += tst_qllcpserver.cpp\
diff --git a/tests/nfcsymbianbackend/qllcpsocketlocal/qllcpsocketlocal.pro b/tests/nfcsymbianbackend/qllcpsocketlocal/qllcpsocketlocal.pro
index e4532d1621..db34fd84c5 100644
--- a/tests/nfcsymbianbackend/qllcpsocketlocal/qllcpsocketlocal.pro
+++ b/tests/nfcsymbianbackend/qllcpsocketlocal/qllcpsocketlocal.pro
@@ -11,7 +11,15 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
HEADERS += ../common/qautomsgbox.h
SOURCES += tst_qllcpsocketlocal.cpp \
../common/qautomsgbox.cpp
diff --git a/tests/nfcsymbianbackend/qllcpsocketremote/qllcpsocketremote.pro b/tests/nfcsymbianbackend/qllcpsocketremote/qllcpsocketremote.pro
index 0286d34c31..fa14ea7b38 100644
--- a/tests/nfcsymbianbackend/qllcpsocketremote/qllcpsocketremote.pro
+++ b/tests/nfcsymbianbackend/qllcpsocketremote/qllcpsocketremote.pro
@@ -11,7 +11,15 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
HEADERS += ../common/qautomsgbox.h
SOURCES += tst_qllcpsocketremote.cpp \
../common/qautomsgbox.cpp
diff --git a/tests/nfcsymbianbackend/qllcpsockettype2/qllcpsockettype2.pro b/tests/nfcsymbianbackend/qllcpsockettype2/qllcpsockettype2.pro
index 7b966b0f27..967d8535c5 100644
--- a/tests/nfcsymbianbackend/qllcpsockettype2/qllcpsockettype2.pro
+++ b/tests/nfcsymbianbackend/qllcpsockettype2/qllcpsockettype2.pro
@@ -10,7 +10,15 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
HEADERS += ../common/qautomsgbox.h
SOURCES += tst_qllcpsockettype2.cpp \
../common/qautomsgbox.cpp
diff --git a/tests/nfcsymbianbackend/qnearfieldmanager/qnearfieldmanager.pro b/tests/nfcsymbianbackend/qnearfieldmanager/qnearfieldmanager.pro
index 1f5289389e..ab19db1505 100644
--- a/tests/nfcsymbianbackend/qnearfieldmanager/qnearfieldmanager.pro
+++ b/tests/nfcsymbianbackend/qnearfieldmanager/qnearfieldmanager.pro
@@ -10,9 +10,18 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
+
INCLUDEPATH += ../common
+DEPENDPATH += ../common
HEADERS += ../common/qautomsgbox.h
SOURCES += tst_qnearfieldmanager.cpp \
../common/qautomsgbox.cpp
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
symbian:TARGET.CAPABILITY = ALL -TCB
diff --git a/tests/nfcsymbianbackend/qnearfieldtagtype1/qnearfieldtagtype1.pro b/tests/nfcsymbianbackend/qnearfieldtagtype1/qnearfieldtagtype1.pro
index 295cad7e99..7d8c6e8db5 100644
--- a/tests/nfcsymbianbackend/qnearfieldtagtype1/qnearfieldtagtype1.pro
+++ b/tests/nfcsymbianbackend/qnearfieldtagtype1/qnearfieldtagtype1.pro
@@ -10,7 +10,15 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
HEADERS += ../common/qnfctagtestcommon.h \
../common/qdummyslot.h \
../common/qautomsgbox.h \
diff --git a/tests/nfcsymbianbackend/qnearfieldtagtype2/qnearfieldtagtype2.pro b/tests/nfcsymbianbackend/qnearfieldtagtype2/qnearfieldtagtype2.pro
index ce4725ca90..84b37bce97 100644
--- a/tests/nfcsymbianbackend/qnearfieldtagtype2/qnearfieldtagtype2.pro
+++ b/tests/nfcsymbianbackend/qnearfieldtagtype2/qnearfieldtagtype2.pro
@@ -10,7 +10,15 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
HEADERS += ../common/qnfctagtestcommon.h \
../common/qdummyslot.h \
../common/qautomsgbox.h \
diff --git a/tests/nfcsymbianbackend/qnearfieldtagtype3/qnearfieldtagtype3.pro b/tests/nfcsymbianbackend/qnearfieldtagtype3/qnearfieldtagtype3.pro
index 72e6a35c36..8ee86ff231 100644
--- a/tests/nfcsymbianbackend/qnearfieldtagtype3/qnearfieldtagtype3.pro
+++ b/tests/nfcsymbianbackend/qnearfieldtagtype3/qnearfieldtagtype3.pro
@@ -10,7 +10,15 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
HEADERS += ../common/qnfctagtestcommon.h \
../common/qdummyslot.h \
../common/qautomsgbox.h \
diff --git a/tests/nfcsymbianbackend/qnearfieldtagtype4/qnearfieldtagtype4.pro b/tests/nfcsymbianbackend/qnearfieldtagtype4/qnearfieldtagtype4.pro
index 837cf351f8..ed6c087c60 100644
--- a/tests/nfcsymbianbackend/qnearfieldtagtype4/qnearfieldtagtype4.pro
+++ b/tests/nfcsymbianbackend/qnearfieldtagtype4/qnearfieldtagtype4.pro
@@ -10,7 +10,15 @@ MOBILITY = connectivity
TEMPLATE = app
INCLUDEPATH += ../../../src/connectivity/nfc
+DEPENDPATH += ../../../src/connectivity/nfc
INCLUDEPATH += ../common
+DEPENDPATH += ../common
+
+INCLUDEPATH += ../../../src/global
+DEPENDPATH += ../../../src/global
+
+QMAKE_LIBDIR += $$QT_MOBILITY_BUILD_TREE/lib
+
HEADERS += ../common/qnfctagtestcommon.h \
../common/qdummyslot.h \
../common/qautomsgbox.h \
diff --git a/tests/sysinfo-tester/main.cpp b/tests/sysinfo-tester/main.cpp
index 7c4e7e46a5..6061067103 100644
--- a/tests/sysinfo-tester/main.cpp
+++ b/tests/sysinfo-tester/main.cpp
@@ -129,6 +129,33 @@ static const symbol_t NetworkMode_lut[] =
{0,0}
};
+static const symbol_t BatteryStatus_lut[] =
+{
+ SYM(QSystemBatteryInfo::BatteryUnknown),
+ SYM(QSystemBatteryInfo::BatteryCritical),
+ SYM(QSystemBatteryInfo::BatteryVeryLow),
+ SYM(QSystemBatteryInfo::BatteryLow),
+ SYM(QSystemBatteryInfo::BatteryOk),
+ SYM(QSystemBatteryInfo::BatteryFull),
+};
+
+static const symbol_t ChargingState_lut[] =
+{
+ SYM(QSystemBatteryInfo::NotCharging),
+ SYM(QSystemBatteryInfo::Charging),
+ SYM(QSystemBatteryInfo::BatteryVeryLow),
+ SYM(QSystemBatteryInfo::ChargingError),
+};
+
+static const symbol_t ChargerType_lut[] =
+{
+ SYM(QSystemBatteryInfo::UnknownCharger),
+ SYM(QSystemBatteryInfo::NoCharger),
+ SYM(QSystemBatteryInfo::WallCharger),
+ SYM(QSystemBatteryInfo::USB_500mACharger),
+ SYM(QSystemBatteryInfo::USB_100mACharger),
+};
+
/* ------------------------------------------------------------------------- *
* test_systeminfo
* ------------------------------------------------------------------------- */
@@ -311,8 +338,8 @@ static void test_systemnetworkinfo(void)
for(const symbol_t *sym = NetworkMode_lut; sym->key; ++sym) {
- QtMobility::QSystemNetworkInfo::NetworkMode mode =
- (QtMobility::QSystemNetworkInfo::NetworkMode) sym->val;
+ QtMobility::QSystemNetworkInfo::NetworkMode mode =
+ (QtMobility::QSystemNetworkInfo::NetworkMode) sym->val;
if(QCoreApplication::arguments().count() > 2)
if(!QString(sym->key).contains(QCoreApplication::arguments().at(2),Qt::CaseInsensitive))
@@ -338,6 +365,9 @@ static void test_systemnetworkinfo(void)
}
}
+/* ------------------------------------------------------------------------- *
+ * test_systemscreensaver
+ * ------------------------------------------------------------------------- */
static void test_systemscreensaver(void)
{
QSystemScreenSaver screensaver;
@@ -346,6 +376,10 @@ static void test_systemscreensaver(void)
X(screensaver.setScreenSaverInhibit());
}
+/* ------------------------------------------------------------------------- *
+ * test_systembatteryinfo
+ * ------------------------------------------------------------------------- */
+
static void test_systembatteryinfo(void)
{
QSystemBatteryInfo batInfo;
@@ -363,6 +397,7 @@ static void test_systembatteryinfo(void)
X(batInfo.energyMeasurementUnit());
}
+
struct dummy_t
{
const char *name;