diff options
author | Lorn Potter <lorn.potter@canonical.com> | 2016-11-09 05:27:16 +1000 |
---|---|---|
committer | Lorn Potter <lorn.potter@canonical.com> | 2016-11-21 04:27:28 +0000 |
commit | 26446d7dc33c44e2f84fe95381f02aca87c1a537 (patch) | |
tree | 1e60542cc39f27f61d44369a2fd7c174de1e4ee5 /src/imports | |
parent | 53a414e33ce45f28b89217678597416b681128d4 (diff) |
[ChangeLog][QtSensors][QSensor] Add new sensor: lidsensor
Change-Id: I57123eed34ee4618f1cba643c2ce49c8c621a6cd
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/sensors/qmllidsensor.cpp | 149 | ||||
-rw-r--r-- | src/imports/sensors/qmllidsensor.h | 88 | ||||
-rw-r--r-- | src/imports/sensors/sensors.cpp | 11 | ||||
-rw-r--r-- | src/imports/sensors/sensors.pro | 6 |
4 files changed, 249 insertions, 5 deletions
diff --git a/src/imports/sensors/qmllidsensor.cpp b/src/imports/sensors/qmllidsensor.cpp new file mode 100644 index 00000000..e6dfa4cb --- /dev/null +++ b/src/imports/sensors/qmllidsensor.cpp @@ -0,0 +1,149 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Canonical, Ltd +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtSensors module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "qmllidsensor.h" +#include <QtSensors/QLidSensor> + +/*! + \qmltype LidSensor + \instantiates QmlLidSensor + \ingroup qml-sensors_type + \inqmlmodule QtSensors + \since QtSensors 5.9 + \inherits Sensor + \brief The LidSensor element reports on whether a device is closed. + + The LidSensor element reports on whether a device is closed. + + This element wraps the QLidSensor class. Please see the documentation for + QLidSensor for details. + + \sa LidReading +*/ + +QmlLidSensor::QmlLidSensor(QObject *parent) + : QmlSensor(parent) + , m_sensor(new QLidSensor(this)) +{ +} + +QmlLidSensor::~QmlLidSensor() +{ +} + +QmlSensorReading *QmlLidSensor::createReading() const +{ + return new QmlLidReading(m_sensor); +} + +QSensor *QmlLidSensor::sensor() const +{ + return m_sensor; +} + +/*! + \qmltype LidReading + \instantiates QmlLidReading + \ingroup qml-sensors_reading + \inqmlmodule QtSensors + \since QtSensors 5.9 + \inherits SensorReading + \brief The LidReading element holds the most recent LidSensor reading. + + The LidReading element holds the most recent LidSensor reading. + + This element wraps the QLidReading class. Please see the documentation for + QLidReading for details. + + This element cannot be directly created. +*/ + +QmlLidReading::QmlLidReading(QLidSensor *sensor) + : QmlSensorReading(sensor) + , m_sensor(sensor) + , m_backClosed(false) + , m_frontClosed(true) +{ +} + +QmlLidReading::~QmlLidReading() +{ +} + +/*! + \qmlproperty qreal LidReading::backLidClosed + This property holds whether the back lid is closed. + + Please see QLidReading::backLidClosed for information about this property. +*/ + +bool QmlLidReading::backLidChanged() const +{ + return m_backClosed; +} + +/*! + \qmlproperty qreal LidReading::frontLidClosed + This property holds whether the front lid is closed. + + Please see QLidReading::frontLidClosed for information about this property. +*/ + +bool QmlLidReading::frontLidClosed() const +{ + return m_frontClosed; +} + +QSensorReading *QmlLidReading::reading() const +{ + return m_sensor->reading(); +} + +void QmlLidReading::readingUpdate() +{ + const bool backClosed = m_sensor->reading()->backLidClosed(); + if (m_backClosed != backClosed) { + m_backClosed = backClosed; + Q_EMIT backLidChanged(m_backClosed); + } + const bool frontClosed = m_sensor->reading()->frontLidClosed(); + if (m_frontClosed != frontClosed) { + m_frontClosed = frontClosed; + Q_EMIT frontLidChanged(m_frontClosed); + } +} diff --git a/src/imports/sensors/qmllidsensor.h b/src/imports/sensors/qmllidsensor.h new file mode 100644 index 00000000..caa44ef4 --- /dev/null +++ b/src/imports/sensors/qmllidsensor.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Canonical, Ltd +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtSensors module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef QMLLIDSENSOR_H +#define QMLLIDSENSOR_H + +#include "qmlsensor.h" + +QT_BEGIN_NAMESPACE + +class QLidSensor; + +class QmlLidSensor : public QmlSensor +{ + Q_OBJECT +public: + explicit QmlLidSensor(QObject *parent = 0); + ~QmlLidSensor(); + +private: + QSensor *sensor() const Q_DECL_OVERRIDE; + QmlSensorReading *createReading() const Q_DECL_OVERRIDE; + + QLidSensor *m_sensor; +}; + +class QmlLidReading : public QmlSensorReading +{ + Q_OBJECT + Q_PROPERTY(bool backLidChanged READ backLidChanged NOTIFY backLidChanged) + Q_PROPERTY(bool frontLidClosed READ frontLidClosed NOTIFY frontLidChanged) +public: + explicit QmlLidReading(QLidSensor *sensor); + ~QmlLidReading(); + + bool backLidChanged() const; + bool frontLidClosed() const; + +Q_SIGNALS: + void backLidChanged(bool closed); + bool frontLidChanged(bool closed); + +private: + QSensorReading *reading() const Q_DECL_OVERRIDE; + void readingUpdate() Q_DECL_OVERRIDE; + + QLidSensor *m_sensor; + bool m_backClosed; + bool m_frontClosed; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/imports/sensors/sensors.cpp b/src/imports/sensors/sensors.cpp index d1f5bb48..fa8c8e29 100644 --- a/src/imports/sensors/sensors.cpp +++ b/src/imports/sensors/sensors.cpp @@ -55,6 +55,7 @@ #include <QtSensors/qgyroscope.h> #include <QtSensors/qirproximitysensor.h> #include <QtSensors/qtiltsensor.h> +#include <QtSensors/qlidsensor.h> #include "qmlsensorglobal.h" #include "qmlsensor.h" @@ -75,6 +76,7 @@ #include "qmltapsensor.h" #include "qmltiltsensor.h" #include "qmlsensorgesture.h" +#include "qmllidsensor.h" static void initResources() { @@ -222,11 +224,14 @@ public: qmlRegisterType <QmlSensorGesture >(package, major, minor, "SensorGesture"); - // Register the 5.7 interfaces - // No API changes, just reintroduce existing interfaces from 5.2 - // Implicitly registers 5.3 - 5.6 too minor = 7; qmlRegisterType <QmlAltimeter >(package, major, minor, "Altimeter"); + // Register the 5.9 interfaces + // No API changes, just reintroduce existing interfaces from 5.2 + // Implicitly registers 5.3 - 5.7 too + minor = 9; + qmlRegisterType <QmlLidSensor >(package, major, minor, "LidSensor"); + qmlRegisterUncreatableType<QmlLidReading >(package, major, minor, "LidReading", QLatin1String("Cannot create LidReading")); } }; diff --git a/src/imports/sensors/sensors.pro b/src/imports/sensors/sensors.pro index 60cb8b74..d6279168 100644 --- a/src/imports/sensors/sensors.pro +++ b/src/imports/sensors/sensors.pro @@ -22,7 +22,8 @@ HEADERS += \ qmlsensorglobal.h \ qmltiltsensor.h \ qmlsensorgesture.h \ - qmlhumiditysensor.h + qmlhumiditysensor.h \ + qmllidsensor.h SOURCES += sensors.cpp \ qmlsensor.cpp \ @@ -46,7 +47,8 @@ SOURCES += sensors.cpp \ qmlsensorglobal.cpp \ qmltiltsensor.cpp \ qmlsensorgesture.cpp \ - qmlhumiditysensor.cpp + qmlhumiditysensor.cpp \ + qmllidsensor.cpp load(qml_plugin) |