• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • opendesktop
OpenDesktopPlugin.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2010 Utku Aydın <utkuaydin34@gmail.com>
9 // Copyright 2012 Illya Kovalevskyy <illya.kovalevskyy@gmail.com>
10 //
11 
12 #include "OpenDesktopPlugin.h"
13 #include "OpenDesktopModel.h"
14 #include "MarbleWidget.h"
15 
16 #include "ui_OpenDesktopConfigWidget.h"
17 
18 #include <QPushButton>
19 
20 using namespace Marble;
21 
22 OpenDesktopPlugin::OpenDesktopPlugin()
23  : AbstractDataPlugin( 0 ),
24  m_configDialog( 0 ),
25  m_uiConfigWidget( 0 )
26 {
27 }
28 
29 OpenDesktopPlugin::OpenDesktopPlugin( const MarbleModel *marbleModel )
30  : AbstractDataPlugin( marbleModel ),
31  m_configDialog( 0 ),
32  m_uiConfigWidget( 0 )
33 {
34  setEnabled( true ); // Plugin is enabled by default
35  setVisible( false ); // Plugin is invisible by default
36 }
37 
38 void OpenDesktopPlugin::initialize()
39 {
40  setModel( new OpenDesktopModel( marbleModel(), this ) );
41  setNumberOfItems( defaultItemsOnScreen ); // Setting the number of items on the screen.
42 }
43 
44 QString OpenDesktopPlugin::name() const
45 {
46  return tr( "OpenDesktop Items" );
47 }
48 
49 QString OpenDesktopPlugin::guiString() const
50 {
51  return tr( "&OpenDesktop Community" );
52 }
53 
54 QString OpenDesktopPlugin::nameId() const
55 {
56  return "opendesktop";
57 }
58 
59 QString OpenDesktopPlugin::version() const
60 {
61  return "1.0";
62 }
63 
64 QString OpenDesktopPlugin::description() const
65 {
66  return tr( "Shows OpenDesktop users' avatars and some extra information about them on the map." );
67 }
68 
69 QString OpenDesktopPlugin::copyrightYears() const
70 {
71  return "2010";
72 }
73 
74 QList<PluginAuthor> OpenDesktopPlugin::pluginAuthors() const
75 {
76  return QList<PluginAuthor>()
77  << PluginAuthor( QString::fromUtf8( "Utku Aydin" ), "utkuaydin34@gmail.com" );
78 }
79 
80 QIcon OpenDesktopPlugin::icon() const
81 {
82  return QIcon(":/icons/social.png");
83 }
84 
85 QDialog *OpenDesktopPlugin::configDialog()
86 {
87  if ( !m_configDialog ) {
88  m_configDialog = new QDialog();
89  m_uiConfigWidget = new Ui::OpenDesktopConfigWidget;
90  m_uiConfigWidget->setupUi( m_configDialog );
91  readSettings();
92 
93  connect( m_uiConfigWidget->m_buttonBox, SIGNAL(accepted()),
94  SLOT(writeSettings()) );
95  connect( m_uiConfigWidget->m_buttonBox, SIGNAL(rejected()),
96  SLOT(readSettings()) );
97  QPushButton *applyButton = m_uiConfigWidget->m_buttonBox->button(
98  QDialogButtonBox::Apply );
99  connect( applyButton, SIGNAL(clicked()),
100  this, SLOT(writeSettings()) );
101  }
102 
103  return m_configDialog;
104 }
105 
106 QHash<QString,QVariant> OpenDesktopPlugin::settings() const
107 {
108  QHash<QString, QVariant> settings = AbstractDataPlugin::settings();
109 
110  settings.insert( "itemsOnScreen", numberOfItems() );
111 
112  return settings;
113 }
114 
115 bool OpenDesktopPlugin::eventFilter(QObject *object, QEvent *event)
116 {
117  if ( isInitialized() ) {
118  OpenDesktopModel *odModel = qobject_cast<OpenDesktopModel*>( model() );
119  Q_ASSERT(odModel);
120  MarbleWidget* widget = qobject_cast<MarbleWidget*>( object );
121  if ( widget ) {
122  odModel->setMarbleWidget(widget);
123  }
124  }
125 
126  return AbstractDataPlugin::eventFilter( object, event );
127 }
128 
129 void OpenDesktopPlugin::setSettings( const QHash<QString,QVariant> &settings )
130 {
131  AbstractDataPlugin::setSettings( settings );
132 
133  setNumberOfItems( settings.value( "itemsOnScreen", defaultItemsOnScreen ).toInt() );
134 
135  emit settingsChanged( nameId() );
136 }
137 
138 void OpenDesktopPlugin::readSettings()
139 {
140  if ( m_uiConfigWidget ) {
141  m_uiConfigWidget->m_itemsOnScreenSpin->setValue( numberOfItems() );
142  }
143 }
144 
145 void OpenDesktopPlugin::writeSettings()
146 {
147  if ( m_uiConfigWidget ) {
148  setNumberOfItems( m_uiConfigWidget->m_itemsOnScreenSpin->value() );
149  }
150 
151  emit settingsChanged( nameId() );
152 }
153 
154 // Because we want to create a plugin, we have to do the following line.
155 Q_EXPORT_PLUGIN2( OpenDesktopPlugin, Marble::OpenDesktopPlugin )
156 
157 #include "OpenDesktopPlugin.moc"
Marble::AbstractDataPlugin::setNumberOfItems
void setNumberOfItems(quint32 number)
Set the number of items to be shown at the same time.
Definition: AbstractDataPlugin.cpp:156
Marble::OpenDesktopPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: OpenDesktopPlugin.cpp:44
QEvent
QHash::insert
iterator insert(const Key &key, const T &value)
Marble::OpenDesktopModel::setMarbleWidget
void setMarbleWidget(MarbleWidget *widget)
Definition: OpenDesktopModel.cpp:38
Marble::RenderPlugin::eventFilter
bool eventFilter(QObject *, QEvent *)
Definition: RenderPlugin.cpp:216
OpenDesktopPlugin.h
Marble::PluginAuthor
Definition: PluginInterface.h:28
Marble::OpenDesktopPlugin
Definition: OpenDesktopPlugin.h:25
Marble::OpenDesktopPlugin::copyrightYears
QString copyrightYears() const
Definition: OpenDesktopPlugin.cpp:69
Marble::AbstractDataPlugin
An abstract class for plugins that show data that has a geo coordinate.
Definition: AbstractDataPlugin.h:45
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
Marble::OpenDesktopPlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: OpenDesktopPlugin.cpp:80
Marble::OpenDesktopPlugin::version
QString version() const
Definition: OpenDesktopPlugin.cpp:59
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:104
Marble::OpenDesktopPlugin::configDialog
QDialog * configDialog()
Returns a pointer to the configuration dialog of the plugin.
Definition: OpenDesktopPlugin.cpp:85
Marble::AbstractDataPlugin::numberOfItems
quint32 numberOfItems() const
Marble::AbstractDataPlugin::isInitialized
bool isInitialized() const
Definition: AbstractDataPlugin.cpp:81
QString::fromUtf8
QString fromUtf8(const char *str, int size)
Marble::OpenDesktopPlugin::settings
QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: OpenDesktopPlugin.cpp:106
Marble::OpenDesktopPlugin::eventFilter
bool eventFilter(QObject *object, QEvent *event)
Definition: OpenDesktopPlugin.cpp:115
QHash< QString, QVariant >
QObject
Marble::RenderPlugin::settingsChanged
void settingsChanged(QString nameId)
This signal is emitted if the settings of the RenderPlugin changed.
OpenDesktopModel.h
Marble::RenderPlugin::setVisible
void setVisible(bool visible)
settting visible
Definition: RenderPlugin.cpp:151
Marble::OpenDesktopPlugin::setSettings
void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: OpenDesktopPlugin.cpp:129
QString
QList
Marble::AbstractDataPlugin::setModel
void setModel(AbstractDataPluginModel *model)
Set the model of the plugin.
Definition: AbstractDataPlugin.cpp:134
Q_EXPORT_PLUGIN2
#define Q_EXPORT_PLUGIN2(a, b)
Definition: marble_export.h:34
QHash::value
const T value(const Key &key) const
Marble::OpenDesktopPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: OpenDesktopPlugin.cpp:64
Marble::OpenDesktopPlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: OpenDesktopPlugin.cpp:54
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:97
Marble::RenderPlugin::setEnabled
void setEnabled(bool enabled)
settting enabled
Definition: RenderPlugin.cpp:139
Marble::defaultItemsOnScreen
const int defaultItemsOnScreen
Definition: OpenDesktopPlugin.h:23
Marble::OpenDesktopPlugin::guiString
QString guiString() const
String that should be displayed in GUI.
Definition: OpenDesktopPlugin.cpp:49
Marble::OpenDesktopPlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: OpenDesktopPlugin.cpp:74
Marble::OpenDesktopPlugin::OpenDesktopPlugin
OpenDesktopPlugin()
Definition: OpenDesktopPlugin.cpp:22
QDialog
MarbleWidget.h
This file contains the headers for MarbleWidget.
QPushButton
Marble::OpenDesktopPlugin::initialize
virtual void initialize()
Definition: OpenDesktopPlugin.cpp:38
Marble::RenderPlugin::marbleModel
const MarbleModel * marbleModel() const
Access to the MarbleModel.
Definition: RenderPlugin.cpp:83
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Marble::RenderPlugin::settings
virtual QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: RenderPlugin.cpp:185
Marble::AbstractDataPlugin::model
AbstractDataPluginModel * model()
Definition: AbstractDataPlugin.cpp:124
Marble::OpenDesktopModel
Definition: OpenDesktopModel.h:22
Marble::RenderPlugin::setSettings
virtual void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: RenderPlugin.cpp:195
QIcon
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:41 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal