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

marble

  • sources
  • kde-4.12
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • earthquake
EarthquakePlugin.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 2011 Utku Aydın <utkuaydin34@gmail.com>
9 //
10 
11 #include "EarthquakePlugin.h"
12 #include "EarthquakeModel.h"
13 #include "ui_EarthquakeConfigWidget.h"
14 
15 #include <QPushButton>
16 #include <QSlider>
17 
18 #include "MarbleModel.h"
19 
20 namespace Marble {
21 
22 EarthquakePlugin::EarthquakePlugin()
23  : AbstractDataPlugin( 0 ),
24  m_ui( 0 ),
25  m_configDialog( 0 )
26 {
27 }
28 
29 EarthquakePlugin::EarthquakePlugin( const MarbleModel *marbleModel )
30  : AbstractDataPlugin( marbleModel ),
31  m_ui( 0 ),
32  m_configDialog( 0 ),
33  m_minMagnitude( 0.0 ),
34  m_startDate( QDateTime::fromString( "2006-02-04", "yyyy-MM-dd" ) ),
35  m_endDate( marbleModel->clockDateTime() ),
36  m_maximumNumberOfItems( 100 )
37 {
38  setEnabled( true ); // Plugin is enabled by default
39  setVisible( false ); // Plugin is invisible by default
40  connect( this, SIGNAL(settingsChanged(QString)),
41  this, SLOT(updateModel()) );
42 }
43 
44 void EarthquakePlugin::initialize()
45 {
46  EarthquakeModel *model = new EarthquakeModel( marbleModel(), this );
47  setModel( model );
48  setNumberOfItems( 20 );
49 }
50 
51 QString EarthquakePlugin::name() const
52 {
53  return tr( "Earthquakes" );
54 }
55 
56 QString EarthquakePlugin::guiString() const
57 {
58  return tr( "&Earthquakes" );
59 }
60 
61 QString EarthquakePlugin::nameId() const
62 {
63  return "earthquake";
64 }
65 
66 QString EarthquakePlugin::version() const
67 {
68  return "1.0";
69 }
70 
71 QString EarthquakePlugin::description() const
72 {
73  return tr( "Shows earthquakes on the map." );
74 }
75 
76 QString EarthquakePlugin::copyrightYears() const
77 {
78  return "2010, 2011";
79 }
80 
81 QList<PluginAuthor> EarthquakePlugin::pluginAuthors() const
82 {
83  return QList<PluginAuthor>()
84  << PluginAuthor( QString::fromUtf8( "Utku Aydın" ), "utkuaydin34@gmail.com" )
85  << PluginAuthor( QString::fromUtf8( "Daniel Marth" ), "danielmarth@gmx.at" );
86 }
87 
88 QIcon EarthquakePlugin::icon() const
89 {
90  return QIcon(":/icons/earthquake.png");
91 }
92 
93 QDialog *EarthquakePlugin::configDialog()
94 {
95  if ( !m_configDialog ) {
96  // Initializing configuration dialog
97  m_configDialog = new QDialog();
98  m_ui = new Ui::EarthquakeConfigWidget;
99  m_ui->setupUi( m_configDialog );
100  m_ui->m_numResults->setRange( 1, m_maximumNumberOfItems );
101  readSettings();
102  connect( m_ui->m_buttonBox, SIGNAL(accepted()),
103  SLOT(writeSettings()) );
104  connect( m_ui->m_buttonBox, SIGNAL(rejected()),
105  SLOT(readSettings()) );
106  connect( m_ui->m_buttonBox->button( QDialogButtonBox::Reset ), SIGNAL(clicked()),
107  SLOT(restoreDefaultSettings()) );
108  QPushButton *applyButton = m_ui->m_buttonBox->button( QDialogButtonBox::Apply );
109  connect( applyButton, SIGNAL(clicked()),
110  SLOT(writeSettings()) );
111  connect( m_ui->m_endDate, SIGNAL(dateTimeChanged(QDateTime)),
112  SLOT(validateDateRange()) );
113  connect( this, SIGNAL(settingsChanged(QString)),
114  this, SLOT(readSettings()) );
115  }
116  return m_configDialog;
117 }
118 
119 QHash<QString,QVariant> EarthquakePlugin::settings() const
120 {
121  QHash<QString, QVariant> settings = AbstractDataPlugin::settings();
122 
123  settings.insert( "numResults", numberOfItems() );
124  settings.insert( "minMagnitude", m_minMagnitude );
125  settings.insert( "startDate", m_startDate );
126  settings.insert( "endDate", m_endDate );
127  settings.insert( "maximumNumberOfItems", m_maximumNumberOfItems );
128 
129  return settings;
130 }
131 
132 void EarthquakePlugin::setSettings( const QHash<QString,QVariant> &settings )
133 {
134  AbstractDataPlugin::setSettings( settings );
135 
136  setNumberOfItems( settings.value( "numResults", 20 ).toInt() );
137  m_minMagnitude = settings.value( "minMagnitude", 0.0 ).toReal();
138  m_startDate = settings.value( "startDate", QDateTime::fromString( "2006-02-04", "yyyy-MM-dd" ) ).toDateTime();
139  m_endDate = settings.value( "endDate", marbleModel()->clockDateTime() ).toDateTime();
140  m_maximumNumberOfItems = settings.value( "maximumNumberOfItems", m_maximumNumberOfItems ).toInt();
141 
142  emit settingsChanged( nameId() );
143 }
144 
145 void EarthquakePlugin::readSettings()
146 {
147  Q_ASSERT( m_configDialog );
148 
149  m_ui->m_numResults->setValue( numberOfItems() );
150  m_ui->m_minMagnitude->setValue( m_minMagnitude );
151  m_ui->m_startDate->setDateTime( m_startDate );
152  m_ui->m_endDate->setDateTime( m_endDate );
153  m_ui->m_startDate->setMaximumDateTime( m_ui->m_endDate->dateTime() );
154 }
155 
156 void EarthquakePlugin::writeSettings()
157 {
158  Q_ASSERT( m_configDialog );
159 
160  setNumberOfItems( m_ui->m_numResults->value() );
161  m_minMagnitude = m_ui->m_minMagnitude->value();
162  m_startDate = m_ui->m_startDate->dateTime();
163  m_endDate = m_ui->m_endDate->dateTime();
164 
165  emit settingsChanged( nameId() );
166 }
167 
168 void EarthquakePlugin::updateModel()
169 {
170  if( model() ) {
171  EarthquakeModel *const earthquakeModel = static_cast<EarthquakeModel *>( model() );
172  earthquakeModel->setMinMagnitude( m_minMagnitude );
173  earthquakeModel->setStartDate( m_startDate );
174  earthquakeModel->setEndDate( m_endDate );
175  earthquakeModel->clear();
176  }
177 }
178 
179 void EarthquakePlugin::validateDateRange()
180 {
181  Q_ASSERT( m_configDialog );
182  if( m_ui->m_startDate->dateTime() > m_ui->m_endDate->dateTime() ) {
183  m_ui->m_startDate->setDateTime( m_ui->m_endDate->dateTime() );
184  }
185  m_ui->m_startDate->setMaximumDateTime( m_ui->m_endDate->dateTime() );
186 }
187 
188 }
189 
190 Q_EXPORT_PLUGIN2( EarthquakePlugin, Marble::EarthquakePlugin )
191 
192 #include "EarthquakePlugin.moc"
Marble::AbstractDataPlugin::setNumberOfItems
void setNumberOfItems(quint32 number)
Set the number of items to be shown at the same time.
Definition: AbstractDataPlugin.cpp:151
QDialog
Marble::EarthquakePlugin
Definition: EarthquakePlugin.h:27
MarbleModel.h
This file contains the headers for MarbleModel.
Marble::PluginAuthor
Definition: PluginInterface.h:28
Marble::RenderPlugin::restoreDefaultSettings
void restoreDefaultSettings()
Passes an empty set of settings to the plugin.
Definition: RenderPlugin.cpp:214
Marble::AbstractDataPlugin
An abstract class for plugins that show data that has a geo coordinate.
Definition: AbstractDataPlugin.h:45
Marble::EarthquakePlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: EarthquakePlugin.cpp:51
Marble::EarthquakePlugin::description
QString description() const
Returns a user description of the plugin.
Definition: EarthquakePlugin.cpp:71
Marble::EarthquakePlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: EarthquakePlugin.cpp:81
Marble::AbstractDataPlugin::model
AbstractDataPluginModel * model() const
Definition: AbstractDataPlugin.cpp:124
Marble::AbstractDataPlugin::numberOfItems
quint32 numberOfItems() const
Marble::AbstractDataPluginModel::clear
void clear()
Removes all items.
Definition: AbstractDataPluginModel.cpp:662
Marble::EarthquakeModel::setMinMagnitude
void setMinMagnitude(double minMagnitude)
Definition: EarthquakeModel.cpp:43
Marble::RenderPlugin::settingsChanged
void settingsChanged(QString nameId)
This signal is emitted if the settings of the RenderPlugin changed.
Marble::EarthquakePlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: EarthquakePlugin.cpp:61
EarthquakePlugin.h
Marble::EarthquakePlugin::settings
virtual QHash< QString, QVariant > settings() const
Definition: EarthquakePlugin.cpp:119
EarthquakeModel.h
Marble::RenderPlugin::setVisible
void setVisible(bool visible)
settting visible
Definition: RenderPlugin.cpp:149
Marble::AbstractDataPlugin::setModel
void setModel(AbstractDataPluginModel *model)
Set the model of the plugin.
Definition: AbstractDataPlugin.cpp:129
Q_EXPORT_PLUGIN2
#define Q_EXPORT_PLUGIN2(a, b)
Definition: marble_export.h:34
Marble::EarthquakePlugin::setSettings
virtual void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the item.
Definition: EarthquakePlugin.cpp:132
Marble::EarthquakePlugin::version
QString version() const
Definition: EarthquakePlugin.cpp:66
Marble::EarthquakePlugin::readSettings
void readSettings()
Definition: EarthquakePlugin.cpp:145
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:96
Marble::RenderPlugin::setEnabled
void setEnabled(bool enabled)
settting enabled
Definition: RenderPlugin.cpp:137
Marble::EarthquakePlugin::writeSettings
void writeSettings()
Definition: EarthquakePlugin.cpp:156
Marble::EarthquakePlugin::copyrightYears
QString copyrightYears() const
Definition: EarthquakePlugin.cpp:76
Marble::EarthquakePlugin::EarthquakePlugin
EarthquakePlugin()
Definition: EarthquakePlugin.cpp:22
Marble::EarthquakeModel::setStartDate
void setStartDate(const QDateTime &startDate)
Definition: EarthquakeModel.cpp:48
Marble::EarthquakeModel::setEndDate
void setEndDate(const QDateTime &endDate)
Definition: EarthquakeModel.cpp:53
Marble::EarthquakePlugin::initialize
virtual void initialize()
Definition: EarthquakePlugin.cpp:44
Marble::EarthquakePlugin::updateModel
void updateModel()
Definition: EarthquakePlugin.cpp:168
Marble::EarthquakePlugin::configDialog
QDialog * configDialog()
Returns a pointer to the configuration dialog of the plugin.
Definition: EarthquakePlugin.cpp:93
Marble::RenderPlugin::marbleModel
const MarbleModel * marbleModel() const
Access to the MarbleModel.
Definition: RenderPlugin.cpp:81
Marble::EarthquakeModel
Definition: EarthquakeModel.h:20
Marble::RenderPlugin::settings
virtual QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: RenderPlugin.cpp:183
Marble::EarthquakePlugin::guiString
QString guiString() const
String that should be displayed in GUI.
Definition: EarthquakePlugin.cpp:56
Marble::RenderPlugin::setSettings
virtual void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: RenderPlugin.cpp:193
Marble::EarthquakePlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: EarthquakePlugin.cpp:88
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:49 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
  • kstars
  • libkdeedu
  •   keduvocdocument
  • 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