• 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
  • opencaching
OpenCachingPlugin.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 Daniel Marth <danielmarth@gmx.at>
9 //
10 
11 #include "OpenCachingPlugin.h"
12 #include "OpenCachingModel.h"
13 #include "ui_OpenCachingConfigWidget.h"
14 
15 #include <QPushButton>
16 
17 namespace Marble {
18 
19 OpenCachingPlugin::OpenCachingPlugin()
20  : m_isInitialized( false ),
21  m_configDialog( 0 )
22 {
23  setNameId( "opencaching" );
24  setVersion( "1.0" );
25  setCopyrightYear( 2011 );
26  addAuthor( "Daniel Marth", "danielmarth@gmx.at" );
27  setDataText( tr( "Cache positions by opencaching.de." ) );
28 
29  setEnabled( true ); // Plugin is enabled by default
30  setVisible( false ); // Plugin is invisible by default
31  connect( this, SIGNAL(settingsChanged(QString)),
32  this, SLOT(updateSettings()) );
33 }
34 
35 void OpenCachingPlugin::initialize()
36 {
37  OpenCachingModel *model = new OpenCachingModel( pluginManager(), this );
38  setModel( model );
39  setNumberOfItems( numberOfItemsOnScreen );
40  readSettings();
41  m_isInitialized = true;
42 }
43 
44 bool OpenCachingPlugin::isInitialized() const
45 {
46  return m_isInitialized;
47 }
48 
49 QString OpenCachingPlugin::name() const
50 {
51  return tr( "OpenCaching" );
52 }
53 
54 QString OpenCachingPlugin::guiString() const
55 {
56  return tr( "&OpenCaching" );
57 }
58 
59 QString OpenCachingPlugin::description() const
60 {
61  return tr( "Shows caches from OpenCaching.de on the screen." );
62 }
63 
64 QIcon OpenCachingPlugin::icon() const
65 {
66  return QIcon();
67 }
68 
69 QDialog *OpenCachingPlugin::configDialog()
70 {
71  if ( !m_configDialog ) {
72  // Initializing configuration dialog
73  m_configDialog = new QDialog();
74  m_ui = new Ui::OpenCachingConfigWidget;
75  m_ui->setupUi( m_configDialog );
76  readSettings();
77  connect( m_ui->m_buttonBox, SIGNAL(accepted()),
78  SLOT(writeSettings()) );
79  connect( m_ui->m_buttonBox, SIGNAL(rejected()),
80  SLOT(readSettings()) );
81  connect( m_ui->m_buttonBox->button( QDialogButtonBox::Reset ), SIGNAL(clicked()),
82  SLOT(restoreDefaultSettings()) );
83  QPushButton *applyButton = m_ui->m_buttonBox->button( QDialogButtonBox::Apply );
84  connect( applyButton, SIGNAL(clicked()),
85  SLOT(writeSettings()) );
86  connect( m_ui->m_endDate, SIGNAL(dateTimeChanged(QDateTime)),
87  SLOT(validateDateRange()) );
88  connect( m_ui->m_maxDifficulty, SIGNAL(valueChanged(double)),
89  SLOT(validateDifficultyRange()) );
90  }
91  return m_configDialog;
92 }
93 
94 QHash<QString,QVariant> OpenCachingPlugin::settings() const
95 {
96  return m_settings;
97 }
98 
99 void OpenCachingPlugin::setSettings( QHash<QString,QVariant> settings )
100 {
101  if ( !settings.contains( "numResults" ) ) {
102  settings.insert( "numResults", numberOfItemsOnScreen );
103  }
104  if ( !settings.contains( "maxDistance" ) ) {
105  settings.insert( "maxDistance", 20 );
106  }
107  if ( !settings.contains( "minDfficulty" ) ) {
108  settings.insert( "minDfficulty", 0.0 );
109  }
110  if ( !settings.contains( "maxDifficulty" ) ) {
111  settings.insert( "maxDifficulty", 5.0 );
112  }
113  if ( !settings.contains( "startDate" ) ) {
114  settings.insert( "startDate", QDateTime::fromString( "2006-01-01", "yyyy-MM-dd" ) );
115  }
116  if ( !settings.contains( "endDate" ) ) {
117  settings.insert( "endDate", QDateTime::currentDateTime() );
118  }
119 
120  m_settings = settings;
121  readSettings();
122  emit settingsChanged( nameId() );
123 }
124 
125 void OpenCachingPlugin::readSettings()
126 {
127  if ( !m_configDialog ) {
128  return;
129  }
130 
131  m_ui->m_numResults->setValue( m_settings.value( "numResults" ).toInt() );
132  m_ui->m_minDifficulty->setValue( m_settings.value( "maxDistance" ).toInt() );
133  m_ui->m_minDifficulty->setValue( m_settings.value( "minDifficulty" ).toDouble() );
134  m_ui->m_maxDifficulty->setValue( m_settings.value( "maxDifficulty" ).toDouble() );
135  m_ui->m_startDate->setDateTime( m_settings.value( "startDate" ).toDateTime() );
136  m_ui->m_endDate->setDateTime( m_settings.value( "endDate" ).toDateTime() );
137  m_ui->m_startDate->setMaximumDateTime( m_ui->m_endDate->dateTime() );
138 }
139 
140 void OpenCachingPlugin::writeSettings()
141 {
142  Q_ASSERT( m_configDialog );
143  m_settings.insert( "numResults", m_ui->m_numResults->value() );
144  m_settings.insert( "maxDistance", m_ui->m_maxDistance->value() );
145  m_settings.insert( "minDifficulty", m_ui->m_minDifficulty->value() );
146  m_settings.insert( "maxDifficulty", m_ui->m_maxDifficulty->value() );
147  m_settings.insert( "startDate", m_ui->m_startDate->dateTime() );
148  m_settings.insert( "endDate", m_ui->m_endDate->dateTime() );
149 
150  emit settingsChanged( nameId() );
151 }
152 
153 void OpenCachingPlugin::updateSettings()
154 {
155  OpenCachingModel *model = dynamic_cast<OpenCachingModel *>( this->model() );
156  if( model ) {
157  model = new OpenCachingModel( pluginManager(), this );
158  Q_ASSERT( m_configDialog );
159  model->setNumResults( m_ui->m_numResults->value() );
160  model->setMaxDistance( m_ui->m_maxDistance->value () );
161  model->setMinDifficulty( m_ui->m_minDifficulty->value() );
162  model->setMaxDifficulty( m_ui->m_maxDifficulty->value() );
163  model->setEndDate( m_ui->m_endDate->dateTime() );
164  model->setStartDate( m_ui->m_startDate->dateTime() );
165  setModel( model );
166  }
167 }
168 
169 void OpenCachingPlugin::validateDateRange()
170 {
171  Q_ASSERT( m_configDialog );
172  if( m_ui->m_startDate->dateTime() > m_ui->m_endDate->dateTime() ) {
173  m_ui->m_startDate->setDateTime( m_ui->m_endDate->dateTime() );
174  }
175  m_ui->m_startDate->setMaximumDateTime( m_ui->m_endDate->dateTime() );
176 }
177 
178 void OpenCachingPlugin::validateDifficultyRange()
179 {
180  Q_ASSERT( m_configDialog );
181  if( m_ui->m_minDifficulty->value() > m_ui->m_maxDifficulty->value() ) {
182  m_ui->m_minDifficulty->setValue( m_ui->m_maxDifficulty->value() );
183  }
184  m_ui->m_minDifficulty->setMaximum( m_ui->m_maxDifficulty->value() );
185 }
186 
187 }
188 
189 Q_EXPORT_PLUGIN2( OpenCachingPlugin, Marble::OpenCachingPlugin )
190 
191 #include "OpenCachingPlugin.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::OpenCachingPlugin::configDialog
QDialog * configDialog()
Definition: OpenCachingPlugin.cpp:69
Marble::OpenCachingPlugin::setSettings
virtual void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the item.
Definition: OpenCachingPlugin.cpp:99
Marble::RenderPlugin::restoreDefaultSettings
void restoreDefaultSettings()
Passes an empty set of settings to the plugin.
Definition: RenderPlugin.cpp:214
Marble::OpenCachingPlugin::readSettings
void readSettings()
Definition: OpenCachingPlugin.cpp:125
Marble::OpenCachingPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: OpenCachingPlugin.cpp:49
Marble::OpenCachingPlugin::OpenCachingPlugin
OpenCachingPlugin()
Definition: OpenCachingPlugin.cpp:19
OpenCachingModel.h
Marble::AbstractDataPlugin::model
AbstractDataPluginModel * model() const
Definition: AbstractDataPlugin.cpp:124
Marble::OpenCachingModel::setMinDifficulty
void setMinDifficulty(double minDifficulty)
Definition: OpenCachingModel.cpp:122
Marble::RenderPlugin::settingsChanged
void settingsChanged(QString nameId)
This signal is emitted if the settings of the RenderPlugin changed.
Marble::OpenCachingModel::setMaxDistance
void setMaxDistance(int maxDistance)
Definition: OpenCachingModel.cpp:117
Marble::OpenCachingPlugin::guiString
QString guiString() const
String that should be displayed in GUI.
Definition: OpenCachingPlugin.cpp:54
Marble::OpenCachingModel::setNumResults
void setNumResults(int numResults)
Definition: OpenCachingModel.cpp:112
Marble::OpenCachingModel
Model that manages cache information.
Definition: OpenCachingModel.h:32
Marble::OpenCachingModel::setStartDate
void setStartDate(const QDateTime &startDate)
Definition: OpenCachingModel.cpp:132
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
Marble::PluginInterface::nameId
virtual QString nameId() const =0
Returns the unique name of the plugin.
Marble::OpenCachingPlugin::writeSettings
void writeSettings()
Definition: OpenCachingPlugin.cpp:140
Marble::OpenCachingModel::setEndDate
void setEndDate(const QDateTime &endDate)
Definition: OpenCachingModel.cpp:137
Q_EXPORT_PLUGIN2
#define Q_EXPORT_PLUGIN2(a, b)
Definition: marble_export.h:34
Marble::OpenCachingPlugin
Plugin to display geocaches from opencaching.de on the map.
Definition: OpenCachingPlugin.h:33
Marble::RenderPlugin::setEnabled
void setEnabled(bool enabled)
settting enabled
Definition: RenderPlugin.cpp:137
Marble::OpenCachingPlugin::settings
virtual QHash< QString, QVariant > settings() const
Definition: OpenCachingPlugin.cpp:94
Marble::OpenCachingModel::setMaxDifficulty
void setMaxDifficulty(double maxDifficulty)
Definition: OpenCachingModel.cpp:127
Marble::OpenCachingPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: OpenCachingPlugin.cpp:59
Marble::OpenCachingPlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: OpenCachingPlugin.cpp:64
OpenCachingPlugin.h
Marble::OpenCachingPlugin::initialize
virtual void initialize()
Definition: OpenCachingPlugin.cpp:35
Marble::OpenCachingPlugin::isInitialized
virtual bool isInitialized() const
Definition: OpenCachingPlugin.cpp:44
Marble::OpenCachingPlugin::updateSettings
void updateSettings()
Definition: OpenCachingPlugin.cpp:153
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:51 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