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
qgeopositioninfosource.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QGEOPOSITIONINFOSOURCE_H
6#define QGEOPOSITIONINFOSOURCE_H
7
8#include <QtPositioning/QGeoPositionInfo>
9
10#include <QtCore/QObject>
11
12QT_BEGIN_NAMESPACE
13
14class QGeoPositionInfoSourcePrivate;
15class Q_POSITIONING_EXPORT QGeoPositionInfoSource : public QObject
16{
17 Q_OBJECT
18 Q_PROPERTY(int updateInterval READ updateInterval WRITE setUpdateInterval BINDABLE
19 bindableUpdateInterval)
20 Q_PROPERTY(int minimumUpdateInterval READ minimumUpdateInterval)
21 Q_PROPERTY(QString sourceName READ sourceName)
22 Q_PROPERTY(PositioningMethods preferredPositioningMethods READ preferredPositioningMethods WRITE
23 setPreferredPositioningMethods BINDABLE bindablePreferredPositioningMethods)
24
25public:
26 enum Error {
27 AccessError = 0,
28 ClosedError = 1,
29 UnknownSourceError = 2,
30 NoError = 3,
31 UpdateTimeoutError = 4
32 };
33 Q_ENUM(Error)
35 enum PositioningMethod {
36 NoPositioningMethods = 0x00000000,
37 SatellitePositioningMethods = 0x000000ff,
38 NonSatellitePositioningMethods = 0xffffff00,
39 AllPositioningMethods = 0xffffffff
40 };
41 Q_DECLARE_FLAGS(PositioningMethods, PositioningMethod)
42
43 explicit QGeoPositionInfoSource(QObject *parent);
44 virtual ~QGeoPositionInfoSource();
45
46 virtual void setUpdateInterval(int msec);
47 int updateInterval() const;
48 QBindable<int> bindableUpdateInterval();
49
50 virtual void setPreferredPositioningMethods(PositioningMethods methods);
51 PositioningMethods preferredPositioningMethods() const;
52 QBindable<PositioningMethods> bindablePreferredPositioningMethods();
54 virtual QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const = 0;
56 virtual PositioningMethods supportedPositioningMethods() const = 0;
57 virtual int minimumUpdateInterval() const = 0;
58
59 QString sourceName() const;
60
61 virtual bool setBackendProperty(const QString &name, const QVariant &value);
62 virtual QVariant backendProperty(const QString &name) const;
63
64 static QGeoPositionInfoSource *createDefaultSource(QObject *parent);
65 static QGeoPositionInfoSource *createDefaultSource(const QVariantMap &parameters, QObject *parent);
66 static QGeoPositionInfoSource *createSource(const QString &sourceName, QObject *parent);
67 static QGeoPositionInfoSource *createSource(const QString &sourceName, const QVariantMap &parameters, QObject *parent);
68 static QStringList availableSources();
69 virtual Error error() const = 0;
70
71public Q_SLOTS:
72 virtual void startUpdates() = 0;
73 virtual void stopUpdates() = 0;
75 virtual void requestUpdate(int timeout = 0) = 0;
76
77Q_SIGNALS:
78 void positionUpdated(const QGeoPositionInfo &update);
79 void errorOccurred(QGeoPositionInfoSource::Error);
80 void supportedPositioningMethodsChanged();
81
82protected:
83 explicit QGeoPositionInfoSource(QGeoPositionInfoSourcePrivate &dd, QObject *parent);
84
85private:
86 Q_DISABLE_COPY(QGeoPositionInfoSource)
87 Q_DECLARE_PRIVATE(QGeoPositionInfoSource)
88};
89
90Q_DECLARE_OPERATORS_FOR_FLAGS(QGeoPositionInfoSource::PositioningMethods)
91
92QT_END_NAMESPACE
93
94#endif
\inmodule QtPositioning
#define MINIMUM_UPDATE_INTERVAL