File indexing completed on 2024-05-12 15:31:21
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2009 Bastian Holst <bastianholst@gmx.de> 0004 // 0005 0006 #ifndef WEATHERPLUGIN_H 0007 #define WEATHERPLUGIN_H 0008 0009 #include "AbstractDataPlugin.h" 0010 #include "DialogConfigurationInterface.h" 0011 0012 // Qt 0013 #include <QHash> 0014 #include <QIcon> 0015 0016 namespace Ui 0017 { 0018 class WeatherConfigWidget; 0019 } 0020 0021 namespace Marble 0022 { 0023 0024 class WeatherPlugin : public AbstractDataPlugin, public DialogConfigurationInterface 0025 { 0026 Q_OBJECT 0027 Q_PLUGIN_METADATA(IID "org.kde.marble.WeatherPlugin") 0028 Q_INTERFACES( Marble::RenderPluginInterface ) 0029 Q_INTERFACES( Marble::DialogConfigurationInterface ) 0030 MARBLE_PLUGIN( WeatherPlugin ) 0031 0032 public: 0033 WeatherPlugin(); 0034 0035 explicit WeatherPlugin( const MarbleModel *marbleModel ); 0036 0037 ~WeatherPlugin() override; 0038 0039 void initialize() override; 0040 0041 QString name() const override; 0042 0043 QString guiString() const override; 0044 0045 QString nameId() const override; 0046 0047 QString version() const override; 0048 0049 QString description() const override; 0050 0051 QString copyrightYears() const override; 0052 0053 QVector<PluginAuthor> pluginAuthors() const override; 0054 0055 QString aboutDataText() const override; 0056 0057 QIcon icon() const override; 0058 0059 QDialog *configDialog() override; 0060 0061 QHash<QString,QVariant> settings() const override; 0062 0063 void setSettings( const QHash<QString,QVariant> &settings ) override; 0064 0065 protected: 0066 bool eventFilter(QObject *object, QEvent *event) override; 0067 0068 private Q_SLOTS: 0069 void readSettings(); 0070 void writeSettings(); 0071 void updateItemSettings(); 0072 void favoriteItemsChanged( const QStringList& favoriteItems ) override; 0073 0074 Q_SIGNALS: 0075 void changedSettings(); 0076 0077 private: 0078 void updateSettings(); 0079 0080 quint32 m_updateInterval; 0081 const QIcon m_icon; 0082 QDialog * m_configDialog; 0083 Ui::WeatherConfigWidget * ui_configWidget; 0084 0085 QHash<QString,QVariant> m_settings; 0086 }; 0087 0088 } 0089 0090 #endif // WEATHERPLUGIN_H