diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-07-25 11:01:35 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-07-25 11:59:08 +0200 |
commit | 0a8f8f40c2fdfccc4bd1bf3c7411085ed634700e (patch) | |
tree | 05e10e315cc208aa83e6d34a262717e245330d5e /src/positioningquick/qdeclarativepositionsource_p.h | |
parent | 57d50ee43efd8e3c3e1c04f1aad3e0043e79096a (diff) | |
parent | cd84a8cac6a43cfeede4d098ed72c9bd3ce4f111 (diff) |
Merge "Merge remote-tracking branch 'origin/dev' into wip/qt6"
Diffstat (limited to 'src/positioningquick/qdeclarativepositionsource_p.h')
-rw-r--r-- | src/positioningquick/qdeclarativepositionsource_p.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/positioningquick/qdeclarativepositionsource_p.h b/src/positioningquick/qdeclarativepositionsource_p.h index c6daaae5..dff0006c 100644 --- a/src/positioningquick/qdeclarativepositionsource_p.h +++ b/src/positioningquick/qdeclarativepositionsource_p.h @@ -56,7 +56,8 @@ #include <QtCore/QObject> #include <QtNetwork/QAbstractSocket> #include <QtQml/QQmlParserStatus> -#include <QtPositioning/QGeoPositionInfoSource> +#include <QtPositioning/qgeopositioninfosource.h> +#include <QtPositioningQuick/private/qdeclarativepluginparameter_p.h> QT_BEGIN_NAMESPACE @@ -76,8 +77,10 @@ class Q_POSITIONINGQUICK_PRIVATE_EXPORT QDeclarativePositionSource : public QObj Q_PROPERTY(PositioningMethods preferredPositioningMethods READ preferredPositioningMethods WRITE setPreferredPositioningMethods NOTIFY preferredPositioningMethodsChanged) Q_PROPERTY(SourceError sourceError READ sourceError NOTIFY sourceErrorChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(QQmlListProperty<QDeclarativePluginParameter> parameters READ parameters REVISION 14) Q_ENUMS(PositioningMethod) + Q_CLASSINFO("DefaultProperty", "parameters") Q_INTERFACES(QQmlParserStatus) public: @@ -121,11 +124,16 @@ public: PositioningMethods preferredPositioningMethods() const; SourceError sourceError() const; QGeoPositionInfoSource *positionSource() const; + QQmlListProperty<QDeclarativePluginParameter> parameters(); + QVariantMap parameterMap() const; // Virtuals from QQmlParserStatus void classBegin() { } void componentComplete(); + Q_INVOKABLE bool setBackendProperty(const QString &name, QVariant value); + Q_INVOKABLE QVariant backendProperty(const QString &name) const; + public Q_SLOTS: void update(); // TODO Qt 6 change to void update(int) void start(); @@ -149,10 +157,18 @@ private Q_SLOTS: void socketConnected(); void socketError(QAbstractSocket::SocketError error); void updateTimeoutReceived(); + void onParameterInitialized(); private: void setPosition(const QGeoPositionInfo &pi); void setSource(QGeoPositionInfoSource *source); + bool parametersReady(); + void tryAttach(const QString &name, bool useFallback = true); + + static void parameter_append(QQmlListProperty<QDeclarativePluginParameter> *prop, QDeclarativePluginParameter *mapObject); + static int parameter_count(QQmlListProperty<QDeclarativePluginParameter> *prop); + static QDeclarativePluginParameter *parameter_at(QQmlListProperty<QDeclarativePluginParameter> *prop, int index); + static void parameter_clear(QQmlListProperty<QDeclarativePluginParameter> *prop); QGeoPositionInfoSource *m_positionSource; QDeclarativePosition m_position; @@ -161,10 +177,14 @@ private: QTcpSocket *m_nmeaSocket; QString m_nmeaFileName; QUrl m_nmeaSource; + QString m_providerName; bool m_active; bool m_singleUpdate; int m_updateInterval; SourceError m_sourceError; + QList<QDeclarativePluginParameter *> m_parameters; + bool m_componentComplete = false; + bool m_parametersInitialized = false; }; QT_END_NAMESPACE |