File indexing completed on 2024-05-19 03:51:40

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Guillaume Martres <smarter@ubuntu.com>
0004 //
0005 
0006 #include "GeoTrackGraphicsItem.h"
0007 
0008 #include "GeoDataLineString.h"
0009 #include "GeoDataPlacemark.h"
0010 #include "GeoDataTrack.h"
0011 #include "MarbleDebug.h"
0012 #include "StyleBuilder.h"
0013 
0014 using namespace Marble;
0015 
0016 GeoTrackGraphicsItem::GeoTrackGraphicsItem(const GeoDataPlacemark *placemark, const GeoDataTrack *track) :
0017     GeoLineStringGraphicsItem(placemark, track->lineString())
0018 {
0019     setTrack( track );
0020     if (placemark) {
0021         QString const paintLayer = QLatin1String("Track/") + StyleBuilder::visualCategoryName(placemark->visualCategory());
0022         setPaintLayers(QStringList() << paintLayer);
0023     }
0024 }
0025 
0026 void GeoTrackGraphicsItem::setTrack( const GeoDataTrack* track )
0027 {
0028     m_track = track;
0029     update();
0030 }
0031 
0032 void GeoTrackGraphicsItem::paint(GeoPainter *painter, const ViewportParams *viewport , const QString &layer, int tileZoomLevel)
0033 {
0034     Q_UNUSED(layer);
0035     Q_UNUSED(tileZoomLevel);
0036     update();
0037     GeoLineStringGraphicsItem::paint(painter, viewport, layer, tileZoomLevel);
0038 }
0039 
0040 void GeoTrackGraphicsItem::update()
0041 {
0042     setLineString( m_track->lineString() );
0043 }