File indexing completed on 2024-05-12 15:31:19
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2009 Bastian Holst <bastianholst@gmx.de> 0004 // 0005 0006 #ifndef ABSTRACTWEATHERSERVICE_H 0007 #define ABSTRACTWEATHERSERVICE_H 0008 0009 #include <QObject> 0010 #include <QStringList> 0011 0012 class QUrl; 0013 0014 namespace Marble 0015 { 0016 0017 class AbstractDataPluginItem; 0018 class GeoDataLatLonAltBox; 0019 class MarbleModel; 0020 class MarbleWidget; 0021 0022 class AbstractWeatherService : public QObject 0023 { 0024 Q_OBJECT 0025 0026 public: 0027 explicit AbstractWeatherService( const MarbleModel *model, QObject *parent ); 0028 ~AbstractWeatherService() override; 0029 void setMarbleWidget( MarbleWidget* widget ); 0030 0031 public Q_SLOTS: 0032 virtual void setFavoriteItems( const QStringList& favorite ); 0033 QStringList favoriteItems() const; 0034 0035 virtual void getAdditionalItems( const GeoDataLatLonAltBox& box, 0036 qint32 number = 10 ) = 0; 0037 virtual void getItem( const QString &id ) = 0; 0038 virtual void parseFile( const QByteArray& file ); 0039 0040 Q_SIGNALS: 0041 void requestedDownload( const QUrl& url, const QString& type, AbstractDataPluginItem *item ); 0042 void createdItems( const QList<AbstractDataPluginItem*>& items ); 0043 void downloadDescriptionFileRequested( const QUrl& ); 0044 0045 protected: 0046 const MarbleModel* marbleModel() const; 0047 MarbleWidget* marbleWidget(); 0048 0049 private: 0050 const MarbleModel *const m_marbleModel; 0051 QStringList m_favoriteItems; 0052 MarbleWidget* m_marbleWidget; 0053 }; 0054 0055 } // namespace Marble 0056 0057 #endif // ABSTRACTWEATHERSERVICE_H