summaryrefslogtreecommitdiff
path: root/src/location/maps/qgeomap.cpp
diff options
context:
space:
mode:
authorPaolo Angelelli <paolo.angelelli@qt.io>2018-02-07 12:48:44 +0100
committerPaolo Angelelli <paolo.angelelli@qt.io>2018-02-07 16:43:10 +0000
commitd80a98e987390a5a355a8ed20c4e713c43d148dc (patch)
tree5996732b95a11d477aec898daeee841c9892b3d0 /src/location/maps/qgeomap.cpp
parent6962059388da2820fc6d0b6947243f8d8c7d4025 (diff)
downloadqtlocation-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.cpp11
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