File indexing completed on 2024-03-24 03:52:12
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2014 Sanjiban Bairagya <sanjiban22393@gmail.com> 0004 // 0005 0006 #ifndef ANIMATEDUPDATETRACK_H 0007 #define ANIMATEDUPDATETRACK_H 0008 0009 #include <QDateTime> 0010 #include <QTimer> 0011 0012 namespace Marble 0013 { 0014 0015 class GeoDataFeature; 0016 class GeoDataContainer; 0017 class GeoDataPlacemark; 0018 class PlaybackAnimatedUpdateItem; 0019 0020 class AnimatedUpdateTrack : public QObject 0021 { 0022 Q_OBJECT 0023 0024 public: 0025 explicit AnimatedUpdateTrack( PlaybackAnimatedUpdateItem* item ); 0026 void setDelayBeforeTrackStarts( double delay ); 0027 double delayBeforeTrackStarts() const; 0028 void play(); 0029 void pause(); 0030 void seek( double position ); 0031 void stop(); 0032 void setPaused( bool ); 0033 0034 Q_SIGNALS: 0035 void balloonHidden(); 0036 void balloonShown( GeoDataPlacemark* ); 0037 void updated( GeoDataFeature* ); 0038 void added( GeoDataContainer *parent, GeoDataFeature *feature, int row ); 0039 void removed( const GeoDataFeature *feature ); 0040 0041 public Q_SLOTS: 0042 void playSlot(); 0043 0044 private: 0045 PlaybackAnimatedUpdateItem* m_item; 0046 QDateTime m_playTime; 0047 QDateTime m_pauseTime; 0048 double m_delayBeforeTrackStarts; 0049 double m_progress; 0050 QTimer m_timer; 0051 bool m_paused; 0052 }; 0053 } 0054 #endif