File indexing completed on 2024-05-05 03:50:36
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2011 Daniel Marth <danielmarth@gmx.at> 0004 // SPDX-FileCopyrightText: 2012 Bernhard Beschow <bbeschow@cs.tu-berlin.de> 0005 // 0006 0007 #ifndef QT_POSITIONING_POSITION_PROVIDER_PLUGIN_H 0008 #define QT_POSITIONING_POSITION_PROVIDER_PLUGIN_H 0009 0010 #include "PositionProviderPlugin.h" 0011 0012 #include <QGeoPositionInfo> 0013 0014 namespace Marble 0015 { 0016 0017 class QtPositioningPositionProviderPluginPrivate; 0018 0019 class QtPositioningPositionProviderPlugin: public PositionProviderPlugin 0020 { 0021 Q_OBJECT 0022 Q_PLUGIN_METADATA(IID "org.kde.marble.QtPositioningPositionProviderPlugin") 0023 Q_INTERFACES( Marble::PositionProviderPluginInterface ) 0024 0025 public: 0026 QtPositioningPositionProviderPlugin(); 0027 ~QtPositioningPositionProviderPlugin() override; 0028 0029 // Implementing PluginInterface 0030 QString name() const override; 0031 QString nameId() const override; 0032 QString guiString() const override; 0033 QString version() const override; 0034 QString description() const override; 0035 QString copyrightYears() const override; 0036 QVector<PluginAuthor> pluginAuthors() const override; 0037 QIcon icon() const override; 0038 void initialize() override; 0039 bool isInitialized() const override; 0040 qreal speed() const override; 0041 qreal direction() const override; 0042 QDateTime timestamp() const override; 0043 0044 // Implementing PositionProviderPlugin 0045 PositionProviderPlugin * newInstance() const override; 0046 0047 // Implementing PositionProviderPluginInterface 0048 PositionProviderStatus status() const override; 0049 GeoDataCoordinates position() const override; 0050 GeoDataAccuracy accuracy() const override; 0051 0052 private Q_SLOTS: 0053 /** Regular (each second) position and status update */ 0054 void update(); 0055 void update(const QGeoPositionInfo& position); 0056 0057 private: 0058 QtPositioningPositionProviderPluginPrivate* const d; 0059 0060 }; 0061 0062 } 0063 0064 #endif // QT_POSITION_PROVIDER_PLUGIN_H