summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2021-01-22 17:35:40 +0100
committerIvan Solovev <ivan.solovev@qt.io>2021-01-26 20:40:42 +0100
commita8496e8d52e261a5a9206c4963adf43f6083de9e (patch)
tree1b536d1320d43747f9e90f54b8ba6a82a327262b
parent237998e30b4180fa4de86ef89a5cb7d5e802a57d (diff)
downloadqtlocation-a8496e8d52e261a5a9206c4963adf43f6083de9e.tar.gz
QtPositioning: remove QGeoSatelliteInfoSource::requestTimeout signal
A new Error::UpdateTimeoutError enum value is introduced instead. An errorOccurred() signal with this value is used to notify about update timeouts. [ChangeLog][QtPositioning][Important Behavior Changes] Removed QGeoSatelliteInfoSource::requestTimeout() signal. Use QGeoSatelliteInfoSource::errorOccurred() with a new Error::UpdateTimeoutError value instead. Task-number: QTBUG-90491 Change-Id: I1ab8277896035234cb65a8ece9426b9fa9896f7b Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
-rw-r--r--src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp20
-rw-r--r--src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h1
-rw-r--r--src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp20
-rw-r--r--src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h2
-rw-r--r--src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp18
-rw-r--r--src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h4
-rw-r--r--src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp10
-rw-r--r--src/positioning/qgeosatelliteinfosource.cpp22
-rw-r--r--src/positioning/qgeosatelliteinfosource.h6
-rw-r--r--tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp83
10 files changed, 98 insertions, 88 deletions
diff --git a/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp b/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp
index 92ad0df4..65821bd8 100644
--- a/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp
+++ b/src/plugins/position/android/src/qgeosatelliteinfosource_android.cpp
@@ -109,8 +109,7 @@ void QGeoSatelliteInfoSourceAndroid::startUpdates()
androidClassKeyForUpdate, false, updateInterval());
if (error != QGeoSatelliteInfoSource::NoError) {
updatesRunning = false;
- m_error = error;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(error);
}
}
@@ -129,7 +128,7 @@ void QGeoSatelliteInfoSourceAndroid::requestUpdate(int timeout)
return;
if (timeout != 0 && timeout < minimumUpdateInterval()) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -148,8 +147,7 @@ void QGeoSatelliteInfoSourceAndroid::requestUpdate(int timeout)
androidClassKeyForSingleRequest, true, timeout);
if (error != QGeoSatelliteInfoSource::NoError) {
requestTimer.stop();
- m_error = error;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(error);
}
}
@@ -185,7 +183,7 @@ void QGeoSatelliteInfoSourceAndroid::requestTimeout()
const int count = m_satsInView.count();
if (!count) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -209,8 +207,14 @@ void QGeoSatelliteInfoSourceAndroid::reconfigureRunningSystem()
startUpdates();
}
+void QGeoSatelliteInfoSourceAndroid::setError(QGeoSatelliteInfoSource::Error error)
+{
+ m_error = error;
+ if (m_error != QGeoSatelliteInfoSource::NoError)
+ emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+}
+
void QGeoSatelliteInfoSourceAndroid::locationProviderDisabled()
{
- m_error = QGeoSatelliteInfoSource::ClosedError;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(QGeoSatelliteInfoSource::ClosedError);
}
diff --git a/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h b/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h
index 150009a2..19b7b577 100644
--- a/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h
+++ b/src/plugins/position/android/src/qgeosatelliteinfosource_android_p.h
@@ -82,6 +82,7 @@ private Q_SLOTS:
private:
void reconfigureRunningSystem();
+ void setError(QGeoSatelliteInfoSource::Error error);
Error m_error;
int androidClassKeyForUpdate;
diff --git a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp
index a54a51a5..9986dd3b 100644
--- a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp
+++ b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.cpp
@@ -121,7 +121,7 @@ void QGeoSatelliteInfoSourceGeoclueMaster::stopUpdates()
void QGeoSatelliteInfoSourceGeoclueMaster::requestUpdate(int timeout)
{
if (timeout < minimumUpdateInterval() && timeout != 0) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -176,6 +176,13 @@ void QGeoSatelliteInfoSourceGeoclueMaster::updateSatelliteInfo(int timestamp, in
m_requestTimer.start(qMax(updateInterval(), minimumUpdateInterval()));
}
+void QGeoSatelliteInfoSourceGeoclueMaster::setError(QGeoSatelliteInfoSource::Error error)
+{
+ m_error = error;
+ if (m_error != QGeoSatelliteInfoSource::NoError)
+ emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+}
+
void QGeoSatelliteInfoSourceGeoclueMaster::requestUpdateTimeout()
{
// If we end up here, there has not been a valid satellite info update.
@@ -185,7 +192,7 @@ void QGeoSatelliteInfoSourceGeoclueMaster::requestUpdateTimeout()
emit satellitesInViewUpdated(m_inView);
emit satellitesInUseUpdated(m_inUse);
} else {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
// Only stop satellite info if regular updates not active.
cleanupSatelliteSource();
@@ -250,8 +257,7 @@ void QGeoSatelliteInfoSourceGeoclueMaster::positionProviderChanged(const QString
}
if (providerService.isEmpty() || providerPath.isEmpty()) {
- m_error = AccessError;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
+ setError(QGeoSatelliteInfoSource::AccessError);
return;
}
@@ -291,10 +297,8 @@ void QGeoSatelliteInfoSourceGeoclueMaster::satelliteChanged(const QDBusMessage &
void QGeoSatelliteInfoSourceGeoclueMaster::configureSatelliteSource()
{
- if (!m_master->createMasterClient(Accuracy::Detailed, QGeoclueMaster::ResourceGps)) {
- m_error = UnknownSourceError;
- emit QGeoSatelliteInfoSource::errorOccurred(m_error);
- }
+ if (!m_master->createMasterClient(Accuracy::Detailed, QGeoclueMaster::ResourceGps))
+ setError(QGeoSatelliteInfoSource::UnknownSourceError);
}
void QGeoSatelliteInfoSourceGeoclueMaster::cleanupSatelliteSource()
diff --git a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h
index 254a17ac..98da091d 100644
--- a/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h
+++ b/src/plugins/position/geoclue/qgeosatelliteinfosource_geocluemaster.h
@@ -87,6 +87,8 @@ private:
void updateSatelliteInfo(int timestamp, int satellitesUsed, int satellitesVisible,
const QList<int> &usedPrn, const QList<QGeoSatelliteInfo> &satInfos);
+ void setError(QGeoSatelliteInfoSource::Error error);
+
QGeoclueMaster *m_master;
OrgFreedesktopGeoclueInterface *m_provider;
diff --git a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp
index 2a3f31dc..6b1b430a 100644
--- a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp
+++ b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy.cpp
@@ -140,8 +140,9 @@ gchar *SatelliteGypsyEngine::eng_gconf_client_get_string(GConfClient *client, co
return ::gconf_client_get_string(client, key, err);
}
-QGeoSatelliteInfoSourceGypsy::QGeoSatelliteInfoSourceGypsy(QObject *parent) : QGeoSatelliteInfoSource(parent),
- m_engine(0), m_satellite(0), m_device(0), m_requestTimer(this), m_updatesOngoing(false), m_requestOngoing(false)
+QGeoSatelliteInfoSourceGypsy::QGeoSatelliteInfoSourceGypsy(QObject *parent)
+ : QGeoSatelliteInfoSource(parent), m_engine(0), m_satellite(0), m_device(0),
+ m_requestTimer(this), m_updatesOngoing(false), m_requestOngoing(false)
{
m_requestTimer.setSingleShot(true);
QObject::connect(&m_requestTimer, SIGNAL(timeout()), this, SLOT(requestUpdateTimeout()));
@@ -290,7 +291,7 @@ int QGeoSatelliteInfoSourceGypsy::minimumUpdateInterval() const
QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSourceGypsy::error() const
{
- return NoError;
+ return m_error;
}
void QGeoSatelliteInfoSourceGypsy::startUpdates()
@@ -322,7 +323,7 @@ void QGeoSatelliteInfoSourceGypsy::requestUpdate(int timeout)
if (m_requestOngoing)
return;
if (timeout < 0) {
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
m_requestOngoing = true;
@@ -369,7 +370,14 @@ void QGeoSatelliteInfoSourceGypsy::requestUpdateTimeout()
m_engine->eng_g_signal_handlers_disconnect_by_func(G_OBJECT(m_satellite), (void *)satellites_changed, this);
}
m_requestOngoing = false;
- emit requestTimeout();
+ setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
+}
+
+void QGeoSatelliteInfoSourceGypsy::setError(QGeoSatelliteInfoSource::Error error)
+{
+ m_error = error;
+ if (m_error != QGeoSatelliteInfoSource::NoError)
+ emit QGeoSatelliteInfoSource::errorOccurred(m_error);
}
QT_END_NAMESPACE
diff --git a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h
index c28ca3a1..b393ce3f 100644
--- a/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h
+++ b/src/plugins/position/gypsy/qgeosatelliteinfosource_gypsy_p.h
@@ -121,6 +121,9 @@ signals:
private slots:
void requestUpdateTimeout();
+private:
+ void setError(QGeoSatelliteInfoSource::Error error);
+
protected:
// Creates an engine which encapsulates all used symbols
// that we want to be also able to mock.
@@ -134,6 +137,7 @@ private:
QTimer m_requestTimer;
bool m_updatesOngoing;
bool m_requestOngoing;
+ QGeoSatelliteInfoSource::Error m_error = QGeoSatelliteInfoSource::NoError;
};
QT_END_NAMESPACE
diff --git a/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp b/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
index d0a4d3b5..cb127218 100644
--- a/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
+++ b/src/plugins/position/serialnmea/qnmeasatelliteinfosource.cpp
@@ -108,7 +108,7 @@ public slots:
public:
- QGeoSatelliteInfoSource *m_source = nullptr;
+ QNmeaSatelliteInfoSource *m_source = nullptr;
QGeoSatelliteInfoSource::Error m_satelliteError = QGeoSatelliteInfoSource::NoError;
QPointer<QIODevice> m_device;
struct Update {
@@ -321,7 +321,7 @@ void QNmeaSatelliteInfoSourcePrivate::requestUpdate(int msec)
return;
if (msec <= 0 || msec < m_source->minimumUpdateInterval()) {
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -332,7 +332,7 @@ void QNmeaSatelliteInfoSourcePrivate::requestUpdate(int msec)
bool initialized = initialize();
if (!initialized) {
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
return;
}
@@ -356,7 +356,7 @@ void QNmeaSatelliteInfoSourcePrivate::emitPendingUpdate()
} else { // invalid or not fresh update
if (m_noUpdateLastInterval && !m_updateTimeoutSent) {
m_updateTimeoutSent = true;
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
}
m_noUpdateLastInterval = true;
}
@@ -371,7 +371,7 @@ void QNmeaSatelliteInfoSourcePrivate::sourceDataClosed()
void QNmeaSatelliteInfoSourcePrivate::updateRequestTimeout()
{
m_requestTimer->stop();
- emit m_source->requestTimeout();
+ m_source->setError(QGeoSatelliteInfoSource::UpdateTimeoutError);
}
void QNmeaSatelliteInfoSourcePrivate::readAvailableData()
diff --git a/src/positioning/qgeosatelliteinfosource.cpp b/src/positioning/qgeosatelliteinfosource.cpp
index d271cbf2..02c81361 100644
--- a/src/positioning/qgeosatelliteinfosource.cpp
+++ b/src/positioning/qgeosatelliteinfosource.cpp
@@ -329,9 +329,10 @@ QStringList QGeoSatelliteInfoSource::availableSources()
Attempts to get the current satellite information and emit
satellitesInViewUpdated() and satellitesInUseUpdated() with this
information. If the current satellite information cannot be found
- within the given \a timeout (in milliseconds) or if \a timeout is less than the value returned by
- minimumUpdateInterval(), requestTimeout() is
- emitted.
+ within the given \a timeout (in milliseconds) or if \a timeout is less than
+ the value returned by minimumUpdateInterval(), an errorOccurred() signal
+ with \l {QGeoSatelliteInfoSource::Error::UpdateTimeoutError}
+ {UpdateTimeoutError} is emitted.
If the timeout is zero, the timeout defaults to a reasonable timeout
period as appropriate for the source.
@@ -342,17 +343,6 @@ QStringList QGeoSatelliteInfoSource::availableSources()
*/
/*!
- \fn void QGeoSatelliteInfoSource::requestTimeout();
-
- Emitted if requestUpdate() was called and the current satellite
- information could not be retrieved within the specified timeout.
-
- While the triggering of this signal may be considered an error condition,
- it does not imply the emission of the \c error() signal. Only the emission of
- \c requestTimeout() is required to indicate a timeout.
-*/
-
-/*!
\fn QGeoSatelliteInfoSource::Error QGeoSatelliteInfoSource::error() const = 0
Returns the last error that occurred.
@@ -363,8 +353,6 @@ QStringList QGeoSatelliteInfoSource::availableSources()
This signal is emitted after an error occurred. The \a satelliteError
parameter describes the type of error that occurred.
-
- This signal is not emitted when a requestTimeout() has occurred.
*/
/*!
@@ -379,6 +367,8 @@ QStringList QGeoSatelliteInfoSource::availableSources()
A new satellite source can be created by calling createDefaultSource() later on.
\value NoError No error has occurred.
\value UnknownSourceError An unidentified error occurred.
+ \value UpdateTimeoutError The current satellite information could not be
+ retrieved within the specified timeout.
*/
diff --git a/src/positioning/qgeosatelliteinfosource.h b/src/positioning/qgeosatelliteinfosource.h
index e588a60e..a073db03 100644
--- a/src/positioning/qgeosatelliteinfosource.h
+++ b/src/positioning/qgeosatelliteinfosource.h
@@ -58,9 +58,10 @@ public:
AccessError = 0,
ClosedError = 1,
NoError = 2,
- UnknownSourceError = -1
+ UnknownSourceError = -1,
+ UpdateTimeoutError = 3,
};
- Q_ENUMS(Error)
+ Q_ENUM(Error)
explicit QGeoSatelliteInfoSource(QObject *parent);
virtual ~QGeoSatelliteInfoSource();
@@ -87,7 +88,6 @@ public Q_SLOTS:
Q_SIGNALS:
void satellitesInViewUpdated(const QList<QGeoSatelliteInfo> &satellites);
void satellitesInUseUpdated(const QList<QGeoSatelliteInfo> &satellites);
- void requestTimeout();
void errorOccurred(QGeoSatelliteInfoSource::Error);
protected:
diff --git a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
index 50b963ff..905b74a4 100644
--- a/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
+++ b/tests/auto/qgeosatelliteinfosource/testqgeosatelliteinfosource.cpp
@@ -246,7 +246,6 @@ void TestQGeoSatelliteInfoSource::startUpdates_testIntervals()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->setUpdateInterval(7000);
@@ -259,7 +258,7 @@ void TestQGeoSatelliteInfoSource::startUpdates_testIntervals()
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 9500);
for (int i = 0; i < 6; i++) {
- QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1) && (timeout.count() == 0), (interval*2));
+ QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1) && (errorSpy.count() == 0), (interval*2));
spyView.clear();
spyUse.clear();
}
@@ -281,7 +280,6 @@ void TestQGeoSatelliteInfoSource::startUpdates_testIntervalChangesWhileRunning()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->setUpdateInterval(0);
@@ -292,43 +290,43 @@ void TestQGeoSatelliteInfoSource::startUpdates_testIntervalChangesWhileRunning()
QSKIP("Error starting satellite updates.");
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0), 7000);
- QCOMPARE(timeout.count(), 0);
+ QCOMPARE(errorSpy.count(), 0);
spyView.clear();
spyUse.clear();
m_source->setUpdateInterval(5000);
- QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 15000);
+ QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (errorSpy.count() == 0), 15000);
spyView.clear();
spyUse.clear();
m_source->setUpdateInterval(10000);
- QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 30000);
+ QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (errorSpy.count() == 0), 30000);
spyView.clear();
spyUse.clear();
m_source->setUpdateInterval(5000);
- QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 15000);
+ QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 2) && (spyUse.count() == 2) && (errorSpy.count() == 0), 15000);
spyView.clear();
spyUse.clear();
m_source->setUpdateInterval(5000);
- QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() == 2) && (spyUse.count() == 2) && (timeout.count() == 0), 15000);
+ QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() == 2) && (spyUse.count() == 2) && (errorSpy.count() == 0), 15000);
spyView.clear();
spyUse.clear();
m_source->setUpdateInterval(0);
- QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000);
+ QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (errorSpy.count() == 0), 7000);
spyView.clear();
spyUse.clear();
m_source->setUpdateInterval(0);
- QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000);
+ QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (errorSpy.count() == 0), 7000);
spyView.clear();
spyUse.clear();
m_source->stopUpdates();
@@ -341,7 +339,6 @@ void TestQGeoSatelliteInfoSource::startUpdates_testDefaultInterval()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->startUpdates();
@@ -350,7 +347,7 @@ void TestQGeoSatelliteInfoSource::startUpdates_testDefaultInterval()
QSKIP("Error starting satellite updates.");
for (int i = 0; i < 3; i++) {
- QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000);
+ QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (errorSpy.count() == 0), 7000);
spyView.clear();
spyUse.clear();
}
@@ -364,7 +361,6 @@ void TestQGeoSatelliteInfoSource::startUpdates_testZeroInterval()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->setUpdateInterval(0);
@@ -374,7 +370,7 @@ void TestQGeoSatelliteInfoSource::startUpdates_testZeroInterval()
QSKIP("Error starting satellite updates.");
for (int i = 0; i < 3; i++) {
- QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (timeout.count() == 0), 7000);
+ QTRY_VERIFY_WITH_TIMEOUT( (spyView.count() > 0 ) && (spyUse.count() > 0) && (errorSpy.count() == 0), 7000);
spyView.clear();
spyUse.clear();
}
@@ -444,18 +440,26 @@ void TestQGeoSatelliteInfoSource::requestUpdate()
CHECK_SOURCE_VALID;
QFETCH(int, timeout);
- QSignalSpy spy(m_source, SIGNAL(requestTimeout()));
QSignalSpy spyView(m_source,
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(timeout);
- if (!errorSpy.isEmpty())
- QSKIP("Error starting satellite updates.");
+ if (!errorSpy.isEmpty()) {
+ // make sure that it's the UpdateTimeoutError
+ const auto error = errorSpy[0][0].value<QGeoSatelliteInfoSource::Error>();
+ QCOMPARE(error, QGeoSatelliteInfoSource::UpdateTimeoutError);
+ errorSpy.clear();
+ }
// Geoclue may deliver update instantly if there is a satellite fix
- QTRY_VERIFY_WITH_TIMEOUT(!spy.isEmpty() || !spyView.isEmpty(), 10);
+ QTRY_VERIFY_WITH_TIMEOUT(!errorSpy.isEmpty() || !spyView.isEmpty(), 10);
+ if (!errorSpy.isEmpty()) {
+ // make sure that it's the UpdateTimeoutError
+ const auto error = errorSpy[0][0].value<QGeoSatelliteInfoSource::Error>();
+ QCOMPARE(error, QGeoSatelliteInfoSource::UpdateTimeoutError);
+ }
}
void TestQGeoSatelliteInfoSource::requestUpdate_data()
@@ -473,7 +477,6 @@ void TestQGeoSatelliteInfoSource::requestUpdate_validTimeout()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
@@ -482,7 +485,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_validTimeout()
QSKIP("Error starting satellite updates.");
QTRY_VERIFY_WITH_TIMEOUT(
- (spyView.count() == 1) && (spyUse.count() == 1 && (spyTimeout.count()) == 0), 7000);
+ (spyView.count() == 1) && (spyUse.count() == 1 && (errorSpy.count()) == 0), 7000);
}
void TestQGeoSatelliteInfoSource::requestUpdate_defaultTimeout()
@@ -493,7 +496,6 @@ void TestQGeoSatelliteInfoSource::requestUpdate_defaultTimeout()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(0);
@@ -502,7 +504,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_defaultTimeout()
QSKIP("Error starting satellite updates.");
QTRY_VERIFY_WITH_TIMEOUT(
- (spyView.count() == 1) && (spyUse.count() == 1 && (spyTimeout.count()) == 0),
+ (spyView.count() == 1) && (spyUse.count() == 1 && (errorSpy.count()) == 0),
MAX_WAITING_TIME);
}
@@ -510,15 +512,13 @@ void TestQGeoSatelliteInfoSource::requestUpdate_timeoutLessThanMinimumInterval()
{
CHECK_SOURCE_VALID;
- QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(1);
- if (!errorSpy.isEmpty())
- QSKIP("Error starting satellite updates.");
-
- QTRY_COMPARE_WITH_TIMEOUT(spyTimeout.count(), 1, 1000);
+ QTRY_COMPARE_WITH_TIMEOUT(errorSpy.count(), 1, 1000);
+ const auto error = errorSpy[0][0].value<QGeoSatelliteInfoSource::Error>();
+ QCOMPARE(error, QGeoSatelliteInfoSource::UpdateTimeoutError);
}
void TestQGeoSatelliteInfoSource::requestUpdate_repeatedCalls()
@@ -573,8 +573,6 @@ void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCallsWithTimeout()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy spyTimeout(m_source,
- SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(0);
@@ -584,7 +582,7 @@ void TestQGeoSatelliteInfoSource::requestUpdate_overlappingCallsWithTimeout()
m_source->requestUpdate(1);
- QTRY_COMPARE_WITH_TIMEOUT(spyTimeout.count(), 0, 7000);
+ QTRY_COMPARE_WITH_TIMEOUT(errorSpy.count(), 0, 7000);
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1), 7000);
}
@@ -597,7 +595,6 @@ void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates_ZeroInterval()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->setUpdateInterval(0);
@@ -613,7 +610,7 @@ void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates_ZeroInterval()
m_source->requestUpdate(7000);
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() == 1) && (spyUse.count() == 1)
- && (spyTimeout.count() == 0), 7000);
+ && (errorSpy.count() == 0), 7000);
spyView.clear();
spyUse.clear();
@@ -631,7 +628,6 @@ void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates_SmallInterval()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy spyTimeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->setUpdateInterval(10000);
@@ -643,7 +639,7 @@ void TestQGeoSatelliteInfoSource::requestUpdateAfterStartUpdates_SmallInterval()
m_source->startUpdates();
QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0)
- && (spyTimeout.count() == 0), 7000);
+ && (errorSpy.count() == 0), 7000);
spyView.clear();
spyUse.clear();
@@ -660,7 +656,6 @@ void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates_ZeroInterval()
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
@@ -671,13 +666,13 @@ void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates_ZeroInterval()
m_source->setUpdateInterval(0);
m_source->startUpdates();
- QTRY_VERIFY_WITH_TIMEOUT((spyView.count() >= 2) && (spyUse.count() >= 2) && (timeout.count() == 0), 14000);
+ QTRY_VERIFY_WITH_TIMEOUT((spyView.count() >= 2) && (spyUse.count() >= 2) && (errorSpy.count() == 0), 14000);
spyView.clear();
spyUse.clear();
QTest::qWait(7000);
- QCOMPARE(timeout.count(), 0);
+ QCOMPARE(errorSpy.count(), 0);
m_source->stopUpdates();
}
@@ -689,7 +684,6 @@ void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates_SmallInterval(
SIGNAL(satellitesInViewUpdated(QList<QGeoSatelliteInfo>)));
QSignalSpy spyUse(m_source,
SIGNAL(satellitesInUseUpdated(QList<QGeoSatelliteInfo>)));
- QSignalSpy timeout(m_source, SIGNAL(requestTimeout()));
QSignalSpy errorSpy(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)));
m_source->requestUpdate(7000);
@@ -700,11 +694,11 @@ void TestQGeoSatelliteInfoSource::requestUpdateBeforeStartUpdates_SmallInterval(
m_source->setUpdateInterval(10000);
m_source->startUpdates();
- QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0) && (timeout.count() == 0), 7000);
+ QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0) && (errorSpy.count() == 0), 7000);
spyView.clear();
spyUse.clear();
- QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0) && (timeout.count() == 0), 20000);
+ QTRY_VERIFY_WITH_TIMEOUT((spyView.count() > 0) && (spyUse.count() > 0) && (errorSpy.count() == 0), 20000);
m_source->stopUpdates();
}
@@ -715,11 +709,14 @@ void TestQGeoSatelliteInfoSource::removeSlotForRequestTimeout()
{
CHECK_SOURCE_VALID;
- bool i = connect(m_source, SIGNAL(requestTimeout()), this, SLOT(test_slot1()));
+ bool i = connect(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)),
+ this, SLOT(test_slot1()));
QVERIFY(i==true);
- i = connect(m_source, SIGNAL(requestTimeout()), this, SLOT(test_slot2()));
+ i = connect(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)), \
+ this, SLOT(test_slot2()));
QVERIFY(i==true);
- i = disconnect(m_source, SIGNAL(requestTimeout()), this, SLOT(test_slot1()));
+ i = disconnect(m_source, SIGNAL(errorOccurred(QGeoSatelliteInfoSource::Error)),
+ this, SLOT(test_slot1()));
QVERIFY(i==true);
m_source->requestUpdate(-1);