File indexing completed on 2024-04-21 03:49:51

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2014 Sanjiban Bairagya <sanjiban22393@gmail.com>
0004 //
0005 
0006 #ifndef PLAYBACKANIMATEDUPDATEITEM_H
0007 #define PLAYBACKANIMATEDUPDATEITEM_H
0008 
0009 #include "PlaybackItem.h"
0010 
0011 namespace Marble
0012 {
0013 
0014 class GeoDataAnimatedUpdate;
0015 class GeoDataDocument;
0016 class GeoDataFeature;
0017 class GeoDataObject;
0018 
0019 class PlaybackAnimatedUpdateItem : public PlaybackItem
0020 {
0021     Q_OBJECT
0022 public:
0023     explicit PlaybackAnimatedUpdateItem( GeoDataAnimatedUpdate *animatedUpdate );
0024     const GeoDataAnimatedUpdate* animatedUpdate() const;
0025     double duration() const override;
0026     void play() override;
0027     void pause() override;
0028     void seek( double ) override;
0029     void stop() override;
0030     bool isApplied() const;
0031 
0032 private:
0033     static bool canDelete(const GeoDataFeature &feature);
0034     GeoDataDocument* rootDocument( GeoDataObject *object ) const;
0035     GeoDataFeature* findFeature( GeoDataFeature* feature, const QString& id ) const;
0036     GeoDataAnimatedUpdate* m_animatedUpdate;
0037     QList<GeoDataFeature*> m_deletedObjects;
0038     GeoDataDocument* m_rootDocument;
0039     bool m_playing;
0040 };
0041 
0042 }
0043 #endif