From 4306cfe37696bcda7f371a472d70d81357986c6e Mon Sep 17 00:00:00 2001 From: Ivan Solovev Date: Fri, 26 Mar 2021 17:16:40 +0100 Subject: QGeoSatelliteInfoSource: add property bindings Task-number: QTBUG-89874 Change-Id: I390119d8f25d5523b879ac0c7eecd32cb04481d8 Reviewed-by: Juha Vuolle Reviewed-by: Alex Blasche --- src/positioning/qgeosatelliteinfosource.cpp | 10 +++++++--- src/positioning/qgeosatelliteinfosource.h | 5 ++++- src/positioning/qgeosatelliteinfosource_p.h | 2 +- tests/auto/qgeosatelliteinfosource/CMakeLists.txt | 4 ++-- .../qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp | 13 +++++++++---- .../qgeosatelliteinfosource/testqgeosatelliteinfosource_p.h | 5 ++++- .../generic_realtime/CMakeLists.txt | 3 ++- .../generic_simulation/CMakeLists.txt | 3 ++- 8 files changed, 31 insertions(+), 14 deletions(-) diff --git a/src/positioning/qgeosatelliteinfosource.cpp b/src/positioning/qgeosatelliteinfosource.cpp index 9e80a1d2..2099dd9f 100644 --- a/src/positioning/qgeosatelliteinfosource.cpp +++ b/src/positioning/qgeosatelliteinfosource.cpp @@ -97,8 +97,6 @@ QGeoSatelliteInfoSourcePrivate::~QGeoSatelliteInfoSourcePrivate() QGeoSatelliteInfoSource::QGeoSatelliteInfoSource(QObject *parent) : QObject(*new QGeoSatelliteInfoSourcePrivate, parent) { - Q_D(QGeoSatelliteInfoSource); - d->interval = 0; } QGeoSatelliteInfoSource::QGeoSatelliteInfoSource(QGeoSatelliteInfoSourcePrivate &dd, QObject *parent) @@ -158,7 +156,13 @@ void QGeoSatelliteInfoSource::setUpdateInterval(int msec) int QGeoSatelliteInfoSource::updateInterval() const { Q_D(const QGeoSatelliteInfoSource); - return d->interval; + return d->interval.value(); +} + +QBindable QGeoSatelliteInfoSource::bindableUpdateInterval() +{ + Q_D(QGeoSatelliteInfoSource); + return QBindable(&d->interval); } /*! diff --git a/src/positioning/qgeosatelliteinfosource.h b/src/positioning/qgeosatelliteinfosource.h index 4e5d62ad..9d6603bb 100644 --- a/src/positioning/qgeosatelliteinfosource.h +++ b/src/positioning/qgeosatelliteinfosource.h @@ -50,7 +50,8 @@ class QGeoSatelliteInfoSourcePrivate; class Q_POSITIONING_EXPORT QGeoSatelliteInfoSource : public QObject { Q_OBJECT - Q_PROPERTY(int updateInterval READ updateInterval WRITE setUpdateInterval) + Q_PROPERTY(int updateInterval READ updateInterval WRITE setUpdateInterval BINDABLE + bindableUpdateInterval) Q_PROPERTY(int minimumUpdateInterval READ minimumUpdateInterval) public: @@ -76,6 +77,8 @@ public: virtual void setUpdateInterval(int msec); int updateInterval() const; + QBindable bindableUpdateInterval(); + virtual int minimumUpdateInterval() const = 0; virtual Error error() const = 0; diff --git a/src/positioning/qgeosatelliteinfosource_p.h b/src/positioning/qgeosatelliteinfosource_p.h index cfad6edc..48eb6be1 100644 --- a/src/positioning/qgeosatelliteinfosource_p.h +++ b/src/positioning/qgeosatelliteinfosource_p.h @@ -64,7 +64,7 @@ public: static QGeoSatelliteInfoSource *createSourceReal(const QJsonObject &meta, const QVariantMap ¶meters, QObject *parent); - int interval; + Q_OBJECT_BINDABLE_PROPERTY_WITH_ARGS(QGeoSatelliteInfoSourcePrivate, int, interval, 0) QString providerName; }; diff --git a/tests/auto/qgeosatelliteinfosource/CMakeLists.txt b/tests/auto/qgeosatelliteinfosource/CMakeLists.txt index 95cbbd1b..3e2c64fb 100644 --- a/tests/auto/qgeosatelliteinfosource/CMakeLists.txt +++ b/tests/auto/qgeosatelliteinfosource/CMakeLists.txt @@ -9,10 +9,10 @@ qt_internal_add_test(tst_qgeosatelliteinfosource ../utils/qlocationtestutils.cpp ../utils/qlocationtestutils_p.h testqgeosatelliteinfosource.cpp testqgeosatelliteinfosource_p.h tst_qgeosatelliteinfosource.cpp - PUBLIC_LIBRARIES + LIBRARIES Qt::Core Qt::Positioning - Qt::Test + Qt::TestPrivate ) #### Keys ignored in scope 1:.:.:qgeosatelliteinfosource.pro:: diff --git a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp index 91741dae..2fc35d6a 100644 --- a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp +++ b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp @@ -1,4 +1,4 @@ -/*********************f******************************************************* +/***************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ @@ -26,9 +26,6 @@ ** ****************************************************************************/ -//TESTED_COMPONENT=src/location - -#include #include #include #include @@ -758,4 +755,12 @@ void TestQGeoSatelliteInfoSource::removeSlotForSatellitesInViewUpdated() QTRY_VERIFY_WITH_TIMEOUT((m_testSlot2Called == true), 7000); } +void TestQGeoSatelliteInfoSource::bindings() +{ + CHECK_SOURCE_VALID; + + QTestPrivate::testReadWritePropertyBasics(*m_source, 1000, 2000, + "updateInterval"); +} + #include "testqgeosatelliteinfosource.moc" diff --git a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource_p.h b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource_p.h index cf15f7c0..48b45536 100644 --- a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource_p.h +++ b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource_p.h @@ -29,8 +29,9 @@ #ifndef TESTQGEOSATELLITEINFOSOURCE_H #define TESTQGEOSATELLITEINFOSOURCE_H -#include #include +#include +#include QT_BEGIN_NAMESPACE class QGeoSatelliteInfoSource; @@ -105,6 +106,8 @@ private slots: void removeSlotForSatellitesInUseUpdated(); void removeSlotForSatellitesInViewUpdated(); + void bindings(); + private: QGeoSatelliteInfoSource *m_source; bool m_testingDefaultSource; diff --git a/tests/auto/qnmeasatelliteinfosource/generic_realtime/CMakeLists.txt b/tests/auto/qnmeasatelliteinfosource/generic_realtime/CMakeLists.txt index 87ddc2f0..f465bc17 100644 --- a/tests/auto/qnmeasatelliteinfosource/generic_realtime/CMakeLists.txt +++ b/tests/auto/qnmeasatelliteinfosource/generic_realtime/CMakeLists.txt @@ -9,9 +9,10 @@ qt_internal_add_test(tst_nmeasatelliteinfosource_generic_rt QT_DISABLE_DEPRECATED_BEFORE=0 INCLUDE_DIRECTORIES .. - PUBLIC_LIBRARIES + LIBRARIES Qt::Core Qt::Network Qt::Positioning + Qt::TestPrivate ) # special case end diff --git a/tests/auto/qnmeasatelliteinfosource/generic_simulation/CMakeLists.txt b/tests/auto/qnmeasatelliteinfosource/generic_simulation/CMakeLists.txt index 64c15ecb..d86d5066 100644 --- a/tests/auto/qnmeasatelliteinfosource/generic_simulation/CMakeLists.txt +++ b/tests/auto/qnmeasatelliteinfosource/generic_simulation/CMakeLists.txt @@ -9,9 +9,10 @@ qt_internal_add_test(tst_nmeasatelliteinfosource_generic_sim QT_DISABLE_DEPRECATED_BEFORE=0 INCLUDE_DIRECTORIES .. - PUBLIC_LIBRARIES + LIBRARIES Qt::Core Qt::Network Qt::Positioning + Qt::TestPrivate ) # special case end -- cgit v1.2.1