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