diff options
author | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-02-07 12:48:44 +0100 |
---|---|---|
committer | Paolo Angelelli <paolo.angelelli@qt.io> | 2018-02-07 16:43:10 +0000 |
commit | d80a98e987390a5a355a8ed20c4e713c43d148dc (patch) | |
tree | 5996732b95a11d477aec898daeee841c9892b3d0 /src/location/maps/qgeomap.cpp | |
parent | 6962059388da2820fc6d0b6947243f8d8c7d4025 (diff) | |
download | qtlocation-d80a98e987390a5a355a8ed20c4e713c43d148dc.tar.gz |
Let QGeoMap::createMapObjectImplementation set the implementation
This prevents a sort of "call super" antipattern, where each specific
createMapObjectImplementation have to call the setImplementation
internally.
Change-Id: I0babe89a3a01728e95209cf832f4debc3d8af158
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Diffstat (limited to 'src/location/maps/qgeomap.cpp')
-rw-r--r-- | src/location/maps/qgeomap.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/location/maps/qgeomap.cpp b/src/location/maps/qgeomap.cpp index 4ac36fed..a346786a 100644 --- a/src/location/maps/qgeomap.cpp +++ b/src/location/maps/qgeomap.cpp @@ -40,6 +40,7 @@ #include "qgeomappingmanagerengine_p.h" #include "qdeclarativegeomapitembase_p.h" #include "qgeomapobject_p.h" +#include "qgeomapobject_p_p.h" #include <QDebug> QT_BEGIN_NAMESPACE @@ -280,7 +281,11 @@ void QGeoMap::clearMapItems() bool QGeoMap::createMapObjectImplementation(QGeoMapObject *obj) { Q_D(QGeoMap); - return d->createMapObjectImplementation(obj); + QExplicitlySharedDataPointer<QGeoMapObjectPrivate> pimpl = + QExplicitlySharedDataPointer<QGeoMapObjectPrivate>(d->createMapObjectImplementation(obj)); + if (pimpl.constData()) + return obj->setImplementation(pimpl); + return false; } QList<QGeoMapObject *> QGeoMap::mapObjects() const @@ -365,10 +370,10 @@ void QGeoMapPrivate::removeMapItem(QDeclarativeGeoMapItemBase *item) Q_UNUSED(item) } -bool QGeoMapPrivate::createMapObjectImplementation(QGeoMapObject *obj) +QGeoMapObjectPrivate *QGeoMapPrivate::createMapObjectImplementation(QGeoMapObject *obj) { Q_UNUSED(obj) - return false; + return nullptr; } QList<QGeoMapObject *> QGeoMapPrivate::mapObjects() const |