121
122
123
124
125
126
127
128
129
132
133
134
135
136
139
140
141
142
143
146
147
148
149
152
153
154
155
156bool QGeoPositionInfo::isValid()
const
158 return d->timestamp.isValid() && d->coord.isValid();
162
163
164
165
166
167
168void QGeoPositionInfo::setTimestamp(
const QDateTime ×tamp)
171 d->timestamp = timestamp;
175
176
177
178
179
180
181QDateTime QGeoPositionInfo::timestamp()
const
187
188
189
190
191void QGeoPositionInfo::setCoordinate(
const QGeoCoordinate &coordinate)
194 d->coord = coordinate;
198
199
200
201
202
203
204QGeoCoordinate QGeoPositionInfo::coordinate()
const
210
211
212
213
214void QGeoPositionInfo::setAttribute(Attribute attribute, qreal value)
217 d->doubleAttribs[attribute] = value;
221
222
223
224
225
226
227
228
229
230qreal QGeoPositionInfo::attribute(Attribute attribute)
const
232 if (d->doubleAttribs.contains(attribute))
233 return d->doubleAttribs[attribute];
238
239
240void QGeoPositionInfo::removeAttribute(Attribute attribute)
243 d->doubleAttribs.remove(attribute);
247
248
249
250bool QGeoPositionInfo::hasAttribute(Attribute attribute)
const
252 return d->doubleAttribs.contains(attribute);
256
257
258void QGeoPositionInfo::detach()
263 d =
new QGeoPositionInfoPrivate;
266bool QGeoPositionInfo::equals(
const QGeoPositionInfo &lhs,
const QGeoPositionInfo &rhs)
268 return *lhs.d == *rhs.d;
271#ifndef QT_NO_DEBUG_STREAM
272QDebug QGeoPositionInfo::debugStreaming(QDebug dbg,
const QGeoPositionInfo &info)
274 QDebugStateSaver saver(dbg);
275 dbg.nospace() <<
"QGeoPositionInfo(" << info.d->timestamp;
276 dbg.nospace() <<
", ";
277 dbg << info.d->coord;
279 QList<QGeoPositionInfo::Attribute> attribs = info.d->doubleAttribs.keys();
280 std::stable_sort(attribs.begin(), attribs.end());
281 for (
int i = 0; i < attribs.size(); ++i) {
283 switch (attribs[i]) {
284 case QGeoPositionInfo::Direction:
287 case QGeoPositionInfo::GroundSpeed:
288 dbg <<
"GroundSpeed=";
290 case QGeoPositionInfo::VerticalSpeed:
291 dbg <<
"VerticalSpeed=";
293 case QGeoPositionInfo::MagneticVariation:
294 dbg <<
"MagneticVariation=";
296 case QGeoPositionInfo::HorizontalAccuracy:
297 dbg <<
"HorizontalAccuracy=";
299 case QGeoPositionInfo::VerticalAccuracy:
300 dbg <<
"VerticalAccuracy=";
302 case QGeoPositionInfo::DirectionAccuracy:
303 dbg <<
"DirectionAccuracy=";
306 dbg << info.d->doubleAttribs[attribs[i]];
314#ifndef QT_NO_DATASTREAM
316
317
318
319
320
321
322QDataStream &QGeoPositionInfo::dataStreamOut(QDataStream &stream, QGeoPositionInfo::Attribute attr)
324 return stream << qint32(attr);
328
329
330
331
332
333
334QDataStream &QGeoPositionInfo::dataStreamIn(QDataStream &stream, QGeoPositionInfo::Attribute &attr)
338 attr =
static_cast<QGeoPositionInfo::Attribute>(a);
343
344
345
346
347
348
350QDataStream &QGeoPositionInfo::dataStreamOut(QDataStream &stream,
const QGeoPositionInfo &info)
352 stream << info.d->timestamp;
353 stream << info.d->coord;
354 stream << info.d->doubleAttribs;
359
360
361
362
363
364
365
367QDataStream &QGeoPositionInfo::dataStreamIn(QDataStream &stream, QGeoPositionInfo &info)
369 stream >> info.d->timestamp;
370 stream >> info.d->coord;
371 stream >> info.d->doubleAttribs;
376QGeoPositionInfoPrivate::QGeoPositionInfoPrivate() : QSharedData()
380QGeoPositionInfoPrivate::QGeoPositionInfoPrivate(
const QGeoPositionInfoPrivate &other)
381 : QSharedData(other),
382 timestamp(other.timestamp),
384 doubleAttribs(other.doubleAttribs)
388QGeoPositionInfoPrivate::~QGeoPositionInfoPrivate()
393bool QGeoPositionInfoPrivate::operator==(
const QGeoPositionInfoPrivate &other)
const
395 return timestamp == other.timestamp
396 && coord == other.coord
397 && doubleAttribs == other.doubleAttribs;
400QGeoPositionInfoPrivate *QGeoPositionInfoPrivate::get(
const QGeoPositionInfo &info)
402 return info.d.data();
405size_t qHash(
const QGeoPositionInfo &key, size_t seed)
noexcept
407 return qHashMulti(seed, key.d->coord);