diff options
Diffstat (limited to 'src/location/labs/qsg/qmappolylineobjectqsg.cpp')
-rw-r--r-- | src/location/labs/qsg/qmappolylineobjectqsg.cpp | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/location/labs/qsg/qmappolylineobjectqsg.cpp b/src/location/labs/qsg/qmappolylineobjectqsg.cpp index 5b184326..2bf5b287 100644 --- a/src/location/labs/qsg/qmappolylineobjectqsg.cpp +++ b/src/location/labs/qsg/qmappolylineobjectqsg.cpp @@ -45,18 +45,20 @@ QT_BEGIN_NAMESPACE */ QMapPolylineObjectPrivateQSG::QMapPolylineObjectPrivateQSG(QGeoMapObject *q) - : QMapPolylineObjectPrivate(q) + : QMapPolylineObjectPrivateDefault(q) { } QMapPolylineObjectPrivateQSG::QMapPolylineObjectPrivateQSG(const QMapPolylineObjectPrivate &other) - : QMapPolylineObjectPrivate(other.q) + : QMapPolylineObjectPrivateDefault(other) { - // do the appropriate internal update and trigger map repaint - setPath(other.path()); - setColor(other.color()); - setWidth(other.width()); + m_geoPath.setPath(m_path); + // rest of the data already cloned by the *Default copy constructor, but necessary + // update operations triggered only by setters overrides + updateGeometry(); + if (m_map) + emit m_map->sgNodeChanged(); } QMapPolylineObjectPrivateQSG::~QMapPolylineObjectPrivateQSG() @@ -102,7 +104,7 @@ QSGNode *QMapPolylineObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode, QSGNode *root, QQuickWindow * /*window*/) { - Q_UNUSED(visibleNode) + Q_UNUSED(visibleNode); MapPolylineNode *node = static_cast<MapPolylineNode *>(oldNode); bool created = false; @@ -127,24 +129,23 @@ QSGNode *QMapPolylineObjectPrivateQSG::updateMapObjectNode(QSGNode *oldNode, return node; } -QList<QGeoCoordinate> QMapPolylineObjectPrivateQSG::path() const { return m_geoPath.path(); } - -QColor QMapPolylineObjectPrivateQSG::color() const { return m_color; } - -qreal QMapPolylineObjectPrivateQSG::width() const { return m_width; } +QList<QGeoCoordinate> QMapPolylineObjectPrivateQSG::path() const +{ + return m_geoPath.path(); +} void QMapPolylineObjectPrivateQSG::setPath(const QList<QGeoCoordinate> &path) { + m_path = path; m_geoPath.setPath(path); updateGeometry(); - if (m_map) emit m_map->sgNodeChanged(); } void QMapPolylineObjectPrivateQSG::setColor(const QColor &color) { - m_color = color; + QMapPolylineObjectPrivateDefault::setColor(color); updateGeometry(); if (m_map) @@ -153,7 +154,7 @@ void QMapPolylineObjectPrivateQSG::setColor(const QColor &color) void QMapPolylineObjectPrivateQSG::setWidth(qreal width) { - m_width = width; + QMapPolylineObjectPrivateDefault::setWidth(width); updateGeometry(); if (m_map) @@ -165,4 +166,9 @@ QGeoMapObjectPrivate *QMapPolylineObjectPrivateQSG::clone() return new QMapPolylineObjectPrivateQSG(static_cast<QMapPolylineObjectPrivate &>(*this)); } +QGeoShape QMapPolylineObjectPrivateQSG::geoShape() const +{ + return m_geoPath; +} + QT_END_NAMESPACE |