• 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
  • lib
  • marble
CurrentLocationWidget.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 2004-2007 Torsten Rahn <tackat@kde.org>
9 // Copyright 2007 Inge Wallin <ingwa@kde.org>
10 // Copyright 2007 Thomas Zander <zander@kde.org>
11 // Copyright 2010 Bastian Holst <bastianholst@gmx.de>
12 //
13 
14 // Self
15 #include "CurrentLocationWidget.h"
16 
17 // Marble
18 #include "AutoNavigation.h"
19 #include "MarbleDebug.h"
20 #include "MarbleLocale.h"
21 #include "MarbleModel.h"
22 #include "MarbleWidget.h"
23 #include "MarbleWidgetPopupMenu.h"
24 #include "GeoDataCoordinates.h"
25 #include "PositionProviderPlugin.h"
26 #include "PluginManager.h"
27 #include "PositionTracking.h"
28 #include "routing/RoutingManager.h"
29 
30 using namespace Marble;
31 /* TRANSLATOR Marble::CurrentLocationWidget */
32 
33 // Ui
34 #include "ui_CurrentLocationWidget.h"
35 
36 #include <QDateTime>
37 #include <QFileDialog>
38 #include <QMessageBox>
39 
40 namespace Marble
41 {
42 
43 class CurrentLocationWidgetPrivate
44 {
45  public:
46  CurrentLocationWidgetPrivate();
47 
48  Ui::CurrentLocationWidget m_currentLocationUi;
49  MarbleWidget *m_widget;
50  AutoNavigation *m_adjustNavigation;
51 
52  QList<const PositionProviderPlugin*> m_positionProviderPlugins;
53  GeoDataCoordinates m_currentPosition;
54 
55  QString m_lastOpenPath;
56  QString m_lastSavePath;
57 
58  void receiveGpsCoordinates( const GeoDataCoordinates &position, qreal speed );
59  void adjustPositionTrackingStatus( PositionProviderStatus status );
60  void changePositionProvider( const QString &provider );
61  void trackPlacemark();
62  void centerOnCurrentLocation();
63  void updateRecenterComboBox( AutoNavigation::CenterMode centerMode );
64  void updateAutoZoomCheckBox( bool autoZoom );
65  void updateActivePositionProvider( PositionProviderPlugin* );
66  void saveTrack();
67  void openTrack();
68  void clearTrack();
69 };
70 
71 CurrentLocationWidgetPrivate::CurrentLocationWidgetPrivate()
72  : m_widget( 0 ),
73  m_adjustNavigation( 0 ),
74  m_positionProviderPlugins(),
75  m_currentPosition(),
76  m_lastOpenPath(),
77  m_lastSavePath()
78 {
79 }
80 
81 CurrentLocationWidget::CurrentLocationWidget( QWidget *parent, Qt::WindowFlags f )
82  : QWidget( parent, f ),
83  d( new CurrentLocationWidgetPrivate() )
84 {
85  d->m_currentLocationUi.setupUi( this );
86  layout()->setMargin( 0 );
87 
88  connect( d->m_currentLocationUi.recenterComboBox, SIGNAL (currentIndexChanged(int)),
89  this, SLOT(setRecenterMode(int)) );
90 
91  connect( d->m_currentLocationUi.autoZoomCheckBox, SIGNAL(clicked(bool)),
92  this, SLOT(setAutoZoom(bool)) );
93 
94  bool const smallScreen = MarbleGlobal::getInstance()->profiles() & MarbleGlobal::SmallScreen;
95  d->m_currentLocationUi.positionTrackingComboBox->setVisible( !smallScreen );
96  d->m_currentLocationUi.locationLabel->setVisible( !smallScreen );
97 }
98 
99 CurrentLocationWidget::~CurrentLocationWidget()
100 {
101  delete d;
102 }
103 
104 void CurrentLocationWidget::setMarbleWidget( MarbleWidget *widget )
105 {
106  d->m_widget = widget;
107 
108  d->m_adjustNavigation = new AutoNavigation( widget->model(), widget->viewport(), this );
109  d->m_widget->model()->routingManager()->setAutoNavigation( d->m_adjustNavigation );
110 
111  const PluginManager* pluginManager = d->m_widget->model()->pluginManager();
112  d->m_positionProviderPlugins = pluginManager->positionProviderPlugins();
113  foreach( const PositionProviderPlugin *plugin, d->m_positionProviderPlugins ) {
114  d->m_currentLocationUi.positionTrackingComboBox->addItem( plugin->guiString() );
115  }
116  if ( d->m_positionProviderPlugins.isEmpty() ) {
117  d->m_currentLocationUi.positionTrackingComboBox->setEnabled( false );
118  QString html = "<p>No Position Tracking Plugin installed.</p>";
119  d->m_currentLocationUi.locationLabel->setText( html );
120  d->m_currentLocationUi.locationLabel->setEnabled ( true );
121  bool const hasTrack = !d->m_widget->model()->positionTracking()->isTrackEmpty();
122  d->m_currentLocationUi.showTrackCheckBox->setEnabled( hasTrack );
123  d->m_currentLocationUi.saveTrackButton->setEnabled( hasTrack );
124  d->m_currentLocationUi.clearTrackButton->setEnabled( hasTrack );
125  }
126 
127  //disconnect CurrentLocation Signals
128  disconnect( d->m_widget->model()->positionTracking(),
129  SIGNAL(gpsLocation(GeoDataCoordinates,qreal)),
130  this, SLOT(receiveGpsCoordinates(GeoDataCoordinates,qreal)) );
131  disconnect( d->m_widget->model()->positionTracking(),
132  SIGNAL(positionProviderPluginChanged(PositionProviderPlugin*)),
133  this, SLOT(updateActivePositionProvider(PositionProviderPlugin*)) );
134  disconnect( d->m_currentLocationUi.positionTrackingComboBox, SIGNAL(currentIndexChanged(QString)),
135  this, SLOT(changePositionProvider(QString)) );
136  disconnect( d->m_currentLocationUi.locationLabel, SIGNAL(linkActivated(QString)),
137  this, SLOT(centerOnCurrentLocation()) );
138  disconnect( d->m_widget->model()->positionTracking(),
139  SIGNAL(statusChanged(PositionProviderStatus)),this,
140  SLOT(adjustPositionTrackingStatus(PositionProviderStatus)) );
141 
142  disconnect( d->m_adjustNavigation, SIGNAL(recenterModeChanged(AutoNavigation::CenterMode)),
143  this, SLOT(updateRecenterComboBox(AutoNavigation::CenterMode)) );
144  disconnect( d->m_adjustNavigation, SIGNAL(autoZoomToggled(bool)),
145  this, SLOT(updateAutoZoomCheckBox(bool)) );
146  disconnect( d->m_widget->model(), SIGNAL(trackedPlacemarkChanged(const GeoDataPlacemark*)),
147  this, SLOT(trackPlacemark()) );
148 
149  //connect CurrentLoctaion signals
150  connect( d->m_widget->model()->positionTracking(),
151  SIGNAL(gpsLocation(GeoDataCoordinates,qreal)),
152  this, SLOT(receiveGpsCoordinates(GeoDataCoordinates,qreal)) );
153  connect( d->m_widget->model()->positionTracking(),
154  SIGNAL(positionProviderPluginChanged(PositionProviderPlugin*)),
155  this, SLOT(updateActivePositionProvider(PositionProviderPlugin*)) );
156  d->updateActivePositionProvider( d->m_widget->model()->positionTracking()->positionProviderPlugin() );
157  connect( d->m_currentLocationUi.positionTrackingComboBox, SIGNAL(currentIndexChanged(QString)),
158  this, SLOT(changePositionProvider(QString)) );
159  connect( d->m_currentLocationUi.locationLabel, SIGNAL(linkActivated(QString)),
160  this, SLOT(centerOnCurrentLocation()) );
161  connect( d->m_widget->model()->positionTracking(),
162  SIGNAL(statusChanged(PositionProviderStatus)), this,
163  SLOT(adjustPositionTrackingStatus(PositionProviderStatus)) );
164 
165  connect( d->m_adjustNavigation, SIGNAL(recenterModeChanged(AutoNavigation::CenterMode)),
166  this, SLOT(updateRecenterComboBox(AutoNavigation::CenterMode)) );
167  connect( d->m_adjustNavigation, SIGNAL(autoZoomToggled(bool)),
168  this, SLOT(updateAutoZoomCheckBox(bool)) );
169  connect( d->m_adjustNavigation, SIGNAL(zoomIn(FlyToMode)),
170  d->m_widget, SLOT(zoomIn(FlyToMode)) );
171  connect( d->m_adjustNavigation, SIGNAL(zoomOut(FlyToMode)),
172  d->m_widget, SLOT(zoomOut(FlyToMode)) );
173  connect( d->m_adjustNavigation, SIGNAL(centerOn(GeoDataCoordinates,bool)),
174  d->m_widget, SLOT(centerOn(GeoDataCoordinates,bool)) );
175 
176  connect( d->m_widget, SIGNAL(visibleLatLonAltBoxChanged(GeoDataLatLonAltBox)),
177  d->m_adjustNavigation, SLOT(inhibitAutoAdjustments()) );
178 
179  connect (d->m_currentLocationUi.showTrackCheckBox, SIGNAL(clicked(bool)),
180  d->m_widget->model()->positionTracking(), SLOT(setTrackVisible(bool)));
181  connect (d->m_currentLocationUi.showTrackCheckBox, SIGNAL(clicked(bool)),
182  d->m_widget, SLOT(update()));
183  if ( d->m_widget->model()->positionTracking()->trackVisible() ) {
184  d->m_currentLocationUi.showTrackCheckBox->setCheckState(Qt::Checked);
185  }
186  connect ( d->m_currentLocationUi.saveTrackButton, SIGNAL(clicked(bool)),
187  this, SLOT(saveTrack()));
188  connect ( d->m_currentLocationUi.openTrackButton, SIGNAL(clicked(bool)),
189  this, SLOT(openTrack()));
190  connect (d->m_currentLocationUi.clearTrackButton, SIGNAL(clicked(bool)),
191  this, SLOT(clearTrack()));
192  connect( d->m_widget->model(), SIGNAL(trackedPlacemarkChanged(const GeoDataPlacemark*)),
193  this, SLOT(trackPlacemark()) );
194 }
195 
196 void CurrentLocationWidgetPrivate::adjustPositionTrackingStatus( PositionProviderStatus status )
197 {
198  if ( status == PositionProviderStatusAvailable ) {
199  return;
200  }
201 
202  QString html = "<html><body><p>";
203 
204  switch ( status ) {
205  case PositionProviderStatusUnavailable:
206  html += QObject::tr( "Waiting for current location information..." );
207  break;
208  case PositionProviderStatusAcquiring:
209  html += QObject::tr( "Initializing current location service..." );
210  break;
211  case PositionProviderStatusAvailable:
212  Q_ASSERT( false );
213  break;
214  case PositionProviderStatusError:
215  html += QObject::tr( "Error when determining current location: " );
216  html += m_widget->model()->positionTracking()->error();
217  break;
218  }
219 
220  html += "</p></body></html>";
221  m_currentLocationUi.locationLabel->setEnabled( true );
222  m_currentLocationUi.locationLabel->setText( html );
223 }
224 
225 void CurrentLocationWidgetPrivate::updateActivePositionProvider( PositionProviderPlugin *plugin )
226 {
227  m_currentLocationUi.positionTrackingComboBox->blockSignals( true );
228  if ( !plugin ) {
229  m_currentLocationUi.positionTrackingComboBox->setCurrentIndex( 0 );
230  } else {
231  for( int i=0; i<m_currentLocationUi.positionTrackingComboBox->count(); ++i ) {
232  if ( m_currentLocationUi.positionTrackingComboBox->itemText( i ) == plugin->guiString() ) {
233  m_currentLocationUi.positionTrackingComboBox->setCurrentIndex( i );
234  break;
235  }
236  }
237  }
238  m_currentLocationUi.positionTrackingComboBox->blockSignals( false );
239  m_currentLocationUi.recenterLabel->setEnabled( plugin );
240  m_currentLocationUi.recenterComboBox->setEnabled( plugin );
241  m_currentLocationUi.autoZoomCheckBox->setEnabled( plugin );
242 
243 }
244 
245 void CurrentLocationWidgetPrivate::receiveGpsCoordinates( const GeoDataCoordinates &position, qreal speed )
246 {
247  m_currentPosition = position;
248  QString unitString;
249  QString altitudeUnitString;
250  QString distanceUnitString;
251  qreal unitSpeed = 0.0;
252  qreal altitude = 0.0;
253  qreal length = m_widget->model()->positionTracking()->length( m_widget->model()->planetRadius() );
254 
255  QString html = "<html><body>";
256  html += "<table cellspacing=\"2\" cellpadding=\"2\">";
257  html += "<tr><td>Longitude</td><td><a href=\"http://edu.kde.org/marble\">%1</a></td></tr>";
258  html += "<tr><td>Latitude</td><td><a href=\"http://edu.kde.org/marble\">%2</a></td></tr>";
259  html += "<tr><td>Altitude</td><td>%3</td></tr>";
260  html += "<tr><td>Speed</td><td>%4</td></tr>";
261  html += "<tr><td>Distance</td><td>%5</td></tr>";
262  html += "</table>";
263  html += "</body></html>";
264 
265  switch ( MarbleGlobal::getInstance()->locale()->measurementSystem() ) {
266  case MarbleLocale::MetricSystem:
267  //kilometers per hour
268  unitString = QObject::tr("km/h");
269  unitSpeed = speed * HOUR2SEC * METER2KM;
270  altitudeUnitString = QObject::tr("m");
271  distanceUnitString = QObject::tr("m");
272  if ( length > 1000.0 ) {
273  length /= 1000.0;
274  distanceUnitString = QObject::tr("km");
275  }
276  altitude = position.altitude();
277  break;
278  case MarbleLocale::ImperialSystem:
279  //miles per hour
280  unitString = QObject::tr("m/h");
281  unitSpeed = speed * HOUR2SEC * METER2KM * KM2MI;
282  altitudeUnitString = QObject::tr("ft");
283  distanceUnitString = QObject::tr("ft");
284  altitude = position.altitude() * M2FT;
285  length *= M2FT;
286  break;
287 
288  case MarbleLocale::NauticalSystem:
289  // nautical miles
290  unitString = QObject::tr("kt");
291  unitSpeed = speed * HOUR2SEC * METER2KM * KM2NM;
292  altitudeUnitString = QObject::tr("m");
293  distanceUnitString = QObject::tr("nm");
294  altitude = position.altitude();
295  length *= METER2KM*KM2NM;
296  break;
297  }
298  // TODO read this value from the incoming signal
299  const QString speedString = QLocale::system().toString( unitSpeed, 'f', 1);
300  const QString altitudeString = QString( "%1 %2" ).arg( altitude, 0, 'f', 1, QChar(' ') ).arg( altitudeUnitString );
301  const QString distanceString = QString( "%1 %2" ).arg( length, 0, 'f', 1, QChar(' ') ).arg( distanceUnitString );
302 
303  html = html.arg( position.lonToString() ).arg( position.latToString() );
304  html = html.arg( altitudeString ).arg( speedString + ' ' + unitString );
305  html = html.arg( distanceString );
306  m_currentLocationUi.locationLabel->setText( html );
307  m_currentLocationUi.showTrackCheckBox->setEnabled( true );
308  m_currentLocationUi.saveTrackButton->setEnabled( true );
309  m_currentLocationUi.clearTrackButton->setEnabled( true );
310 }
311 
312 void CurrentLocationWidgetPrivate::changePositionProvider( const QString &provider )
313 {
314  bool hasProvider = ( provider != QObject::tr("Disabled") );
315 
316  if ( hasProvider ) {
317  foreach( const PositionProviderPlugin* plugin, m_positionProviderPlugins ) {
318  if ( plugin->guiString() == provider ) {
319  m_currentLocationUi.locationLabel->setEnabled( true );
320  PositionProviderPlugin* instance = plugin->newInstance();
321  PositionTracking *tracking = m_widget->model()->positionTracking();
322  instance->setMarbleModel( m_widget->model() );
323  tracking->setPositionProviderPlugin( instance );
324  m_widget->update();
325  return;
326  }
327  }
328  }
329  else {
330  m_currentLocationUi.locationLabel->setEnabled( false );
331  m_widget->model()->positionTracking()->setPositionProviderPlugin( 0 );
332  m_widget->update();
333  }
334 }
335 
336 void CurrentLocationWidgetPrivate::trackPlacemark()
337 {
338  changePositionProvider( "Placemark" );
339  m_adjustNavigation->setRecenter( AutoNavigation::AlwaysRecenter );
340 }
341 
342 void CurrentLocationWidget::setRecenterMode( int mode )
343 {
344  if ( mode >= 0 && mode <= AutoNavigation::RecenterOnBorder ) {
345  AutoNavigation::CenterMode centerMode = ( AutoNavigation::CenterMode ) mode;
346  d->m_adjustNavigation->setRecenter( centerMode );
347  }
348 }
349 
350 void CurrentLocationWidget::setAutoZoom( bool autoZoom )
351 {
352  d->m_adjustNavigation->setAutoZoom( autoZoom );
353 }
354 
355 void CurrentLocationWidgetPrivate::updateAutoZoomCheckBox( bool autoZoom )
356 {
357  m_currentLocationUi.autoZoomCheckBox->setChecked( autoZoom );
358 }
359 
360 void CurrentLocationWidgetPrivate::updateRecenterComboBox( AutoNavigation::CenterMode centerMode )
361 {
362  m_currentLocationUi.recenterComboBox->setCurrentIndex( centerMode );
363 }
364 
365 void CurrentLocationWidgetPrivate::centerOnCurrentLocation()
366 {
367  m_widget->centerOn(m_currentPosition, true);
368 }
369 
370 void CurrentLocationWidgetPrivate::saveTrack()
371 {
372  QString suggested = m_lastSavePath;
373  QString fileName = QFileDialog::getSaveFileName(m_widget, QObject::tr("Save Track"), // krazy:exclude=qclasses
374  suggested.append('/' + QDateTime::currentDateTime().toString("yyyy-MM-dd_hhmmss") + ".kml"),
375  QObject::tr("KML File (*.kml)"));
376  if ( fileName.isEmpty() ) {
377  return;
378  }
379  if ( !fileName.endsWith(QLatin1String( ".kml" ), Qt::CaseInsensitive) ) {
380  fileName.append( ".kml" );
381  }
382  QFileInfo file( fileName );
383  m_lastSavePath = file.absolutePath();
384  m_widget->model()->positionTracking()->saveTrack( fileName );
385 }
386 
387 void CurrentLocationWidgetPrivate::openTrack()
388 {
389  QString suggested = m_lastOpenPath;
390  QString fileName = QFileDialog::getOpenFileName( m_widget, QObject::tr("Open Track"), // krazy:exclude=qclasses
391  suggested, QObject::tr("KML File (*.kml)"));
392  if ( !fileName.isEmpty() ) {
393  QFileInfo file( fileName );
394  m_lastOpenPath = file.absolutePath();
395  m_widget->model()->addGeoDataFile( fileName );
396  }
397 }
398 
399 void CurrentLocationWidgetPrivate::clearTrack()
400 {
401  const int result = QMessageBox::question( m_widget,
402  QObject::tr( "Clear current track" ),
403  QObject::tr( "Are you sure you want to clear the current track?" ),
404  QMessageBox::Yes,
405  QMessageBox::No );
406 
407  if ( result == QMessageBox::Yes ) {
408  m_widget->model()->positionTracking()->clearTrack();
409  m_widget->update();
410  m_currentLocationUi.saveTrackButton->setEnabled( false );
411  m_currentLocationUi.clearTrackButton->setEnabled( false );
412  }
413 }
414 
415 AutoNavigation::CenterMode CurrentLocationWidget::recenterMode() const
416 {
417  return d->m_adjustNavigation->recenterMode();
418 }
419 
420 bool CurrentLocationWidget::autoZoom() const
421 {
422  return d->m_adjustNavigation->autoZoom();
423 }
424 
425 bool CurrentLocationWidget::trackVisible() const
426 {
427  return d->m_widget->model()->positionTracking()->trackVisible();
428 }
429 
430 QString CurrentLocationWidget::lastOpenPath() const
431 {
432  return d->m_lastOpenPath;
433 }
434 
435 QString CurrentLocationWidget::lastSavePath() const
436 {
437  return d->m_lastSavePath;
438 }
439 
440 void CurrentLocationWidget::setTrackVisible( bool visible )
441 {
442  d->m_currentLocationUi.showTrackCheckBox->setChecked( visible );
443  d->m_widget->model()->positionTracking()->setTrackVisible( visible );
444 }
445 
446 void CurrentLocationWidget::setLastOpenPath( const QString &path )
447 {
448  d->m_lastOpenPath = path;
449 }
450 
451 void CurrentLocationWidget::setLastSavePath( const QString &path )
452 {
453  d->m_lastSavePath = path;
454 }
455 
456 }
457 
458 #include "CurrentLocationWidget.moc"
QWidget::layout
QLayout * layout() const
GeoDataCoordinates.h
QDateTime::toString
QString toString(Qt::DateFormat format) const
Marble::GeoDataCoordinates
A 3d point representation.
Definition: GeoDataCoordinates.h:52
QWidget
m_currentPosition
GeoDataCoordinates m_currentPosition
Definition: OsmDatabase.cpp:53
Marble::GeoDataCoordinates::lonToString
static QString lonToString(qreal lon, GeoDataCoordinates::Notation notation, GeoDataCoordinates::Unit unit=Radian, int precision=-1, char format= 'f')
Definition: GeoDataCoordinates.cpp:933
Marble::AutoNavigation::AlwaysRecenter
Enum Value AlwaysRecenter.
Definition: AutoNavigation.h:49
QString::append
QString & append(QChar ch)
Marble::PluginManager
The class that handles Marble's plugins.
Definition: PluginManager.h:45
Marble::CurrentLocationWidget::setTrackVisible
void setTrackVisible(bool visible)
Definition: CurrentLocationWidget.cpp:440
Marble::MarbleLocale::NauticalSystem
Definition: MarbleLocale.h:40
tracking
Definition: position-tracking.qml:12
Marble::MarbleLocale::measurementSystem
MarbleLocale::MeasurementSystem measurementSystem() const
Definition: MarbleLocale.cpp:45
PositionProviderPlugin.h
QLocale::toString
QString toString(qlonglong i) const
QChar
MarbleModel.h
This file contains the headers for MarbleModel.
Marble::PluginManager::positionProviderPlugins
QList< const PositionProviderPlugin * > positionProviderPlugins() const
Returns all available PositionProviderPlugins.
Definition: PluginManager.cpp:84
Marble::HOUR2SEC
const qreal HOUR2SEC
Definition: MarbleGlobal.h:235
Marble::AutoNavigation::RecenterOnBorder
Enum Value RecenterOnBorder.
Definition: AutoNavigation.h:50
Marble::AutoNavigation
Definition: AutoNavigation.h:27
Marble::CurrentLocationWidget::lastOpenPath
QString lastOpenPath() const
Definition: CurrentLocationWidget.cpp:430
QObject::disconnect
bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method)
MarbleDebug.h
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
Marble::CurrentLocationWidget::recenterMode
AutoNavigation::CenterMode recenterMode() const
Definition: CurrentLocationWidget.cpp:415
Marble::PositionProviderStatusUnavailable
Definition: PositionProviderPluginInterface.h:27
QWidget::update
void update()
QLocale::system
QLocale system()
CurrentLocationWidget.h
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:104
Marble::PositionProviderPlugin
The abstract class that provides position information.
Definition: PositionProviderPlugin.h:26
Marble::PositionTracking
Definition: PositionTracking.h:31
Marble::GeoDataCoordinates::altitude
qreal altitude() const
return the altitude of the Point in meters
Definition: GeoDataCoordinates.cpp:1197
RoutingManager.h
Marble::M2FT
const qreal M2FT
Definition: MarbleGlobal.h:211
Marble::CurrentLocationWidget::setAutoZoom
void setAutoZoom(bool activate)
Slot for Auto Zooming while navigating.
Definition: CurrentLocationWidget.cpp:350
AutoNavigation.h
Marble::PositionProviderPlugin::setMarbleModel
void setMarbleModel(const MarbleModel *)
Definition: PositionProviderPlugin.cpp:42
QMessageBox::question
StandardButton question(QWidget *parent, const QString &title, const QString &text, QFlags< QMessageBox::StandardButton > buttons, StandardButton defaultButton)
Marble::MarbleWidget::model
MarbleModel * model()
Return the model that this view shows.
Definition: MarbleWidget.cpp:289
QString::isEmpty
bool isEmpty() const
MarbleWidgetPopupMenu.h
QString::endsWith
bool endsWith(const QString &s, Qt::CaseSensitivity cs) const
Marble::CurrentLocationWidget::setLastSavePath
void setLastSavePath(const QString &path)
Definition: CurrentLocationWidget.cpp:451
Marble::MarbleGlobal::locale
MarbleLocale * locale() const
Definition: MarbleGlobal.cpp:43
QString
QList
MarbleLocale.h
QLayout::setMargin
void setMargin(int margin)
Marble::METER2KM
const qreal METER2KM
Definition: MarbleGlobal.h:224
Marble::MarbleWidget::viewport
ViewportParams * viewport()
Definition: MarbleWidget.cpp:299
Marble::PositionProviderStatus
PositionProviderStatus
Definition: PositionProviderPluginInterface.h:25
QFileInfo
Marble::CurrentLocationWidget::trackVisible
bool trackVisible() const
Definition: CurrentLocationWidget.cpp:425
Marble::CurrentLocationWidget::setLastOpenPath
void setLastOpenPath(const QString &path)
Definition: CurrentLocationWidget.cpp:446
Marble::KM2MI
const qreal KM2MI
Definition: MarbleGlobal.h:203
Marble::CurrentLocationWidget::autoZoom
bool autoZoom() const
Definition: CurrentLocationWidget.cpp:420
Marble::CurrentLocationWidget::setRecenterMode
void setRecenterMode(int recenterMode)
Slot that decides whether recentering should be done.
Definition: CurrentLocationWidget.cpp:342
Marble::MarbleGlobal::SmallScreen
Definition: MarbleGlobal.h:287
Marble::MarbleGlobal::getInstance
static MarbleGlobal * getInstance()
Definition: MarbleGlobal.cpp:37
Marble::FlyToMode
FlyToMode
Describes possible flight mode (interpolation between source and target camera positions) ...
Definition: MarbleGlobal.h:173
Marble::MarbleLocale::MetricSystem
Definition: MarbleLocale.h:38
Marble::CurrentLocationWidget::CurrentLocationWidget
CurrentLocationWidget(QWidget *parent=0, Qt::WindowFlags f=0)
Definition: CurrentLocationWidget.cpp:81
Marble::GeoDataCoordinates::latToString
static QString latToString(qreal lat, GeoDataCoordinates::Notation notation, GeoDataCoordinates::Unit unit=Radian, int precision=-1, char format= 'f')
Definition: GeoDataCoordinates.cpp:1080
QDateTime::currentDateTime
QDateTime currentDateTime()
QLatin1String
Marble::PositionProviderStatusError
Definition: PositionProviderPluginInterface.h:26
PluginManager.h
Marble::MarbleGlobal::profiles
Profiles profiles() const
Definition: MarbleGlobal.cpp:48
QFileDialog::getSaveFileName
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFlags< QFileDialog::Option > options)
Marble::CurrentLocationWidget::lastSavePath
QString lastSavePath() const
Definition: CurrentLocationWidget.cpp:435
QString::length
int length() const
MarbleWidget.h
This file contains the headers for MarbleWidget.
Marble::PositionProviderPlugin::guiString
virtual QString guiString() const =0
Returns the string that should appear in the user interface.
Marble::PositionProviderPlugin::newInstance
virtual PositionProviderPlugin * newInstance() const =0
Create a new PositionProvider Plugin and return it.
Marble::PositionProviderStatusAvailable
Definition: PositionProviderPluginInterface.h:29
Qt::WindowFlags
typedef WindowFlags
Marble::PositionTracking::setPositionProviderPlugin
void setPositionProviderPlugin(PositionProviderPlugin *plugin)
Change the position provider to use.
Definition: PositionTracking.cpp:184
Marble::MarbleLocale::ImperialSystem
Definition: MarbleLocale.h:39
Marble::KM2NM
const qreal KM2NM
Definition: MarbleGlobal.h:207
QFileDialog::getOpenFileName
QString getOpenFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFlags< QFileDialog::Option > options)
PositionTracking.h
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Marble::AutoNavigation::CenterMode
CenterMode
An enum type Represents which recentering method is selected.
Definition: AutoNavigation.h:47
QString::arg
QString arg(qlonglong a, int fieldWidth, int base, const QChar &fillChar) const
Marble::GeoDataPlacemark
a class representing a point of interest on the map
Definition: GeoDataPlacemark.h:54
Marble::GeoDataLatLonAltBox
A class that defines a 3D bounding box for geographic data.
Definition: GeoDataLatLonAltBox.h:49
Marble::PositionProviderStatusAcquiring
Definition: PositionProviderPluginInterface.h:28
Marble::CurrentLocationWidget::setMarbleWidget
void setMarbleWidget(MarbleWidget *widget)
Set a MarbleWidget associated to this widget.
Definition: CurrentLocationWidget.cpp:104
Marble::CurrentLocationWidget::~CurrentLocationWidget
~CurrentLocationWidget()
Definition: CurrentLocationWidget.cpp:99
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