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

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2010 Utku Aydın <utkuaydin34@gmail.com>
0004 //
0005 
0006 #ifndef OPENDESKTOPPLUGIN_H
0007 #define OPENDESKTOPPLUGIN_H
0008 
0009 #include "AbstractDataPlugin.h"
0010 #include "DialogConfigurationInterface.h"
0011 
0012 namespace Ui {
0013     class OpenDesktopConfigWidget;
0014 }
0015  
0016 namespace Marble {
0017 
0018 const int defaultItemsOnScreen = 15;
0019  
0020 class OpenDesktopPlugin : public AbstractDataPlugin, public DialogConfigurationInterface
0021 {
0022 
0023     Q_OBJECT
0024     Q_PLUGIN_METADATA(IID "org.kde.marble.OpenDesktopPlugin")
0025 
0026     Q_INTERFACES(Marble::RenderPluginInterface)
0027     Q_INTERFACES(Marble::DialogConfigurationInterface)
0028 
0029     MARBLE_PLUGIN(OpenDesktopPlugin)
0030  
0031  public:
0032     OpenDesktopPlugin();
0033 
0034     explicit OpenDesktopPlugin( const MarbleModel *marbleModel );
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 description() const override;
0047 
0048     QString copyrightYears() const override;
0049 
0050     QVector<PluginAuthor> pluginAuthors() const override;
0051 
0052     QIcon icon() const override;
0053 
0054     QDialog *configDialog() override;
0055 
0056     QHash<QString,QVariant> settings() const override;
0057 
0058     void setSettings( const QHash<QString,QVariant> &settings ) override;
0059 
0060 protected:
0061     bool eventFilter(QObject *object, QEvent *event) override;
0062 
0063 private Q_SLOTS:
0064     void readSettings();
0065 
0066     void writeSettings();
0067  
0068  private:
0069     QDialog * m_configDialog;
0070     Ui::OpenDesktopConfigWidget * m_uiConfigWidget;
0071 };
0072  
0073 }
0074  
0075 #endif // OPENDESKTOPPLUGIN_H