diff options
Diffstat (limited to 'src/imports')
4 files changed, 16 insertions, 19 deletions
diff --git a/src/imports/location/qdeclarativegeomapgesturearea.cpp b/src/imports/location/qdeclarativegeomapgesturearea.cpp index 07fd58e5..05891626 100644 --- a/src/imports/location/qdeclarativegeomapgesturearea.cpp +++ b/src/imports/location/qdeclarativegeomapgesturearea.cpp @@ -47,6 +47,7 @@ #include <QtQuick/QQuickWindow> #include <QPropertyAnimation> #include <QDebug> +#include <QtPositioning/private/qgeoprojection_p.h> #include "math.h" #include "qgeomap_p.h" #include "qdoublevector2d_p.h" @@ -330,6 +331,20 @@ QT_BEGIN_NAMESPACE The corresponding handler is \c onFlickFinished. */ +static void registerQGeoCoordinateInterpolator() +{ + // required by QPropertyAnimation + qRegisterAnimationInterpolator<QGeoCoordinate>(geoCoordinateInterpolator); +} +Q_CONSTRUCTOR_FUNCTION(registerQGeoCoordinateInterpolator) + +static void unregisterQGeoCoordinateInterpolator() +{ + qRegisterAnimationInterpolator<QGeoCoordinate>( + (QVariant (*)(const QGeoCoordinate &, const QGeoCoordinate &, qreal))0); +} +Q_DESTRUCTOR_FUNCTION(unregisterQGeoCoordinateInterpolator) + QDeclarativeGeoMapGestureArea::QDeclarativeGeoMapGestureArea(QDeclarativeGeoMap *map, QObject *parent) : QObject(parent), declarativeMap_(map), diff --git a/src/imports/positioning/positioning.cpp b/src/imports/positioning/positioning.cpp index 2a010be7..743b73df 100644 --- a/src/imports/positioning/positioning.cpp +++ b/src/imports/positioning/positioning.cpp @@ -34,6 +34,7 @@ #include <QtPositioning/private/qdeclarativegeoaddress_p.h> #include <QtPositioning/private/qdeclarativegeolocation_p.h> +#include <QtPositioning/private/qgeoprojection_p.h> #include "qdeclarativepositionsource_p.h" #include "qdeclarativeposition_p.h" diff --git a/src/imports/positioning/qdeclarativegeocoordinateanimation.cpp b/src/imports/positioning/qdeclarativegeocoordinateanimation.cpp index 3f01cbc0..8bb677ad 100644 --- a/src/imports/positioning/qdeclarativegeocoordinateanimation.cpp +++ b/src/imports/positioning/qdeclarativegeocoordinateanimation.cpp @@ -33,7 +33,6 @@ #include "qdeclarativegeocoordinateanimation_p.h" #include <QtQuick/private/qquickanimation_p_p.h> -#include <QtPositioning/private/qgeoprojection_p.h> #include <QtPositioning/private/qdoublevector2d_p.h> QT_BEGIN_NAMESPACE @@ -94,19 +93,4 @@ void QDeclarativeGeoCoordinateAnimation::setTo(const QGeoCoordinate &t) QQuickPropertyAnimation::setTo(QVariant::fromValue(t)); } -QVariant geoCoordinateInterpolator(const QGeoCoordinate &from, const QGeoCoordinate &to, qreal progress) -{ - if (from == to) { - if (progress < 0.5) { - return QVariant::fromValue(from); - } else { - return QVariant::fromValue(to); - } - } - - QGeoCoordinate result = QGeoProjection::coordinateInterpolation(from, to, progress); - - return QVariant::fromValue(result); -} - QT_END_NAMESPACE diff --git a/src/imports/positioning/qdeclarativegeocoordinateanimation_p.h b/src/imports/positioning/qdeclarativegeocoordinateanimation_p.h index 26b6ebb6..2aafc8f6 100644 --- a/src/imports/positioning/qdeclarativegeocoordinateanimation_p.h +++ b/src/imports/positioning/qdeclarativegeocoordinateanimation_p.h @@ -39,9 +39,6 @@ QT_BEGIN_NAMESPACE - -QVariant geoCoordinateInterpolator(const QGeoCoordinate &from, const QGeoCoordinate &to, qreal progress); - class QDeclarativeGeoCoordinateAnimation : public QQuickPropertyAnimation { Q_OBJECT |