File indexing completed on 2024-05-05 03:50:56

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