diff options
Diffstat (limited to 'src/location')
5 files changed, 13 insertions, 9 deletions
diff --git a/src/location/declarativemaps/qdeclarativecirclemapitem.cpp b/src/location/declarativemaps/qdeclarativecirclemapitem.cpp index f0ba122c..841c29a8 100644 --- a/src/location/declarativemaps/qdeclarativecirclemapitem.cpp +++ b/src/location/declarativemaps/qdeclarativecirclemapitem.cpp @@ -140,8 +140,6 @@ QT_BEGIN_NAMESPACE \since 5.14 */ -static const int CircleSamples = 128; - struct Vertex { QVector2D position; diff --git a/src/location/declarativemaps/qdeclarativegeomap.cpp b/src/location/declarativemaps/qdeclarativegeomap.cpp index fe59e246..e297c2b1 100644 --- a/src/location/declarativemaps/qdeclarativegeomap.cpp +++ b/src/location/declarativemaps/qdeclarativegeomap.cpp @@ -1628,7 +1628,7 @@ void QDeclarativeGeoMap::clearData() void QDeclarativeGeoMap::fitViewportToGeoShape(const QGeoShape &shape, QVariant margins) { QMargins m(10, 10, 10, 10); // lets defaults to 10 if margins is invalid - switch (margins.type()) { + switch (static_cast<QMetaType::Type>(margins.type())) { case QMetaType::Int: case QMetaType::Double: { const int value = int(margins.toDouble()); diff --git a/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h b/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h index 22a69173..705ccf5a 100644 --- a/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h +++ b/src/location/declarativemaps/qdeclarativepolylinemapitem_p_p.h @@ -395,7 +395,7 @@ public: "}"; } - const char *fragmentShader() const { + const char *fragmentShader() const override { return "uniform lowp vec4 color; \n" "void main() { \n" diff --git a/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp b/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp index 0e1df8f6..a978573d 100644 --- a/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp +++ b/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp @@ -157,9 +157,14 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind { if (!root) return; + + if (m_mapObjectsRootNode && m_mapObjectsRootNode->parent()) + root->appendChildNode(m_mapObjectsRootNode.get()); + if (!m_mapObjectsRootNode) { - m_mapObjectsRootNode = new QDeclarativePolygonMapItemPrivateOpenGL::RootNode(); - root->appendChildNode(m_mapObjectsRootNode); + m_mapObjectsRootNode = std::make_unique<QDeclarativePolygonMapItemPrivateOpenGL::RootNode>(); + root->appendChildNode(m_mapObjectsRootNode.get()); + m_mapObjectsRootNode->setFlag(QSGNode::OwnedByParent, false); } m_mapObjectsRootNode->removeAllChildNodes(); @@ -184,7 +189,7 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind MapObject &mo = m_mapObjects[i]; QQSGMapObject *sgo = mo.sgObject; QSGNode *oldNode = mo.qsgNode; - mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode, window); + mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode.get(), window); if (Q_UNLIKELY(!mo.qsgNode)) { qWarning() << "updateMapObjectNode for "<<mo.object->type() << " returned NULL"; } else if (mo.visibleNode && (mo.visibleNode->visible() != mo.object->visible())) { @@ -200,7 +205,7 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind QQSGMapObject *sgo = mo.sgObject; QSGNode *oldNode = mo.qsgNode; sgo->updateGeometry(); // or subtree will be blocked - mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode, window); + mo.qsgNode = sgo->updateMapObjectNode(oldNode, &mo.visibleNode, m_mapObjectsRootNode.get(), window); if (mo.qsgNode) { if (mo.visibleNode && (mo.visibleNode->visible() != mo.object->visible())) { mo.visibleNode->setVisible(mo.object->visible()); diff --git a/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h b/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h index 1ec966fa..cbbc0969 100644 --- a/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h +++ b/src/location/labs/qsg/qgeomapobjectqsgsupport_p.h @@ -59,6 +59,7 @@ #include <QtLocation/private/qdeclarativepolylinemapitem_p.h> #include <QtLocation/private/qdeclarativepolygonmapitem_p_p.h> #include <QtCore/qpointer.h> +#include <memory> QT_BEGIN_NAMESPACE struct Q_LOCATION_PRIVATE_EXPORT MapObject { @@ -85,7 +86,7 @@ public: QList<MapObject> m_pendingMapObjects; QList<MapObject> m_removedMapObjects; QGeoMap *m_map = nullptr; - QDeclarativePolygonMapItemPrivateOpenGL::RootNode *m_mapObjectsRootNode = nullptr; + std::unique_ptr<QDeclarativePolygonMapItemPrivateOpenGL::RootNode> m_mapObjectsRootNode; }; QT_END_NAMESPACE |