Revision control
++ // Copyright (C) 2016 Jolla Ltd.
++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
++ // Qt-Security score:significant reason:default
++
++ #ifndef QDECLARATIVEPOSITION_H
++ #define QDECLARATIVEPOSITION_H
++
++ //
++ // W A R N I N G
++ // -------------
++ //
++ // This file is not part of the Qt API. It exists purely as an
++ // implementation detail. This header file may change from version to
++ // version without notice, or even be removed.
++ //
++ // We mean it.
++ //
++
++ #include <QtPositioningQuick/private/qpositioningquickglobal_p.h>
++ #include <QtPositioning/QGeoPositionInfo>
++ #include <QtCore/QObject>
++ #include <QtCore/QProperty>
++ #include <QtCore/QDateTime>
++ #include <QtQml/qqml.h>
++
++ QT_BEGIN_NAMESPACE
++
++ class Q_POSITIONINGQUICK_EXPORT QDeclarativePosition : public QObject
++ {
++ Q_OBJECT
++ QML_NAMED_ELEMENT(Position)
++ QML_ADDED_IN_VERSION(5, 0)
++
++ Q_PROPERTY(bool latitudeValid READ isLatitudeValid BINDABLE bindableLatitudeValid)
++ Q_PROPERTY(bool longitudeValid READ isLongitudeValid BINDABLE bindableLongitudeValid)
++ Q_PROPERTY(bool altitudeValid READ isAltitudeValid BINDABLE bindableAltitudeValid)
++ Q_PROPERTY(QGeoCoordinate coordinate READ coordinate BINDABLE bindableCoordinate)
++ Q_PROPERTY(QDateTime timestamp READ timestamp BINDABLE bindableTimestamp)
++ Q_PROPERTY(double speed READ speed BINDABLE bindableSpeed)
++ Q_PROPERTY(bool speedValid READ isSpeedValid BINDABLE bindableSpeedValid)
++ Q_PROPERTY(qreal horizontalAccuracy READ horizontalAccuracy BINDABLE bindableHorizontalAccuracy)
++ Q_PROPERTY(qreal verticalAccuracy READ verticalAccuracy BINDABLE binableVerticalAccuracy)
++ Q_PROPERTY(bool horizontalAccuracyValid READ isHorizontalAccuracyValid BINDABLE
++ bindableHorizontalAccuracyValid)
++ Q_PROPERTY(bool verticalAccuracyValid READ isVerticalAccuracyValid BINDABLE
++ bindableVerticalAccuracyValid)
++
++ Q_PROPERTY(bool directionValid READ isDirectionValid BINDABLE bindableDirectionValid
++ REVISION(5, 1))
++ Q_PROPERTY(double direction READ direction BINDABLE bindableDirection REVISION(5, 1))
++ Q_PROPERTY(bool verticalSpeedValid READ isVerticalSpeedValid BINDABLE bindableVerticalSpeedValid
++ REVISION(5, 1))
++ Q_PROPERTY(double verticalSpeed READ verticalSpeed BINDABLE bindableVerticalSpeed
++ REVISION(5, 1))
++
++ Q_PROPERTY(double magneticVariation READ magneticVariation BINDABLE bindableMagneticVariation
++ REVISION(5, 2))
++ Q_PROPERTY(bool magneticVariationValid READ isMagneticVariationValid BINDABLE
++ bindableMagneticVariationValid REVISION(5, 2))
++
++ Q_PROPERTY(double directionAccuracy READ directionAccuracy BINDABLE bindableDirectionAccuracy
++ REVISION(6, 3))
++ Q_PROPERTY(bool directionAccuracyValid READ isDirectionAccuracyValid BINDABLE
++ bindableDirectionAccuracyValid REVISION(6, 3))
++
++ public:
++ explicit QDeclarativePosition(QObject *parent = 0);
++ ~QDeclarativePosition();
++
++ bool isLatitudeValid() const;
++ bool isLongitudeValid() const;
++ bool isAltitudeValid() const;
++ QDateTime timestamp() const;
++ double speed() const;
++ bool isSpeedValid() const;
++ QGeoCoordinate coordinate() const;
++ bool isHorizontalAccuracyValid() const;
++ qreal horizontalAccuracy() const;
++ bool isVerticalAccuracyValid() const;
++ qreal verticalAccuracy() const;
++
++ bool isDirectionValid() const;
++ double direction() const;
++
++ bool isVerticalSpeedValid() const;
++ double verticalSpeed() const;
++
++ bool isMagneticVariationValid() const;
++ double magneticVariation() const;
++
++ void setPosition(const QGeoPositionInfo &info);
++ const QGeoPositionInfo &position() const;
++
++ bool isDirectionAccuracyValid() const;
++ double directionAccuracy() const;
++
++ QBindable<bool> bindableLatitudeValid() const;
++ QBindable<bool> bindableLongitudeValid() const;
++ QBindable<bool> bindableAltitudeValid() const;
++ QBindable<QGeoCoordinate> bindableCoordinate() const;
++ QBindable<QDateTime> bindableTimestamp() const;
++ QBindable<double> bindableSpeed() const;
++ QBindable<bool> bindableSpeedValid() const;
++ QBindable<qreal> bindableHorizontalAccuracy() const;
++ QBindable<qreal> binableVerticalAccuracy() const;
++ QBindable<bool> bindableHorizontalAccuracyValid() const;
++ QBindable<bool> bindableVerticalAccuracyValid() const;
++ QBindable<bool> bindableDirectionValid() const;
++ QBindable<double> bindableDirection() const;
++ QBindable<bool> bindableVerticalSpeedValid() const;
++ QBindable<double> bindableVerticalSpeed() const;
++ QBindable<double> bindableMagneticVariation() const;
++ QBindable<bool> bindableMagneticVariationValid() const;
++ QBindable<double> bindableDirectionAccuracy() const;
++ QBindable<bool> bindableDirectionAccuracyValid() const;
++
++ private:
++ bool isLatitudeValidActualCalculation() const;
++ bool isLongitudeValidActualCalculation() const;
++ bool isAltitudeValidActualCalculation() const;
++ QGeoCoordinate coordinateActualCalculation() const;
++ QDateTime timestampActualCalculation() const;
++ double speedActualCalculation() const;
++ bool isSpeedValidActualCalculation() const;
++ qreal horizontalAccuracyActualCalculation() const;
++ qreal verticalAccuracyActualCalculation() const;
++ bool isHorizontalAccuracyValidActualCalculation() const;
++ bool isVerticalAccuracyValidActualCalculation() const;
++ bool isDirectionValidActualCalculation() const;
++ double directionActualCalculation() const;
++ bool isVerticalSpeedValidActualCalculation() const;
++ double verticalSpeedActualCalculation() const;
++ double magneticVariationActualCalculation() const;
++ bool isMagneticVariationValidActualCalculation() const;
++ double directionAccuracyActualCalculation() const;
++ bool isDirectionAccuracyValidActualCalculation() const;
++
++ QGeoPositionInfo m_info;
++
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedLatitudeValid,
++ &QDeclarativePosition::isLatitudeValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedLongitudeValid,
++ &QDeclarativePosition::isLongitudeValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedAltitudeValid,
++ &QDeclarativePosition::isAltitudeValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, QGeoCoordinate, m_computedCoordinate,
++ &QDeclarativePosition::coordinateActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, QDateTime, m_computedTimestamp,
++ &QDeclarativePosition::timestampActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedSpeed,
++ &QDeclarativePosition::speedActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedSpeedValid,
++ &QDeclarativePosition::isSpeedValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, qreal, m_computedHorizontalAccuracy,
++ &QDeclarativePosition::horizontalAccuracyActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, qreal, m_computedVerticalAccuracy,
++ &QDeclarativePosition::verticalAccuracyActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedHorizontalAccuracyValid,
++ &QDeclarativePosition::isHorizontalAccuracyValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedVerticalAccuracyValid,
++ &QDeclarativePosition::isVerticalAccuracyValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedDirectionValid,
++ &QDeclarativePosition::isDirectionValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedDirection,
++ &QDeclarativePosition::directionActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedVerticalSpeedValid,
++ &QDeclarativePosition::isVerticalSpeedValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedVerticalSpeed,
++ &QDeclarativePosition::verticalSpeedActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedMagneticVariation,
++ &QDeclarativePosition::magneticVariationActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedMagneticVariationValid,
++ &QDeclarativePosition::isMagneticVariationValidActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedDirectionAccuracy,
++ &QDeclarativePosition::directionAccuracyActualCalculation)
++ Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedDirectionAccuracyValid,
++ &QDeclarativePosition::isDirectionAccuracyValidActualCalculation)
++ };
++
++ QT_END_NAMESPACE
++
++ QML_DECLARE_TYPE(QDeclarativePosition)
++
++ #endif