void QGeoCodeReplyNokia::networkFinished() { if (!m_reply) return; if (m_reply->error() != QNetworkReply::NoError) { // Removed because this is already done in networkError, which previously caused _two_ errors to be raised for every error. //setError(QGeoCodeReply::CommunicationError, m_reply->errorString()); //m_reply->deleteLater(); //m_reply = 0; return; } QGeoCodeXmlParser parser; if (parser.parse(m_reply)) { QList<QGeoLocation> locations = parser.results(); QGeoShape bounds = viewport(); if (bounds.isValid()) { for (int i = locations.size() - 1; i >= 0; --i) { if (!bounds.contains(locations[i].coordinate())) locations.removeAt(i); } } setLocations(locations); setFinished(true); } else { setError(QGeoCodeReply::ParseError, parser.errorString()); } m_reply->deleteLater(); m_reply = 0; }
void tst_QGeoCircle::contains() { QFETCH(QGeoCoordinate, center); QFETCH(qreal, radius); QFETCH(QGeoCoordinate, probe); QFETCH(bool, result); QGeoCircle c(center, radius); QCOMPARE(c.contains(probe), result); QGeoShape area = c; QCOMPARE(area.contains(probe), result); }