diff options
author | Thomas McGuire <thomas.mcguire.qnx@kdab.com> | 2013-01-08 11:55:10 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-23 18:32:14 +0100 |
commit | acd094c6d795a597d3b899633e207d65f79ea746 (patch) | |
tree | 5794fe09472804158a97be1f6d62fbaabb1be54e /src/imports | |
parent | a001511d8629c05de807f9927c3fa75f5d59a768 (diff) | |
download | qtsensors-acd094c6d795a597d3b899633e207d65f79ea746.tar.gz |
QAccelerometer: Add AccelerationMode property
Add a new property to be able to toggle effects of gravity on or off.
Implement the Blackberry backend side of this as well.
QTBUG-25842
Change-Id: I15c4cae72373f48b0153b83c6aa3d27b66538c87
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
Reviewed-by: Sérgio Martins <sergio.martins.qnx@kdab.com>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/sensors/plugins.qmltypes | 76 | ||||
-rw-r--r-- | src/imports/sensors/qmlaccelerometer.cpp | 21 | ||||
-rw-r--r-- | src/imports/sensors/qmlaccelerometer.h | 15 | ||||
-rw-r--r-- | src/imports/sensors/sensors.cpp | 35 | ||||
-rw-r--r-- | src/imports/sensors/sensors.pro | 2 |
5 files changed, 117 insertions, 32 deletions
diff --git a/src/imports/sensors/plugins.qmltypes b/src/imports/sensors/plugins.qmltypes index 687a1f2..00d8c36 100644 --- a/src/imports/sensors/plugins.qmltypes +++ b/src/imports/sensors/plugins.qmltypes @@ -3,18 +3,32 @@ import QtQuick.tooling 1.1 // This file describes the plugin-supplied types contained in the library. // It is used for QML tooling purposes only. // -// This file was auto-generated with the command 'qmlplugindump QtSensors 5.0 /home/thomas/src/qtbase/imports/'. +// This file was auto-generated with the command 'qmlplugindump QtSensors 5.0 /home/thomas/src/qtbase/qml'. Module { Component { name: "QmlAccelerometer" prototype: "QmlSensor" - exports: ["Accelerometer 5.0"] + exports: ["Accelerometer 5.0", "Accelerometer 5.1"] + exportMetaObjectRevisions: [0, 1] + Enum { + name: "AccelerationMode" + values: { + "Combined": 0, + "Gravity": 1, + "User": 2 + } + } + Property { name: "accelerationMode"; revision: 1; type: "AccelerationMode" } + Signal { + name: "accelerationModeChanged" + Parameter { name: "accelerationMode"; type: "AccelerationMode" } + } } Component { name: "QmlAccelerometerReading" prototype: "QmlSensorReading" - exports: ["AccelerometerReading 5.0"] + exports: ["AccelerometerReading 5.0", "AccelerometerReading 5.1"] Property { name: "x"; type: "double"; isReadonly: true } Property { name: "y"; type: "double"; isReadonly: true } Property { name: "z"; type: "double"; isReadonly: true } @@ -22,35 +36,35 @@ Module { Component { name: "QmlAmbientLightSensor" prototype: "QmlSensor" - exports: ["AmbientLightSensor 5.0"] + exports: ["AmbientLightSensor 5.0", "AmbientLightSensor 5.1"] } Component { name: "QmlAmbientLightSensorReading" prototype: "QmlSensorReading" - exports: ["AmbientLightReading 5.0"] + exports: ["AmbientLightReading 5.0", "AmbientLightReading 5.1"] Property { name: "lightLevel"; type: "QAmbientLightReading::LightLevel"; isReadonly: true } } Component { name: "QmlCompass" prototype: "QmlSensor" - exports: ["Compass 5.0"] + exports: ["Compass 5.0", "Compass 5.1"] } Component { name: "QmlCompassReading" prototype: "QmlSensorReading" - exports: ["CompassReading 5.0"] + exports: ["CompassReading 5.0", "CompassReading 5.1"] Property { name: "azimuth"; type: "double"; isReadonly: true } Property { name: "calibrationLevel"; type: "double"; isReadonly: true } } Component { name: "QmlGyroscope" prototype: "QmlSensor" - exports: ["Gyroscope 5.0"] + exports: ["Gyroscope 5.0", "Gyroscope 5.1"] } Component { name: "QmlGyroscopeReading" prototype: "QmlSensorReading" - exports: ["GyroscopeReading 5.0"] + exports: ["GyroscopeReading 5.0", "GyroscopeReading 5.1"] Property { name: "x"; type: "double"; isReadonly: true } Property { name: "y"; type: "double"; isReadonly: true } Property { name: "z"; type: "double"; isReadonly: true } @@ -58,35 +72,35 @@ Module { Component { name: "QmlIRProximitySensor" prototype: "QmlSensor" - exports: ["IRProximitySensor 5.0"] + exports: ["IRProximitySensor 5.0", "IRProximitySensor 5.1"] } Component { name: "QmlIRProximitySensorReading" prototype: "QmlSensorReading" - exports: ["IRProximityReading 5.0"] + exports: ["IRProximityReading 5.0", "IRProximityReading 5.1"] Property { name: "reflectance"; type: "double"; isReadonly: true } } Component { name: "QmlLightSensor" prototype: "QmlSensor" - exports: ["LightSensor 5.0"] + exports: ["LightSensor 5.0", "LightSensor 5.1"] Property { name: "fieldOfView"; type: "double"; isReadonly: true } } Component { name: "QmlLightSensorReading" prototype: "QmlSensorReading" - exports: ["LightReading 5.0"] + exports: ["LightReading 5.0", "LightReading 5.1"] Property { name: "illuminance"; type: "double"; isReadonly: true } } Component { name: "QmlMagnetometer" prototype: "QmlSensor" - exports: ["Magnetometer 5.0"] + exports: ["Magnetometer 5.0", "Magnetometer 5.1"] } Component { name: "QmlMagnetometerReading" prototype: "QmlSensorReading" - exports: ["MagnetometerReading 5.0"] + exports: ["MagnetometerReading 5.0", "MagnetometerReading 5.1"] Property { name: "x"; type: "double"; isReadonly: true } Property { name: "y"; type: "double"; isReadonly: true } Property { name: "z"; type: "double"; isReadonly: true } @@ -95,35 +109,35 @@ Module { Component { name: "QmlOrientationSensor" prototype: "QmlSensor" - exports: ["OrientationSensor 5.0"] + exports: ["OrientationSensor 5.0", "OrientationSensor 5.1"] } Component { name: "QmlOrientationSensorReading" prototype: "QmlSensorReading" - exports: ["OrientationReading 5.0"] + exports: ["OrientationReading 5.0", "OrientationReading 5.1"] Property { name: "orientation"; type: "QOrientationReading::Orientation"; isReadonly: true } } Component { name: "QmlProximitySensor" prototype: "QmlSensor" - exports: ["ProximitySensor 5.0"] + exports: ["ProximitySensor 5.0", "ProximitySensor 5.1"] } Component { name: "QmlProximitySensorReading" prototype: "QmlSensorReading" - exports: ["ProximityReading 5.0"] + exports: ["ProximityReading 5.0", "ProximityReading 5.1"] Property { name: "near"; type: "bool"; isReadonly: true } } Component { name: "QmlRotationSensor" prototype: "QmlSensor" - exports: ["RotationSensor 5.0"] + exports: ["RotationSensor 5.0", "RotationSensor 5.1"] Property { name: "hasZ"; type: "bool"; isReadonly: true } } Component { name: "QmlRotationSensorReading" prototype: "QmlSensorReading" - exports: ["RotationReading 5.0"] + exports: ["RotationReading 5.0", "RotationReading 5.1"] Property { name: "x"; type: "double"; isReadonly: true } Property { name: "y"; type: "double"; isReadonly: true } Property { name: "z"; type: "double"; isReadonly: true } @@ -131,7 +145,7 @@ Module { Component { name: "QmlSensor" prototype: "QObject" - exports: ["Sensor 5.0"] + exports: ["Sensor 5.0", "Sensor 5.1"] Property { name: "identifier"; type: "string" } Property { name: "type"; type: "string"; isReadonly: true } Property { name: "connectedToBackend"; type: "bool"; isReadonly: true } @@ -151,7 +165,7 @@ Module { Component { name: "QmlSensorGesture" prototype: "QObject" - exports: ["SensorGesture 5.0"] + exports: ["SensorGesture 5.0", "SensorGesture 5.1"] Property { name: "availableGestures"; type: "QStringList"; isReadonly: true } Property { name: "gestures"; type: "QStringList" } Property { name: "validGestures"; type: "QStringList"; isReadonly: true } @@ -165,7 +179,7 @@ Module { Component { name: "QmlSensorGlobal" prototype: "QObject" - exports: ["QmlSensors 5.0"] + exports: ["QmlSensors 5.0", "QmlSensors 5.1"] Signal { name: "availableSensorsChanged" } Method { name: "sensorTypes"; type: "QStringList" } Method { @@ -182,7 +196,7 @@ Module { Component { name: "QmlSensorOutputRange" prototype: "QObject" - exports: ["OutputRange 5.0"] + exports: ["OutputRange 5.0", "OutputRange 5.1"] Property { name: "minimum"; type: "double"; isReadonly: true } Property { name: "maximum"; type: "double"; isReadonly: true } Property { name: "accuracy"; type: "double"; isReadonly: true } @@ -190,26 +204,26 @@ Module { Component { name: "QmlSensorRange" prototype: "QObject" - exports: ["Range 5.0"] + exports: ["Range 5.0", "Range 5.1"] Property { name: "minimum"; type: "int"; isReadonly: true } Property { name: "maximum"; type: "int"; isReadonly: true } } Component { name: "QmlSensorReading" prototype: "QObject" - exports: ["SensorReading 5.0"] + exports: ["SensorReading 5.0", "SensorReading 5.1"] Property { name: "timestamp"; type: "qulonglong"; isReadonly: true } } Component { name: "QmlTapSensor" prototype: "QmlSensor" - exports: ["TapSensor 5.0"] + exports: ["TapSensor 5.0", "TapSensor 5.1"] Property { name: "returnDoubleTapEvents"; type: "bool" } } Component { name: "QmlTapSensorReading" prototype: "QmlSensorReading" - exports: ["TapReading 5.0"] + exports: ["TapReading 5.0", "TapReading 5.1"] Property { name: "tapDirection"; type: "QTapReading::TapDirection"; isReadonly: true } Property { name: "doubleTap"; type: "bool"; isReadonly: true } Signal { name: "isDoubleTapChanged" } @@ -217,13 +231,13 @@ Module { Component { name: "QmlTiltSensor" prototype: "QmlSensor" - exports: ["TiltSensor 5.0"] + exports: ["TiltSensor 5.0", "TiltSensor 5.1"] Method { name: "calibrate" } } Component { name: "QmlTiltSensorReading" prototype: "QmlSensorReading" - exports: ["TiltReading 5.0"] + exports: ["TiltReading 5.0", "TiltReading 5.1"] Property { name: "yRotation"; type: "double"; isReadonly: true } Property { name: "xRotation"; type: "double"; isReadonly: true } } diff --git a/src/imports/sensors/qmlaccelerometer.cpp b/src/imports/sensors/qmlaccelerometer.cpp index 390f8be..6fc82ea 100644 --- a/src/imports/sensors/qmlaccelerometer.cpp +++ b/src/imports/sensors/qmlaccelerometer.cpp @@ -65,12 +65,33 @@ QmlAccelerometer::QmlAccelerometer(QObject *parent) : QmlSensor(parent) , m_sensor(new QAccelerometer(this)) { + connect(m_sensor, SIGNAL(accelerationModeChanged(AccelerationMode)), + this, SIGNAL(accelerationModeChanged(AccelerationMode))); } QmlAccelerometer::~QmlAccelerometer() { } +/*! + \qmlproperty AccelerationMode Accelerometer::accelerationMode + \since QtSensors 5.1 + + This property holds the current acceleration mode. + + Please see QAccelerometer::accelerationMode for information about this property. +*/ + +QmlAccelerometer::AccelerationMode QmlAccelerometer::accelerationMode() const +{ + return static_cast<QmlAccelerometer::AccelerationMode>(m_sensor->accelerationMode()); +} + +void QmlAccelerometer::setAccelerationMode(QmlAccelerometer::AccelerationMode accelerationMode) +{ + m_sensor->setAccelerationMode(static_cast<QAccelerometer::AccelerationMode>(accelerationMode)); +} + QmlSensorReading *QmlAccelerometer::createReading() const { return new QmlAccelerometerReading(m_sensor); diff --git a/src/imports/sensors/qmlaccelerometer.h b/src/imports/sensors/qmlaccelerometer.h index 95785ed..b2dc671 100644 --- a/src/imports/sensors/qmlaccelerometer.h +++ b/src/imports/sensors/qmlaccelerometer.h @@ -52,10 +52,25 @@ class QAccelerometer; class QmlAccelerometer : public QmlSensor { Q_OBJECT + Q_ENUMS(AccelerationMode) + Q_PROPERTY(AccelerationMode accelerationMode READ accelerationMode WRITE setAccelerationMode + NOTIFY accelerationModeChanged REVISION 1) public: explicit QmlAccelerometer(QObject *parent = 0); ~QmlAccelerometer(); + // Keep this enum in sync with QAccelerometer::AccelerationMode + enum AccelerationMode { + Combined, + Gravity, + User + }; + + AccelerationMode accelerationMode() const; + void setAccelerationMode(AccelerationMode accelerationMode); + +signals: + void accelerationModeChanged(AccelerationMode accelerationMode); private: QSensor *sensor() const Q_DECL_OVERRIDE; diff --git a/src/imports/sensors/sensors.cpp b/src/imports/sensors/sensors.cpp index 50ccdf9..95fc8cc 100644 --- a/src/imports/sensors/sensors.cpp +++ b/src/imports/sensors/sensors.cpp @@ -125,6 +125,41 @@ public: qmlRegisterUncreatableType<QmlTiltSensorReading >(package, major, minor, "TiltReading", QLatin1String("Cannot create TiltReading")); qmlRegisterType <QmlSensorGesture >(package, major, minor, "SensorGesture"); + + // Register the 5.1 interfaces + major = 5; + minor = 1; + qmlRegisterSingletonType <QmlSensorGlobal >(package, major, minor, "QmlSensors", global_object_50); + qmlRegisterUncreatableType<QmlSensorRange >(package, major, minor, "Range", QLatin1String("Cannot create Range")); + qmlRegisterUncreatableType<QmlSensorOutputRange >(package, major, minor, "OutputRange", QLatin1String("Cannot create OutputRange")); + qmlRegisterUncreatableType<QmlSensor >(package, major, minor, "Sensor", QLatin1String("Cannot create Sensor")); + qmlRegisterUncreatableType<QmlSensorReading >(package, major, minor, "SensorReading", QLatin1String("Cannot create SensorReading")); + qmlRegisterType <QmlAccelerometer,1 >(package, major, minor, "Accelerometer"); + qmlRegisterUncreatableType<QmlAccelerometerReading >(package, major, minor, "AccelerometerReading", QLatin1String("Cannot create AccelerometerReading")); + qmlRegisterType <QmlAmbientLightSensor >(package, major, minor, "AmbientLightSensor"); + qmlRegisterUncreatableType<QmlAmbientLightSensorReading>(package, major, minor, "AmbientLightReading", QLatin1String("Cannot create AmbientLightReading")); + qmlRegisterType <QmlCompass >(package, major, minor, "Compass"); + qmlRegisterUncreatableType<QmlCompassReading >(package, major, minor, "CompassReading", QLatin1String("Cannot create CompassReading")); + qmlRegisterType <QmlGyroscope >(package, major, minor, "Gyroscope"); + qmlRegisterUncreatableType<QmlGyroscopeReading >(package, major, minor, "GyroscopeReading", QLatin1String("Cannot create GyroscopeReading")); + qmlRegisterType <QmlIRProximitySensor >(package, major, minor, "IRProximitySensor"); + qmlRegisterUncreatableType<QmlIRProximitySensorReading >(package, major, minor, "IRProximityReading", QLatin1String("Cannot create IRProximityReading")); + qmlRegisterType <QmlLightSensor >(package, major, minor, "LightSensor"); + qmlRegisterUncreatableType<QmlLightSensorReading >(package, major, minor, "LightReading", QLatin1String("Cannot create LightReading")); + qmlRegisterType <QmlMagnetometer >(package, major, minor, "Magnetometer"); + qmlRegisterUncreatableType<QmlMagnetometerReading >(package, major, minor, "MagnetometerReading", QLatin1String("Cannot create MagnetometerReading")); + qmlRegisterType <QmlOrientationSensor >(package, major, minor, "OrientationSensor"); + qmlRegisterUncreatableType<QmlOrientationSensorReading >(package, major, minor, "OrientationReading", QLatin1String("Cannot create OrientationReading")); + qmlRegisterType <QmlProximitySensor >(package, major, minor, "ProximitySensor"); + qmlRegisterUncreatableType<QmlProximitySensorReading >(package, major, minor, "ProximityReading", QLatin1String("Cannot create ProximityReading")); + qmlRegisterType <QmlRotationSensor >(package, major, minor, "RotationSensor"); + qmlRegisterUncreatableType<QmlRotationSensorReading >(package, major, minor, "RotationReading", QLatin1String("Cannot create RotationReading")); + qmlRegisterType <QmlTapSensor >(package, major, minor, "TapSensor"); + qmlRegisterUncreatableType<QmlTapSensorReading >(package, major, minor, "TapReading", QLatin1String("Cannot create TapReading")); + qmlRegisterType <QmlTiltSensor >(package, major, minor, "TiltSensor"); + qmlRegisterUncreatableType<QmlTiltSensorReading >(package, major, minor, "TiltReading", QLatin1String("Cannot create TiltReading")); + + qmlRegisterType <QmlSensorGesture >(package, major, minor, "SensorGesture"); } }; diff --git a/src/imports/sensors/sensors.pro b/src/imports/sensors/sensors.pro index 210ceac..7636201 100644 --- a/src/imports/sensors/sensors.pro +++ b/src/imports/sensors/sensors.pro @@ -1,7 +1,7 @@ CXX_MODULE = sensors TARGET = declarative_sensors TARGETPATH = QtSensors -IMPORT_VERSION = 5.0 # Doesn't matter, as long as it's a valid version?! +IMPORT_VERSION = 5.1 # Doesn't matter, as long as it's a valid version?! QT += qml sensors sensors-private |