File indexing completed on 2024-04-28 03:50:08

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2012 Dennis Nienhüser <nienhueser@kde.org>
0004 //
0005 
0006 #ifndef WLOCATE_POSITION_PROVIDER_PLUGIN_H
0007 #define WLOCATE_POSITION_PROVIDER_PLUGIN_H
0008 
0009 #include "PositionProviderPlugin.h"
0010 
0011 namespace Marble
0012 {
0013 
0014 class WlocatePositionProviderPluginPrivate;
0015 
0016 class WlocatePositionProviderPlugin: public PositionProviderPlugin
0017 {
0018     Q_OBJECT
0019     Q_PLUGIN_METADATA(IID "org.kde.marble.WlocatePositionProviderPlugin")
0020     Q_INTERFACES( Marble::PositionProviderPluginInterface )
0021 
0022 public:
0023     WlocatePositionProviderPlugin();
0024     ~WlocatePositionProviderPlugin() override;
0025 
0026     // Implementing PluginInterface
0027     QString name() const override;
0028     QString nameId() const override;
0029     QString guiString() const override;
0030     QString version() const override;
0031     QString description() const override;
0032     QString copyrightYears() const override;
0033     QVector<PluginAuthor> pluginAuthors() const override;
0034     QIcon icon() const override;
0035     void initialize() override;
0036     bool isInitialized() const override;
0037 
0038     // Implementing PositionProviderPlugin
0039     PositionProviderPlugin * newInstance() const override;
0040 
0041     // Implementing PositionProviderPluginInterface
0042     PositionProviderStatus status() const override;
0043     GeoDataCoordinates position() const override;
0044     qreal speed() const override;
0045     qreal direction() const override;
0046     GeoDataAccuracy accuracy() const override;
0047     QDateTime timestamp() const override;
0048 
0049 private Q_SLOTS:
0050     void update();
0051 
0052     void handleWlocateResult();
0053 
0054 private:
0055     WlocatePositionProviderPluginPrivate* const d;
0056 
0057 };
0058 
0059 }
0060 
0061 #endif // WLOCATE_POSITION_PROVIDER_PLUGIN_H