Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qdeclarativeposition_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 Jolla Ltd.
2// Copyright (C) 2016 The Qt Company Ltd.
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4// Qt-Security score:significant reason:default
5
6#ifndef QDECLARATIVEPOSITION_H
7#define QDECLARATIVEPOSITION_H
8
9//
10// W A R N I N G
11// -------------
12//
13// This file is not part of the Qt API. It exists purely as an
14// implementation detail. This header file may change from version to
15// version without notice, or even be removed.
16//
17// We mean it.
18//
19
20#include <QtPositioningQuick/private/qpositioningquickglobal_p.h>
21#include <QtPositioning/QGeoPositionInfo>
22#include <QtCore/QObject>
23#include <QtCore/QProperty>
24#include <QtCore/QDateTime>
25#include <QtQml/qqml.h>
26
28
30{
31 Q_OBJECT
32 QML_NAMED_ELEMENT(Position)
33 QML_ADDED_IN_VERSION(5, 0)
34
35 Q_PROPERTY(bool latitudeValid READ isLatitudeValid BINDABLE bindableLatitudeValid)
36 Q_PROPERTY(bool longitudeValid READ isLongitudeValid BINDABLE bindableLongitudeValid)
37 Q_PROPERTY(bool altitudeValid READ isAltitudeValid BINDABLE bindableAltitudeValid)
38 Q_PROPERTY(QGeoCoordinate coordinate READ coordinate BINDABLE bindableCoordinate)
39 Q_PROPERTY(QDateTime timestamp READ timestamp BINDABLE bindableTimestamp)
40 Q_PROPERTY(double speed READ speed BINDABLE bindableSpeed)
41 Q_PROPERTY(bool speedValid READ isSpeedValid BINDABLE bindableSpeedValid)
42 Q_PROPERTY(qreal horizontalAccuracy READ horizontalAccuracy BINDABLE bindableHorizontalAccuracy)
43 Q_PROPERTY(qreal verticalAccuracy READ verticalAccuracy BINDABLE binableVerticalAccuracy)
44 Q_PROPERTY(bool horizontalAccuracyValid READ isHorizontalAccuracyValid BINDABLE
45 bindableHorizontalAccuracyValid)
46 Q_PROPERTY(bool verticalAccuracyValid READ isVerticalAccuracyValid BINDABLE
47 bindableVerticalAccuracyValid)
48
49 Q_PROPERTY(bool directionValid READ isDirectionValid BINDABLE bindableDirectionValid
50 REVISION(5, 1))
51 Q_PROPERTY(double direction READ direction BINDABLE bindableDirection REVISION(5, 1))
52 Q_PROPERTY(bool verticalSpeedValid READ isVerticalSpeedValid BINDABLE bindableVerticalSpeedValid
53 REVISION(5, 1))
54 Q_PROPERTY(double verticalSpeed READ verticalSpeed BINDABLE bindableVerticalSpeed
55 REVISION(5, 1))
56
57 Q_PROPERTY(double magneticVariation READ magneticVariation BINDABLE bindableMagneticVariation
58 REVISION(5, 2))
59 Q_PROPERTY(bool magneticVariationValid READ isMagneticVariationValid BINDABLE
60 bindableMagneticVariationValid REVISION(5, 2))
61
62 Q_PROPERTY(double directionAccuracy READ directionAccuracy BINDABLE bindableDirectionAccuracy
63 REVISION(6, 3))
64 Q_PROPERTY(bool directionAccuracyValid READ isDirectionAccuracyValid BINDABLE
65 bindableDirectionAccuracyValid REVISION(6, 3))
66
67public:
68 explicit QDeclarativePosition(QObject *parent = 0);
69 ~QDeclarativePosition();
70
71 bool isLatitudeValid() const;
72 bool isLongitudeValid() const;
73 bool isAltitudeValid() const;
74 QDateTime timestamp() const;
75 double speed() const;
76 bool isSpeedValid() const;
77 QGeoCoordinate coordinate() const;
78 bool isHorizontalAccuracyValid() const;
79 qreal horizontalAccuracy() const;
80 bool isVerticalAccuracyValid() const;
81 qreal verticalAccuracy() const;
82
83 bool isDirectionValid() const;
84 double direction() const;
85
86 bool isVerticalSpeedValid() const;
87 double verticalSpeed() const;
88
89 bool isMagneticVariationValid() const;
90 double magneticVariation() const;
91
92 void setPosition(const QGeoPositionInfo &info);
93 const QGeoPositionInfo &position() const;
94
95 bool isDirectionAccuracyValid() const;
96 double directionAccuracy() const;
97
98 QBindable<bool> bindableLatitudeValid() const;
99 QBindable<bool> bindableLongitudeValid() const;
100 QBindable<bool> bindableAltitudeValid() const;
101 QBindable<QGeoCoordinate> bindableCoordinate() const;
102 QBindable<QDateTime> bindableTimestamp() const;
103 QBindable<double> bindableSpeed() const;
104 QBindable<bool> bindableSpeedValid() const;
105 QBindable<qreal> bindableHorizontalAccuracy() const;
106 QBindable<qreal> binableVerticalAccuracy() const;
107 QBindable<bool> bindableHorizontalAccuracyValid() const;
108 QBindable<bool> bindableVerticalAccuracyValid() const;
109 QBindable<bool> bindableDirectionValid() const;
110 QBindable<double> bindableDirection() const;
111 QBindable<bool> bindableVerticalSpeedValid() const;
112 QBindable<double> bindableVerticalSpeed() const;
113 QBindable<double> bindableMagneticVariation() const;
114 QBindable<bool> bindableMagneticVariationValid() const;
115 QBindable<double> bindableDirectionAccuracy() const;
116 QBindable<bool> bindableDirectionAccuracyValid() const;
117
118private:
119 bool isLatitudeValidActualCalculation() const;
120 bool isLongitudeValidActualCalculation() const;
121 bool isAltitudeValidActualCalculation() const;
122 QGeoCoordinate coordinateActualCalculation() const;
123 QDateTime timestampActualCalculation() const;
124 double speedActualCalculation() const;
125 bool isSpeedValidActualCalculation() const;
126 qreal horizontalAccuracyActualCalculation() const;
127 qreal verticalAccuracyActualCalculation() const;
128 bool isHorizontalAccuracyValidActualCalculation() const;
129 bool isVerticalAccuracyValidActualCalculation() const;
130 bool isDirectionValidActualCalculation() const;
131 double directionActualCalculation() const;
132 bool isVerticalSpeedValidActualCalculation() const;
133 double verticalSpeedActualCalculation() const;
134 double magneticVariationActualCalculation() const;
135 bool isMagneticVariationValidActualCalculation() const;
136 double directionAccuracyActualCalculation() const;
137 bool isDirectionAccuracyValidActualCalculation() const;
138
139 QGeoPositionInfo m_info;
140
141 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedLatitudeValid,
142 &QDeclarativePosition::isLatitudeValidActualCalculation)
143 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedLongitudeValid,
144 &QDeclarativePosition::isLongitudeValidActualCalculation)
145 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedAltitudeValid,
146 &QDeclarativePosition::isAltitudeValidActualCalculation)
147 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, QGeoCoordinate, m_computedCoordinate,
148 &QDeclarativePosition::coordinateActualCalculation)
149 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, QDateTime, m_computedTimestamp,
150 &QDeclarativePosition::timestampActualCalculation)
151 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedSpeed,
152 &QDeclarativePosition::speedActualCalculation)
153 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedSpeedValid,
154 &QDeclarativePosition::isSpeedValidActualCalculation)
155 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, qreal, m_computedHorizontalAccuracy,
156 &QDeclarativePosition::horizontalAccuracyActualCalculation)
157 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, qreal, m_computedVerticalAccuracy,
158 &QDeclarativePosition::verticalAccuracyActualCalculation)
159 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedHorizontalAccuracyValid,
160 &QDeclarativePosition::isHorizontalAccuracyValidActualCalculation)
161 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedVerticalAccuracyValid,
162 &QDeclarativePosition::isVerticalAccuracyValidActualCalculation)
163 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedDirectionValid,
164 &QDeclarativePosition::isDirectionValidActualCalculation)
165 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedDirection,
166 &QDeclarativePosition::directionActualCalculation)
167 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedVerticalSpeedValid,
168 &QDeclarativePosition::isVerticalSpeedValidActualCalculation)
169 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedVerticalSpeed,
170 &QDeclarativePosition::verticalSpeedActualCalculation)
171 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedMagneticVariation,
172 &QDeclarativePosition::magneticVariationActualCalculation)
173 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedMagneticVariationValid,
174 &QDeclarativePosition::isMagneticVariationValidActualCalculation)
175 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, double, m_computedDirectionAccuracy,
176 &QDeclarativePosition::directionAccuracyActualCalculation)
177 Q_OBJECT_COMPUTED_PROPERTY(QDeclarativePosition, bool, m_computedDirectionAccuracyValid,
178 &QDeclarativePosition::isDirectionAccuracyValidActualCalculation)
179};
180
181QT_END_NAMESPACE
182
183QML_DECLARE_TYPE(QDeclarativePosition)
184
185#endif
Combined button and popup list for selecting options.
bool equalOrNaN(qreal a, qreal b)
bool exclusiveNaN(qreal a, qreal b)