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 };