From 4982e1938a72ef84c4550eca8af9caaa8818f1a4 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Wed, 27 Nov 2013 12:35:55 +1000 Subject: Don't require applications to declare metatypes. These metatypes need to be declared for common usage of the positioning API. Declare them in the library header files so that applications are not forced to do so. [ChangeLog][QtPositioning][General] Applications no longer need to register common Qt Positioning data types with the metatype system. Change-Id: I1d28ec8e33d20efc748cb6a0a2ad302e2061853f Reviewed-by: Alex Blasche --- src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp | 2 ++ src/positioning/qgeopositioninfo.h | 2 ++ src/positioning/qgeosatelliteinfo.h | 4 ++++ tests/auto/positionplugintest/tst_positionplugin.cpp | 2 -- tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp | 1 - tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp | 1 - tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp | 1 - tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp | 1 - .../dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp | 1 - tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h | 1 - 10 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp b/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp index fc0b8b99..fd299a6c 100644 --- a/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp +++ b/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp @@ -132,6 +132,8 @@ QGeoPositionInfoSourceGeoclueMaster::QGeoPositionInfoSourceGeoclueMaster(QObject } #endif + qRegisterMetaType(); + m_requestTimer.setSingleShot(true); QObject::connect(&m_requestTimer, SIGNAL(timeout()), this, SLOT(requestUpdateTimeout())); QObject::connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(startUpdatesTimeout())); diff --git a/src/positioning/qgeopositioninfo.h b/src/positioning/qgeopositioninfo.h index cee8935a..4012bd25 100644 --- a/src/positioning/qgeopositioninfo.h +++ b/src/positioning/qgeopositioninfo.h @@ -112,4 +112,6 @@ Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoPositionIn QT_END_NAMESPACE +Q_DECLARE_METATYPE(QGeoPositionInfo) + #endif diff --git a/src/positioning/qgeosatelliteinfo.h b/src/positioning/qgeosatelliteinfo.h index fb13157d..3e5ff3dd 100644 --- a/src/positioning/qgeosatelliteinfo.h +++ b/src/positioning/qgeosatelliteinfo.h @@ -43,6 +43,8 @@ #include +#include + QT_BEGIN_NAMESPACE class QDebug; @@ -111,4 +113,6 @@ Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoSatelliteI QT_END_NAMESPACE +Q_DECLARE_METATYPE(QGeoSatelliteInfo) + #endif diff --git a/tests/auto/positionplugintest/tst_positionplugin.cpp b/tests/auto/positionplugintest/tst_positionplugin.cpp index f152e762..0d4c8051 100644 --- a/tests/auto/positionplugintest/tst_positionplugin.cpp +++ b/tests/auto/positionplugintest/tst_positionplugin.cpp @@ -50,8 +50,6 @@ QT_USE_NAMESPACE -Q_DECLARE_METATYPE(QGeoPositionInfo) - class tst_PositionPlugin : public QObject { Q_OBJECT diff --git a/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp b/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp index cd9894e5..9f1e0ece 100644 --- a/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp +++ b/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp @@ -65,7 +65,6 @@ QT_USE_NAMESPACE #define UPDATE_INTERVAL 200 -Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QGeoAreaMonitorInfo) class tst_QGeoAreaMonitorSource : public QObject diff --git a/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp b/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp index 21417f84..c9eab14a 100644 --- a/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp +++ b/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp @@ -53,7 +53,6 @@ QT_USE_NAMESPACE -Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QGeoPositionInfo::Attribute) QByteArray tst_qgeopositioninfo_debug; diff --git a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp index 86435448..2519b512 100644 --- a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp +++ b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp @@ -58,7 +58,6 @@ Q_DECLARE_METATYPE(QGeoPositionInfoSource::PositioningMethod) Q_DECLARE_METATYPE(QGeoPositionInfoSource::PositioningMethods) -Q_DECLARE_METATYPE(QGeoPositionInfo) #define MAX_WAITING_TIME 50000 diff --git a/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp b/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp index 69f04762..e95df7e4 100644 --- a/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp +++ b/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp @@ -52,7 +52,6 @@ #include QT_USE_NAMESPACE -Q_DECLARE_METATYPE(QGeoSatelliteInfo) Q_DECLARE_METATYPE(QGeoSatelliteInfo::Attribute) QByteArray tst_qgeosatelliteinfo_debug; diff --git a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp b/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp index ce83b196..3d434a9f 100644 --- a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp +++ b/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp @@ -50,7 +50,6 @@ #include Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode) -Q_DECLARE_METATYPE(QGeoPositionInfo) class DummyNmeaPositionInfoSource : public QNmeaPositionInfoSource { diff --git a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h index d541465d..052ea28a 100644 --- a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h +++ b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h @@ -58,7 +58,6 @@ QT_USE_NAMESPACE Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode) -Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QList) class tst_QNmeaPositionInfoSource : public QObject -- cgit v1.2.1 From 073c2f57bfbc4fd1a0a67f0b7bbcb24875ce1246 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Tue, 10 Dec 2013 09:20:14 +0100 Subject: Revert "Don't require applications to declare metatypes." This reverts commit 5679a86968a6a26f8427b9c979f89f6ea5198d2f Change was source incompatible. Change-Id: Ied25ca3503a41e498a5c9b710e7a0dd3787bbe89 Reviewed-by: Alex Blasche --- src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp | 2 -- src/positioning/qgeopositioninfo.h | 2 -- src/positioning/qgeosatelliteinfo.h | 4 ---- tests/auto/positionplugintest/tst_positionplugin.cpp | 2 ++ tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp | 1 + tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp | 1 + tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp | 1 + tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp | 1 + .../dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp | 1 + tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h | 1 + 10 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp b/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp index fd299a6c..fc0b8b99 100644 --- a/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp +++ b/src/plugins/position/geoclue/qgeopositioninfosource_geocluemaster.cpp @@ -132,8 +132,6 @@ QGeoPositionInfoSourceGeoclueMaster::QGeoPositionInfoSourceGeoclueMaster(QObject } #endif - qRegisterMetaType(); - m_requestTimer.setSingleShot(true); QObject::connect(&m_requestTimer, SIGNAL(timeout()), this, SLOT(requestUpdateTimeout())); QObject::connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(startUpdatesTimeout())); diff --git a/src/positioning/qgeopositioninfo.h b/src/positioning/qgeopositioninfo.h index 4012bd25..cee8935a 100644 --- a/src/positioning/qgeopositioninfo.h +++ b/src/positioning/qgeopositioninfo.h @@ -112,6 +112,4 @@ Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoPositionIn QT_END_NAMESPACE -Q_DECLARE_METATYPE(QGeoPositionInfo) - #endif diff --git a/src/positioning/qgeosatelliteinfo.h b/src/positioning/qgeosatelliteinfo.h index 3e5ff3dd..fb13157d 100644 --- a/src/positioning/qgeosatelliteinfo.h +++ b/src/positioning/qgeosatelliteinfo.h @@ -43,8 +43,6 @@ #include -#include - QT_BEGIN_NAMESPACE class QDebug; @@ -113,6 +111,4 @@ Q_POSITIONING_EXPORT QDataStream &operator>>(QDataStream &stream, QGeoSatelliteI QT_END_NAMESPACE -Q_DECLARE_METATYPE(QGeoSatelliteInfo) - #endif diff --git a/tests/auto/positionplugintest/tst_positionplugin.cpp b/tests/auto/positionplugintest/tst_positionplugin.cpp index 0d4c8051..f152e762 100644 --- a/tests/auto/positionplugintest/tst_positionplugin.cpp +++ b/tests/auto/positionplugintest/tst_positionplugin.cpp @@ -50,6 +50,8 @@ QT_USE_NAMESPACE +Q_DECLARE_METATYPE(QGeoPositionInfo) + class tst_PositionPlugin : public QObject { Q_OBJECT diff --git a/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp b/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp index 9f1e0ece..cd9894e5 100644 --- a/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp +++ b/tests/auto/qgeoareamonitor/tst_qgeoareamonitor.cpp @@ -65,6 +65,7 @@ QT_USE_NAMESPACE #define UPDATE_INTERVAL 200 +Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QGeoAreaMonitorInfo) class tst_QGeoAreaMonitorSource : public QObject diff --git a/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp b/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp index c9eab14a..21417f84 100644 --- a/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp +++ b/tests/auto/qgeopositioninfo/tst_qgeopositioninfo.cpp @@ -53,6 +53,7 @@ QT_USE_NAMESPACE +Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QGeoPositionInfo::Attribute) QByteArray tst_qgeopositioninfo_debug; diff --git a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp index 2519b512..86435448 100644 --- a/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp +++ b/tests/auto/qgeopositioninfosource/testqgeopositioninfosource.cpp @@ -58,6 +58,7 @@ Q_DECLARE_METATYPE(QGeoPositionInfoSource::PositioningMethod) Q_DECLARE_METATYPE(QGeoPositionInfoSource::PositioningMethods) +Q_DECLARE_METATYPE(QGeoPositionInfo) #define MAX_WAITING_TIME 50000 diff --git a/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp b/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp index e95df7e4..69f04762 100644 --- a/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp +++ b/tests/auto/qgeosatelliteinfo/tst_qgeosatelliteinfo.cpp @@ -52,6 +52,7 @@ #include QT_USE_NAMESPACE +Q_DECLARE_METATYPE(QGeoSatelliteInfo) Q_DECLARE_METATYPE(QGeoSatelliteInfo::Attribute) QByteArray tst_qgeosatelliteinfo_debug; diff --git a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp b/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp index 3d434a9f..ce83b196 100644 --- a/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp +++ b/tests/auto/qnmeapositioninfosource/dummynmeapositioninfosource/tst_dummynmeapositioninfosource.cpp @@ -50,6 +50,7 @@ #include Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode) +Q_DECLARE_METATYPE(QGeoPositionInfo) class DummyNmeaPositionInfoSource : public QNmeaPositionInfoSource { diff --git a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h index 052ea28a..d541465d 100644 --- a/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h +++ b/tests/auto/qnmeapositioninfosource/tst_qnmeapositioninfosource.h @@ -58,6 +58,7 @@ QT_USE_NAMESPACE Q_DECLARE_METATYPE(QNmeaPositionInfoSource::UpdateMode) +Q_DECLARE_METATYPE(QGeoPositionInfo) Q_DECLARE_METATYPE(QList) class tst_QNmeaPositionInfoSource : public QObject -- cgit v1.2.1 From f9f88b44e747db8ad218879fec4dbb1627996aef Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Tue, 10 Dec 2013 18:37:29 +1000 Subject: Remove QtQml dependency from QtPositioning. The QtQml dependency was only required for the QML_DECLARE_TYPE macro. Since Qt 5.0 use of this macro is not required. Add missing includes which were being pulled in via QtQml. Task-number: QTBUG-33220 Change-Id: Ief6ab94e25b4bc5cb753672908b09f7e772df1c8 Reviewed-by: Alex Blasche --- src/imports/location/declarativeplaces/qdeclarativeplace.cpp | 5 +++-- .../location/declarativeplaces/qdeclarativesearchmodelbase.cpp | 1 + src/imports/location/qdeclarativegeocodemodel.cpp | 5 +++-- src/positioning/positioning.pro | 2 -- src/positioning/qdeclarativegeoaddress_p.h | 6 ++---- src/positioning/qdeclarativegeolocation_p.h | 4 ---- 6 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/imports/location/declarativeplaces/qdeclarativeplace.cpp b/src/imports/location/declarativeplaces/qdeclarativeplace.cpp index 49e61769..985de8db 100644 --- a/src/imports/location/declarativeplaces/qdeclarativeplace.cpp +++ b/src/imports/location/declarativeplaces/qdeclarativeplace.cpp @@ -46,6 +46,8 @@ #include "qdeclarativeplaceicon_p.h" #include "error_messages.h" +#include +#include #include #include #include @@ -54,7 +56,6 @@ #include #include #include -#include QT_USE_NAMESPACE @@ -965,7 +966,7 @@ void QDeclarativePlace::category_clear(QQmlListProperty *p object->m_categories.clear(); object->m_src.setCategories(QList()); emit object->categoriesChanged(); - QTimer::singleShot(0, object, SLOT(cleanupDeletedCategories())); + QMetaObject::invokeMethod(object, "cleanupDeletedCategories", Qt::QueuedConnection); } /*! diff --git a/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp b/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp index 217ff9da..b8275da5 100644 --- a/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp +++ b/src/imports/location/declarativeplaces/qdeclarativesearchmodelbase.cpp @@ -43,6 +43,7 @@ #include "qdeclarativeplace_p.h" #include "error_messages.h" +#include #include #include #include diff --git a/src/imports/location/qdeclarativegeocodemodel.cpp b/src/imports/location/qdeclarativegeocodemodel.cpp index 797f7ee8..2159e70a 100644 --- a/src/imports/location/qdeclarativegeocodemodel.cpp +++ b/src/imports/location/qdeclarativegeocodemodel.cpp @@ -42,10 +42,11 @@ #include "qdeclarativegeocodemodel_p.h" #include "error_messages.h" -#include +#include +#include +#include #include #include -#include QT_BEGIN_NAMESPACE diff --git a/src/positioning/positioning.pro b/src/positioning/positioning.pro index 296356d0..15c3b360 100644 --- a/src/positioning/positioning.pro +++ b/src/positioning/positioning.pro @@ -1,7 +1,5 @@ TARGET = QtPositioning QT = core-private -QT += qml # the dependecy should be removed, see QTBUG-22330 - QMAKE_DOCS = $$PWD/doc/qtpositioning.qdocconf OTHER_FILES += doc/src/*.qdoc # show .qdoc files in Qt Creator diff --git a/src/positioning/qdeclarativegeoaddress_p.h b/src/positioning/qdeclarativegeoaddress_p.h index c3904a4f..6d8f5136 100644 --- a/src/positioning/qdeclarativegeoaddress_p.h +++ b/src/positioning/qdeclarativegeoaddress_p.h @@ -42,9 +42,8 @@ #ifndef QDECLARATIVEGEOADDRESS_P_H #define QDECLARATIVEGEOADDRESS_P_H -#include -#include -#include +#include +#include QT_BEGIN_NAMESPACE @@ -108,6 +107,5 @@ private: }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QDeclarativeGeoAddress) #endif // QDECLARATIVEGEOADDRESS_P_H diff --git a/src/positioning/qdeclarativegeolocation_p.h b/src/positioning/qdeclarativegeolocation_p.h index 1352d827..08f28ef5 100644 --- a/src/positioning/qdeclarativegeolocation_p.h +++ b/src/positioning/qdeclarativegeolocation_p.h @@ -42,9 +42,7 @@ #ifndef QDECLARATIVEGEOLOCATION_P_H #define QDECLARATIVEGEOLOCATION_P_H - #include -#include #include #include #include @@ -89,6 +87,4 @@ private: QT_END_NAMESPACE -QML_DECLARE_TYPE(QDeclarativeGeoLocation) - #endif // QDECLARATIVELOCATION_P_H -- cgit v1.2.1