• 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
  • aprs
AprsPlugin.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 Wes Hardaker <hardaker@users.sourceforge.net>
9 //
10 
11 #include "AprsPlugin.h"
12 
13 #include "MarbleGlobal.h"
14 #include "MarbleDebug.h"
15 
16 #include <QColor>
17 #include <QPixmap>
18 #include <QTimer>
19 #include <QAction>
20 #include <QMutexLocker>
21 #include <QTcpSocket>
22 
23 #include "MarbleDirs.h"
24 #include "MarbleWidget.h"
25 #include "GeoPainter.h"
26 #include "GeoDataCoordinates.h"
27 #include "MarbleModel.h"
28 #include "GeoDataLatLonAltBox.h"
29 #include "ViewportParams.h"
30 #include "AprsGatherer.h"
31 #include "AprsTCPIP.h"
32 #include "AprsFile.h"
33 
34 #include <aprsconfig.h>
35 
36 #ifdef HAVE_QEXTSERIALPORT
37 #include "AprsTTY.h"
38 #endif
39 
40 using namespace Marble;
41 /* TRANSLATOR Marble::AprsPlugin */
42 
43 AprsPlugin::AprsPlugin()
44  : RenderPlugin( 0 ),
45  m_mutex( 0 ),
46  m_configDialog( 0 ),
47  ui_configWidget( 0 )
48 {
49 }
50 
51 AprsPlugin::AprsPlugin( const MarbleModel *marbleModel )
52  : RenderPlugin( marbleModel ),
53  m_mutex( new QMutex ),
54  m_initialized( false ),
55  m_tcpipGatherer( 0 ),
56  m_ttyGatherer( 0 ),
57  m_fileGatherer( 0 ),
58  m_action( 0 ),
59  m_useInternet( true ),
60  m_useTty( false ),
61  m_useFile( false ),
62  m_aprsHost( "rotate.aprs.net" ),
63  m_aprsPort( 10253 ),
64  m_tncTty( "/dev/ttyUSB0" ),
65  m_aprsFile(),
66  m_dumpTcpIp( false ),
67  m_dumpTty( false ),
68  m_dumpFile( false ),
69  m_fadeTime( 10 ),
70  m_hideTime( 45 ),
71  m_configDialog( 0 ),
72  ui_configWidget( 0 )
73 {
74  setEnabled( true );
75  setVisible( false );
76 
77  setSettings( QHash<QString,QVariant>() );
78 
79  connect( this, SIGNAL(visibilityChanged(bool,QString)),
80  this, SLOT(updateVisibility(bool)) );
81 
82  m_action = new QAction( this );
83  connect( m_action, SIGNAL(toggled(bool)),
84  this, SLOT(setVisible(bool)) );
85 
86 }
87 
88 AprsPlugin::~AprsPlugin()
89 {
90  stopGatherers();
91 
92  delete m_configDialog;
93  delete ui_configWidget;
94 
95  QMap<QString, AprsObject *>::Iterator obj;
96  QMap<QString, AprsObject *>::Iterator end = m_objects.end();
97 
98  for( obj = m_objects.begin(); obj != end; ++obj ) {
99  delete *obj;
100  }
101 
102  m_objects.clear();
103 
104  delete m_mutex;
105 }
106 
107 void AprsPlugin::updateVisibility( bool visible )
108 {
109  if ( visible )
110  restartGatherers();
111  else
112  stopGatherers();
113 }
114 
115 RenderPlugin::RenderType AprsPlugin::renderType() const
116 {
117  return OnlineRenderType;
118 }
119 
120 QStringList AprsPlugin::backendTypes() const
121 {
122  return QStringList( "aprs" );
123 }
124 
125 QString AprsPlugin::renderPolicy() const
126 {
127  return QString( "ALWAYS" );
128 }
129 
130 QStringList AprsPlugin::renderPosition() const
131 {
132  return QStringList( "HOVERS_ABOVE_SURFACE" );
133 }
134 
135 QString AprsPlugin::name() const
136 {
137  return tr( "Amateur Radio Aprs Plugin" );
138 }
139 
140 QString AprsPlugin::guiString() const
141 {
142  return tr( "Amateur Radio &Aprs Plugin" );
143 }
144 
145 QString AprsPlugin::nameId() const
146 {
147  return QString( "aprs-plugin" );
148 }
149 
150 QString AprsPlugin::version() const
151 {
152  return "1.0";
153 }
154 
155 QString AprsPlugin::description() const
156 {
157  return tr( "This plugin displays APRS data gleaned from the Internet. APRS is an Amateur Radio protocol for broadcasting location and other information." );
158 }
159 
160 QString AprsPlugin::copyrightYears() const
161 {
162  return "2009, 2010";
163 }
164 
165 QList<PluginAuthor> AprsPlugin::pluginAuthors() const
166 {
167  return QList<PluginAuthor>()
168  << PluginAuthor( "Wes Hardaker", "hardaker@users.sourceforge.net" );
169 }
170 
171 QIcon AprsPlugin::icon () const
172 {
173  return QIcon(":/icons/aprs.png");
174 }
175 
176 void AprsPlugin::stopGatherers()
177 {
178 
179  // tell them all to stop
180  if ( m_tcpipGatherer )
181  m_tcpipGatherer->shutDown();
182 
183 #ifdef HAVE_QEXTSERIALPORT
184  if ( m_ttyGatherer )
185  m_ttyGatherer->shutDown();
186 #endif
187 
188  if ( m_fileGatherer )
189  m_fileGatherer->shutDown();
190 
191  // now wait for them for at least 2 seconds (it shouldn't take that long)
192  if ( m_tcpipGatherer )
193  if ( m_tcpipGatherer->wait(2000) )
194  delete m_tcpipGatherer;
195 
196 #ifdef HAVE_QEXTSERIALPORT
197  if ( m_ttyGatherer )
198  if ( m_ttyGatherer->wait(2000) )
199  delete m_ttyGatherer;
200 #endif
201 
202  if ( m_fileGatherer )
203  if ( m_fileGatherer->wait(2000) )
204  delete m_fileGatherer;
205 
206  m_tcpipGatherer = 0;
207  m_ttyGatherer = 0;
208  m_fileGatherer = 0;
209 }
210 
211 void AprsPlugin::restartGatherers()
212 {
213  stopGatherers();
214 
215  if ( m_useInternet ) {
216  m_tcpipGatherer =
217  new AprsGatherer( new AprsTCPIP( m_aprsHost, m_aprsPort ),
218  &m_objects, m_mutex, &m_filter);
219  m_tcpipGatherer->setSeenFrom( GeoAprsCoordinates::FromTCPIP );
220  m_tcpipGatherer->setDumpOutput( m_dumpTcpIp );
221 
222  m_tcpipGatherer->start();
223  mDebug() << "started TCPIP gatherer";
224  }
225 
226 #ifdef HAVE_QEXTSERIALPORT
227  if ( m_useTty ) {
228  m_ttyGatherer =
229  new AprsGatherer( new AprsTTY( m_tncTty ),
230  &m_objects, m_mutex, NULL);
231 
232  m_ttyGatherer->setSeenFrom( GeoAprsCoordinates::FromTTY );
233  m_ttyGatherer->setDumpOutput( m_dumpTty );
234 
235  m_ttyGatherer->start();
236  mDebug() << "started TTY gatherer";
237  }
238 #endif
239 
240 
241  if ( m_useFile ) {
242  m_fileGatherer =
243  new AprsGatherer( new AprsFile( m_aprsFile ),
244  &m_objects, m_mutex, NULL);
245 
246  m_fileGatherer->setSeenFrom( GeoAprsCoordinates::FromFile );
247  m_fileGatherer->setDumpOutput( m_dumpFile );
248 
249  m_fileGatherer->start();
250  mDebug() << "started File gatherer";
251  }
252 }
253 
254 
255 void AprsPlugin::initialize ()
256 {
257  m_initialized = true;
258  mDebug() << "APRS initialized";
259 
260  restartGatherers();
261 }
262 
263 QDialog *AprsPlugin::configDialog()
264 {
265  if ( !m_configDialog ) {
266  // Initializing configuration dialog
267  m_configDialog = new QDialog();
268  ui_configWidget = new Ui::AprsConfigWidget;
269  ui_configWidget->setupUi( m_configDialog );
270  readSettings();
271  connect( ui_configWidget->m_buttonBox, SIGNAL(accepted()),
272  SLOT(writeSettings()) );
273  connect( ui_configWidget->m_buttonBox, SIGNAL(rejected()),
274  SLOT(readSettings()) );
275  // QPushButton *applyButton =
276 // ui_configWidget->m_buttonBox->button( QDialogButtonBox::Apply );
277 // connect( applyButton, SIGNAL(clicked()),
278 // this, SLOT(writeSettings()) );
279  }
280  return m_configDialog;
281 }
282 
283 void AprsPlugin::readSettings()
284 {
285  if ( !m_configDialog ) {
286  return;
287  }
288 
289 #ifndef HAVE_QEXTSERIALPORT
290  ui_configWidget->tabWidget->setTabEnabled( ui_configWidget->tabWidget->indexOf(
291  ui_configWidget->Device ), false );
292 #endif
293 
294  // Connect to the net?
295  if ( m_useInternet )
296  ui_configWidget->m_internetBox->setCheckState( Qt::Checked );
297  else
298  ui_configWidget->m_internetBox->setCheckState( Qt::Unchecked );
299 
300  // Connection Information
301  ui_configWidget->m_serverName->setText( m_aprsHost );
302  ui_configWidget->m_serverPort->setText( QString::number( m_aprsPort ) );
303 
304  // Read from a TTY serial port?
305  if ( m_useTty )
306  ui_configWidget->m_serialBox->setCheckState( Qt::Checked );
307  else
308  ui_configWidget->m_serialBox->setCheckState( Qt::Unchecked );
309 
310  // Serial port to use
311  ui_configWidget->m_ttyName->setText( m_tncTty );
312 
313  // Read from a File?
314  if ( m_useFile )
315  ui_configWidget->m_useFile->setCheckState( Qt::Checked );
316  else
317  ui_configWidget->m_useFile->setCheckState( Qt::Unchecked );
318 
319  // Serial port to use
320  ui_configWidget->m_fileName->setText( m_aprsFile );
321 
322  // Dumping settings
323  if ( m_dumpTcpIp )
324  ui_configWidget->m_tcpipdump->setCheckState( Qt::Checked );
325  else
326  ui_configWidget->m_tcpipdump->setCheckState( Qt::Unchecked );
327 
328  if ( m_dumpTty )
329  ui_configWidget->m_ttydump->setCheckState( Qt::Checked );
330  else
331  ui_configWidget->m_ttydump->setCheckState( Qt::Unchecked );
332 
333  if ( m_dumpFile )
334  ui_configWidget->m_filedump->setCheckState( Qt::Checked );
335  else
336  ui_configWidget->m_filedump->setCheckState( Qt::Unchecked );
337 
338  // display settings
339  ui_configWidget->m_fadetime->setText( QString::number( m_fadeTime ) );
340  ui_configWidget->m_hidetime->setText( QString::number( m_hideTime ) );
341 }
342 
343 
344 void AprsPlugin::writeSettings()
345 {
346  m_useInternet = ui_configWidget->m_internetBox->checkState() == Qt::Checked;
347  m_useTty = ui_configWidget->m_serialBox->checkState() == Qt::Checked;
348  m_useFile = ui_configWidget->m_useFile->checkState() == Qt::Checked;
349 
350  m_aprsHost = ui_configWidget->m_serverName->text();
351  m_aprsPort = ui_configWidget->m_serverPort->text().toInt();
352  m_tncTty = ui_configWidget->m_ttyName->text();
353 
354  m_dumpTcpIp = ui_configWidget->m_tcpipdump->checkState() == Qt::Checked;
355  m_dumpTty = ui_configWidget->m_ttydump->checkState() == Qt::Checked;
356  m_dumpFile = ui_configWidget->m_filedump->checkState() == Qt::Checked;
357 
358  m_fadeTime = ui_configWidget->m_fadetime->text().toInt();
359  m_hideTime = ui_configWidget->m_hidetime->text().toInt();
360 
361  restartGatherers();
362  emit settingsChanged( nameId() );
363 }
364 
365 QHash<QString,QVariant> AprsPlugin::settings() const
366 {
367  QHash<QString, QVariant> result = RenderPlugin::settings();
368 
369  result.insert( "useInternet", true );
370  result.insert( "useTTY", false );
371  result.insert( "useFile", false );
372  result.insert( "APRSHost", "rotate.aprs.net" );
373  result.insert( "APRSPort", "10253" );
374  result.insert( "TNCTTY", "/dev/ttyUSB0" );
375  result.insert( "FileName", "" );
376  result.insert( "TCPIPDump", false );
377  result.insert( "TTYDump", false );
378  result.insert( "FileDump", false );
379  result.insert( "fadeTime", 10 );
380  result.insert( "hideTime", 45 );
381 
382  return result;
383 }
384 
385 void AprsPlugin::setSettings( const QHash<QString,QVariant> &settings )
386 {
387  RenderPlugin::setSettings( settings );
388 
389  m_useInternet = settings.value( "useInternet", true ).toBool();
390  m_useTty = settings.value( "useTTY", false ).toBool();
391  m_useFile = settings.value( "useFile", false ).toBool();
392 
393  m_aprsHost = settings.value( "APRSHost", "rotate.aprs.net" ).toString();
394  m_aprsPort = settings.value( "APRSPort", 10253 ).toInt();
395  m_tncTty = settings.value( "TNCTTY", "/dev/ttyUSB0" ).toString();
396  m_aprsFile = settings.value( "FileName", "" ).toString();
397 
398  m_dumpTcpIp = settings.value( "TCPIPDump", false ).toBool();
399  m_dumpTty = settings.value( "TTYDump", false ).toBool();
400  m_dumpFile = settings.value( "FileDump", false ).toBool();
401 
402  m_fadeTime = settings.value( "fadeTime", 10 ).toInt();
403  m_hideTime = settings.value( "hideTime", 45 ).toInt();
404 
405  readSettings();
406  emit settingsChanged( nameId() );
407 }
408 
409 bool AprsPlugin::isInitialized () const
410 {
411  return m_initialized;
412 }
413 
414 bool AprsPlugin::render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer )
415 {
416  Q_UNUSED( renderPos )
417  Q_UNUSED( layer )
418 
419  int fadetime = m_fadeTime * 60000;
420  int hidetime = m_hideTime * 60000;
421 
422  painter->save();
423 
424  if ( !( viewport->viewLatLonAltBox() == m_lastBox ) ) {
425  m_lastBox = viewport->viewLatLonAltBox();
426  QString towrite = "#filter a/" +
427  QString().number( m_lastBox.north( GeoDataCoordinates::Degree ) ) +'/' +
428  QString().number( m_lastBox.west( GeoDataCoordinates::Degree ) ) +'/' +
429  QString().number( m_lastBox.south( GeoDataCoordinates::Degree ) ) +'/' +
430  QString().number( m_lastBox.east( GeoDataCoordinates::Degree ) ) +'\n';
431  mDebug() << "upating filter: " << towrite.toLocal8Bit().data();
432 
433  QMutexLocker locker( m_mutex );
434  m_filter = towrite;
435  }
436 
437 
438  QMutexLocker locker( m_mutex );
439  QMap<QString, AprsObject *>::ConstIterator obj;
440  for( obj = m_objects.constBegin(); obj != m_objects.constEnd(); ++obj ) {
441  ( *obj )->render( painter, viewport, fadetime, hidetime );
442  }
443 
444  painter->restore();
445 
446  return true;
447 }
448 
449 QAction* AprsPlugin::action() const
450 {
451  m_action->setCheckable( true );
452  m_action->setChecked( visible() );
453  m_action->setIcon( icon() );
454  m_action->setText( guiString() );
455  m_action->setToolTip( description() );
456  return m_action;
457 }
458 
459 Q_EXPORT_PLUGIN2( AprsPlugin, Marble::AprsPlugin )
460 
461 #include "AprsPlugin.moc"
QAction::setText
void setText(const QString &text)
GeoDataCoordinates.h
Marble::RenderPlugin::visible
bool visible() const
is visible
QMutex
Marble::AprsPlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: AprsPlugin.cpp:171
Marble::AprsTTY
Definition: AprsTTY.h:18
QHash::insert
iterator insert(const Key &key, const T &value)
Marble::AprsPlugin::AprsPlugin
AprsPlugin()
Definition: AprsPlugin.cpp:43
Marble::GeoPainter
A painter that allows to draw geometric primitives on the map.
Definition: GeoPainter.h:98
QAction::setChecked
void setChecked(bool)
MarbleModel.h
This file contains the headers for MarbleModel.
Marble::AprsPlugin::setSettings
void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: AprsPlugin.cpp:385
Marble::AprsGatherer::setSeenFrom
void setSeenFrom(GeoAprsCoordinates::SeenFrom seenFrom)
Definition: AprsGatherer.cpp:272
QAction::setIcon
void setIcon(const QIcon &icon)
QMap
Marble::PluginAuthor
Definition: PluginInterface.h:28
Marble::AprsPlugin::guiString
QString guiString() const
String that should be displayed in GUI.
Definition: AprsPlugin.cpp:140
QPainter::save
void save()
Marble::AprsPlugin::restartGatherers
void restartGatherers()
Definition: AprsPlugin.cpp:211
Marble::ViewportParams::viewLatLonAltBox
const GeoDataLatLonAltBox & viewLatLonAltBox() const
Definition: ViewportParams.cpp:305
Marble::AprsPlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: AprsPlugin.cpp:145
Marble::AprsPlugin::stopGatherers
void stopGatherers()
Definition: AprsPlugin.cpp:176
MarbleDebug.h
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
AprsGatherer.h
Marble::GeoDataCoordinates::Degree
Definition: GeoDataCoordinates.h:66
QAction::setToolTip
void setToolTip(const QString &tip)
AprsTTY.h
Marble::AprsPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: AprsPlugin.cpp:155
Marble::AprsPlugin::initialize
void initialize()
Definition: AprsPlugin.cpp:255
QThread::start
void start(Priority priority)
Marble::AprsPlugin::settings
QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: AprsPlugin.cpp:365
Marble::GeoDataLatLonBox::north
qreal north(GeoDataCoordinates::Unit unit=GeoDataCoordinates::Radian) const
Get the northern boundary of the bounding box.
Definition: GeoDataLatLonBox.cpp:93
Marble::GeoDataLatLonBox::east
qreal east(GeoDataCoordinates::Unit unit=GeoDataCoordinates::Radian) const
Get the eastern boundary of the bounding box.
Definition: GeoDataLatLonBox.cpp:135
Marble::AprsGatherer::shutDown
void shutDown()
Definition: AprsGatherer.cpp:201
Marble::GeoAprsCoordinates::FromTTY
Definition: GeoAprsCoordinates.h:25
QString::number
QString number(int n, int base)
Marble::AprsPlugin::copyrightYears
QString copyrightYears() const
Definition: AprsPlugin.cpp:160
AprsPlugin.h
Marble::GeoSceneLayer
Layer of a GeoScene document.
Definition: GeoSceneLayer.h:43
Marble::AprsPlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: AprsPlugin.cpp:165
QHash< QString, QVariant >
Marble::RenderPlugin::settingsChanged
void settingsChanged(QString nameId)
This signal is emitted if the settings of the RenderPlugin changed.
Marble::RenderPlugin::visibilityChanged
void visibilityChanged(bool visible, const QString &nameId)
This signal is emitted if the visibility is changed with.
AprsTCPIP.h
MarbleDirs.h
Marble::GeoAprsCoordinates::FromFile
Definition: GeoAprsCoordinates.h:27
Marble::AprsPlugin::version
QString version() const
Definition: AprsPlugin.cpp:150
Marble::RenderPlugin::setVisible
void setVisible(bool visible)
settting visible
Definition: RenderPlugin.cpp:151
Marble::GeoAprsCoordinates::FromTCPIP
Definition: GeoAprsCoordinates.h:26
QString
QList
GeoPainter.h
MarbleGlobal.h
QStringList
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
Q_EXPORT_PLUGIN2
#define Q_EXPORT_PLUGIN2(a, b)
Definition: marble_export.h:34
QHash::value
const T value(const Key &key) const
QString::toLocal8Bit
QByteArray toLocal8Bit() const
Marble::AprsTCPIP
Definition: AprsTCPIP.h:18
Marble::AprsFile
Definition: AprsFile.h:18
AprsFile.h
ViewportParams.h
This file contains the headers for ViewportParams.
QAction::setCheckable
void setCheckable(bool)
QPainter::restore
void restore()
Marble::GeoDataLatLonBox::west
qreal west(GeoDataCoordinates::Unit unit=GeoDataCoordinates::Radian) const
Get the western boundary of the bounding box.
Definition: GeoDataLatLonBox.cpp:156
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:97
Marble::AprsPlugin
This class displays a layer of aprs (which aprs TBD).
Definition: AprsPlugin.h:38
Marble::AprsPlugin::configDialog
QDialog * configDialog()
Returns a pointer to the configuration dialog of the plugin.
Definition: AprsPlugin.cpp:263
Marble::RenderPlugin::setEnabled
void setEnabled(bool enabled)
settting enabled
Definition: RenderPlugin.cpp:139
Marble::AprsPlugin::action
QAction * action() const
Definition: AprsPlugin.cpp:449
Marble::RenderPlugin::OnlineRenderType
Definition: RenderPlugin.h:63
QThread::wait
bool wait(unsigned long time)
QMutexLocker
GeoDataLatLonAltBox.h
Marble::AprsGatherer::setDumpOutput
void setDumpOutput(bool to)
Definition: AprsGatherer.cpp:260
QAction
Marble::GeoDataLatLonBox::south
qreal south(GeoDataCoordinates::Unit unit=GeoDataCoordinates::Radian) const
Get the southern boundary of the bounding box.
Definition: GeoDataLatLonBox.cpp:114
QByteArray::data
char * data()
Marble::AprsPlugin::backendTypes
QStringList backendTypes() const
Returns the name(s) of the backend that the plugin can render This method should return the name of t...
Definition: AprsPlugin.cpp:120
QDialog
MarbleWidget.h
This file contains the headers for MarbleWidget.
Marble::AprsPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: AprsPlugin.cpp:135
Marble::AprsPlugin::render
bool render(GeoPainter *painter, ViewportParams *viewport, const QString &renderPos, GeoSceneLayer *layer=0)
Renders the content provided by the layer on the viewport.
Definition: AprsPlugin.cpp:414
Marble::AprsGatherer
Definition: AprsGatherer.h:26
Marble::AprsPlugin::renderPosition
QStringList renderPosition() const
Preferred level in the layer stack for the rendering.
Definition: AprsPlugin.cpp:130
Marble::AprsPlugin::isInitialized
bool isInitialized() const
Definition: AprsPlugin.cpp:409
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::RenderPlugin::RenderType
RenderType
A Type of plugin.
Definition: RenderPlugin.h:59
Marble::mDebug
QDebug mDebug()
a function to replace qDebug() in Marble library code
Definition: MarbleDebug.cpp:36
Marble::RenderPlugin
The abstract class that creates a renderable item.
Definition: RenderPlugin.h:43
Marble::AprsPlugin::~AprsPlugin
~AprsPlugin()
Definition: AprsPlugin.cpp:88
Marble::RenderPlugin::setSettings
virtual void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: RenderPlugin.cpp:195
Marble::AprsPlugin::renderPolicy
QString renderPolicy() const
Return how the plugin settings should be used.
Definition: AprsPlugin.cpp:125
QIcon
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:38 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