File indexing completed on 2024-04-14 03:47:59
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2011 Guillaume Martres <smarter@ubuntu.com> 0004 // SPDX-FileCopyrightText: 2011, 2012 Bernhard Beschow <bbeschow@cs.tu-berlin.de> 0005 // 0006 0007 #ifndef PLACEMARKPOSITIONPROVIDERPLUGIN_H 0008 #define PLACEMARKPOSITIONPROVIDERPLUGIN_H 0009 0010 #include "PositionProviderPlugin.h" 0011 0012 #include "GeoDataCoordinates.h" 0013 #include "GeoDataAccuracy.h" 0014 0015 #include <QDateTime> 0016 0017 namespace Marble 0018 { 0019 0020 class GeoDataPlacemark; 0021 class MarbleModel; 0022 0023 class PlacemarkPositionProviderPlugin: public PositionProviderPlugin 0024 { 0025 Q_OBJECT 0026 Q_INTERFACES( Marble::PositionProviderPluginInterface ) 0027 0028 public: 0029 explicit PlacemarkPositionProviderPlugin( MarbleModel *marbleModel, QObject* parent=nullptr ); 0030 0031 QString name() const override; 0032 QString nameId() const override; 0033 QString guiString() const override; 0034 QString version() const override; 0035 QString description() const override; 0036 QString copyrightYears() const override; 0037 QVector<PluginAuthor> pluginAuthors() const override; 0038 QIcon icon() const override; 0039 void initialize() override; 0040 bool isInitialized() const override; 0041 0042 PositionProviderPlugin *newInstance() const override; 0043 0044 PositionProviderStatus status() const override; 0045 GeoDataCoordinates position() const override; 0046 GeoDataAccuracy accuracy() const override; 0047 qreal speed() const override; 0048 qreal direction() const override; 0049 QDateTime timestamp() const override; 0050 0051 private: 0052 MarbleModel *const m_marbleModel; 0053 const GeoDataPlacemark *m_placemark; 0054 GeoDataCoordinates m_coordinates; 0055 QDateTime m_timestamp; 0056 qreal m_speed; 0057 qreal m_direction; 0058 0059 PositionProviderStatus m_status; 0060 GeoDataAccuracy m_accuracy; 0061 bool m_isInitialized; 0062 0063 private Q_SLOTS: 0064 void setPlacemark( const GeoDataPlacemark *placemark ); 0065 0066 void updatePosition(); 0067 }; 0068 0069 } 0070 0071 #endif // PLACEMARKPOSITIONPROVIDERPLUGIN_H