File indexing completed on 2024-05-19 05:37:50

0001 /*
0002     SPDX-FileCopyrightText: 2009 Petri Damstén <damu@iki.fi>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QTimer>
0010 
0011 #include <Plasma5Support/DataEngine>
0012 
0013 #include "geolocationprovider.h"
0014 
0015 class GeolocationProvider;
0016 
0017 class Geolocation : public Plasma5Support::DataEngine
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     Geolocation(QObject *parent);
0023     ~Geolocation() override;
0024     virtual void init();
0025     QStringList sources() const override;
0026 
0027 protected:
0028     bool sourceRequestEvent(const QString &name) override;
0029     bool updateSourceEvent(const QString &name) override;
0030     bool updatePlugins(GeolocationProvider::UpdateTriggers triggers);
0031 
0032 protected Q_SLOTS:
0033     void networkStatusChanged(bool isOnline);
0034     void pluginAvailabilityChanged(GeolocationProvider *provider);
0035     void pluginUpdated();
0036     void actuallySetData();
0037 
0038 private:
0039     Data m_data;
0040     EntryAccuracy m_accuracy;
0041     QList<GeolocationProvider *> m_plugins;
0042     QTimer m_updateTimer;
0043     QTimer m_networkChangedTimer;
0044 };