File indexing completed on 2024-04-21 03:50:05

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2009 Eckhart Wörner <ewoerner@kde.org>
0004 //
0005 
0006 #ifndef GEOCLUEPOSITIONPROVIDERPLUGIN_H
0007 #define GEOCLUEPOSITIONPROVIDERPLUGIN_H
0008 
0009 #include "GeoCute/Position.h"
0010 #include "GeoCute/Status.h"
0011 
0012 #include "PositionProviderPlugin.h"
0013 
0014 
0015 
0016 namespace GeoCute
0017 {
0018     class PositionProvider;
0019 }
0020 
0021 namespace Marble
0022 {
0023 
0024 class GeoCluePositionProviderPlugin: public PositionProviderPlugin
0025 {
0026     Q_OBJECT
0027     Q_PLUGIN_METADATA(IID "org.kde.marble.GeoCluePositionProviderPlugin")
0028     Q_INTERFACES( Marble::PositionProviderPluginInterface )
0029 
0030  public:
0031     GeoCluePositionProviderPlugin();
0032     virtual ~GeoCluePositionProviderPlugin();
0033 
0034     virtual QString name() const;
0035     virtual QString nameId() const;
0036     virtual QString guiString() const;
0037     virtual QString description() const;
0038     virtual QIcon icon() const;
0039     virtual void initialize();
0040     virtual bool isInitialized() const;
0041 
0042     virtual PositionProviderPlugin * newInstance() const;
0043 
0044     virtual PositionProviderStatus status() const;
0045     virtual GeoDataCoordinates position() const;
0046     virtual GeoDataAccuracy accuracy() const;
0047     
0048  private:
0049     GeoCute::PositionProvider* m_positionProvider;
0050     PositionProviderStatus m_status;
0051     GeoDataCoordinates m_position;
0052     GeoDataAccuracy m_accuracy;
0053     
0054  private Q_SLOTS:
0055     void updatePosition(GeoCute::Position newPosition);
0056     void updateStatus(GeoCute::Status newStatus);
0057 };
0058 
0059 }
0060 
0061 
0062 
0063 #endif