From: Luciano Montanaro Date: Sun, 29 Jan 2012 21:58:19 +0000 (+0100) Subject: Mitigate GPS polling slowdown X-Git-Tag: tags/0.5.0~10 X-Git-Url: http://git.maemo.org/git/?a=commitdiff_plain;h=332b36a82df69f21b1cd5392ab424aced3fd9554;hp=56d00c3b79fd8fbb334b0c64db908e8f5b4a7c4f;p=quandoparte Mitigate GPS polling slowdown Polling should be disabled altogether when the station list view is not visible. I will do that at another time. --- diff --git a/application/stationlistproxymodel.cpp b/application/stationlistproxymodel.cpp index da2152b..3a693cd 100644 --- a/application/stationlistproxymodel.cpp +++ b/application/stationlistproxymodel.cpp @@ -46,6 +46,7 @@ StationListProxyModel::StationListProxyModel(QObject *parent) : qDebug() << "position info source available"; connect(positionInfoSource, SIGNAL(positionUpdated(QGeoPositionInfo)), SLOT(updatePosition(QGeoPositionInfo))); + positionInfoSource->setUpdateInterval(5000); } else { qDebug() << "No position info source available"; } @@ -173,7 +174,12 @@ void StationListProxyModel::forceSortingMode(SortingMode mode) void StationListProxyModel::updatePosition(const QtMobility::QGeoPositionInfo &update) { qDebug() << "Position update received" << update; - setUserPosition(update.coordinate()); - invalidate(); - sort(0); + if (update.isValid()) { + QGeoCoordinate newPosition = update.coordinate(); + if (newPosition.distanceTo(m_here) > 50.0) { + setUserPosition(update.coordinate()); + invalidate(); + sort(0); + } + } }