diff options
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/sensors/qmlhumiditysensor.cpp | 150 | ||||
-rw-r--r-- | src/imports/sensors/qmlhumiditysensor.h | 90 | ||||
-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 | 8 |
6 files changed, 491 insertions, 5 deletions
diff --git a/src/imports/sensors/qmlhumiditysensor.cpp b/src/imports/sensors/qmlhumiditysensor.cpp new file mode 100644 index 0000000..3b30e97 --- /dev/null +++ b/src/imports/sensors/qmlhumiditysensor.cpp @@ -0,0 +1,150 @@ +/**************************************************************************** +** +** 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 "qmlhumiditysensor.h" +#include <QtSensors/QHumiditySensor> + +/*! + \qmltype HumiditySensor + \instantiates QmlHumiditySensor + \ingroup qml-sensors_type + \inqmlmodule QtSensors + \since QtSensors 5.9 + \inherits Sensor + \brief The HumiditySensor element reports on humidity. + + The HumiditySensor element reports on humidity. + + This element wraps the QHumiditySensor class. Please see the documentation for + QHumiditySensor for details. + + \sa HumidityReading +*/ + +QmlHumiditySensor::QmlHumiditySensor(QObject *parent) + : QmlSensor(parent) + , m_sensor(new QHumiditySensor(this)) +{ +} + +QmlHumiditySensor::~QmlHumiditySensor() +{ +} + +QmlSensorReading *QmlHumiditySensor::createReading() const +{ + return new QmlHumidityReading(m_sensor); +} + +QSensor *QmlHumiditySensor::sensor() const +{ + return m_sensor; +} + +/*! + \qmltype HumidityReading + \instantiates QmlHumidityReading + \ingroup qml-sensors_reading + \inqmlmodule QtSensors + \since QtSensors 5.9 + \inherits SensorReading + \brief The HumidityReading element holds the most recent HumiditySensor reading. + + The HumidityReading element holds the most recent HumiditySensor reading. + + This element wraps the QHumidityReading class. Please see the documentation for + QHumidityReading for details. + + This element cannot be directly created. +*/ + +QmlHumidityReading::QmlHumidityReading(QHumiditySensor *sensor) + : QmlSensorReading(sensor) + , m_sensor(sensor) + , m_relativeHumidity(0) + , m_absoluteHumidity(0) +{ +} + +QmlHumidityReading::~QmlHumidityReading() +{ +} + +/*! + \qmlproperty qreal HumidityReading::relativeHumidity + This property holds the relative humidity as a percentage. + + Please see QHumidityReading::relativeHumidity for information about this property. +*/ + +qreal QmlHumidityReading::relativeHumidity() const +{ + return m_relativeHumidity; +} + +/*! + \qmlproperty qreal HumidityReading::absoluteHumidity + This property holds the absolute humidity in grams per cubic meter (g/m3). + + Please see QHumidityReading::absoluteHumidity for information about this property. +*/ + +qreal QmlHumidityReading::absoluteHumidity() const +{ + return m_absoluteHumidity; +} + +QSensorReading *QmlHumidityReading::reading() const +{ + return m_sensor->reading(); +} + +void QmlHumidityReading::readingUpdate() +{ + qreal humidity = m_sensor->reading()->relativeHumidity(); + if (m_relativeHumidity != humidity) { + m_relativeHumidity = humidity; + Q_EMIT relativeHumidityChanged(); + } + qreal abs = m_sensor->reading()->absoluteHumidity(); + if (m_absoluteHumidity != abs) { + m_absoluteHumidity = abs; + Q_EMIT absoluteHumidityChanged(); + } +} diff --git a/src/imports/sensors/qmlhumiditysensor.h b/src/imports/sensors/qmlhumiditysensor.h new file mode 100644 index 0000000..9fc54ac --- /dev/null +++ b/src/imports/sensors/qmlhumiditysensor.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** 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 QMLHUMIDITYSENSOR_H +#define QMLHUMIDITYSENSOR_H + +#include "qmlsensor.h" + +QT_BEGIN_NAMESPACE + +class QHumiditySensor; + +class QmlHumiditySensor : public QmlSensor +{ + Q_OBJECT + +public: + explicit QmlHumiditySensor(QObject *parent = Q_NULLPTR); + ~QmlHumiditySensor(); + +private: + QSensor *sensor() const Q_DECL_OVERRIDE; + QmlSensorReading *createReading() const Q_DECL_OVERRIDE; + + QHumiditySensor *m_sensor; +}; + +class QmlHumidityReading : public QmlSensorReading +{ + Q_OBJECT + Q_PROPERTY(qreal relativeHumidity READ relativeHumidity NOTIFY relativeHumidityChanged) + Q_PROPERTY(qreal absoluteHumidity READ absoluteHumidity NOTIFY absoluteHumidityChanged) +public: + explicit QmlHumidityReading(QHumiditySensor *sensor); + ~QmlHumidityReading(); + + qreal relativeHumidity() const; + qreal absoluteHumidity() const; + +Q_SIGNALS: + void relativeHumidityChanged(); + void absoluteHumidityChanged(); + +private: + QSensorReading *reading() const Q_DECL_OVERRIDE; + void readingUpdate() Q_DECL_OVERRIDE; + + QHumiditySensor *m_sensor; + qreal m_relativeHumidity; + qreal m_absoluteHumidity; +}; + +QT_END_NAMESPACE +#endif diff --git a/src/imports/sensors/qmllidsensor.cpp b/src/imports/sensors/qmllidsensor.cpp new file mode 100644 index 0000000..e6dfa4c --- /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 0000000..caa44ef --- /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 d1f5bb4..fa8c8e2 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 bf33f23..d627916 100644 --- a/src/imports/sensors/sensors.pro +++ b/src/imports/sensors/sensors.pro @@ -21,7 +21,9 @@ HEADERS += \ qmlrotationsensor.h \ qmlsensorglobal.h \ qmltiltsensor.h \ - qmlsensorgesture.h + qmlsensorgesture.h \ + qmlhumiditysensor.h \ + qmllidsensor.h SOURCES += sensors.cpp \ qmlsensor.cpp \ @@ -44,7 +46,9 @@ SOURCES += sensors.cpp \ qmlrotationsensor.cpp \ qmlsensorglobal.cpp \ qmltiltsensor.cpp \ - qmlsensorgesture.cpp + qmlsensorgesture.cpp \ + qmlhumiditysensor.cpp \ + qmllidsensor.cpp load(qml_plugin) |