• 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
  • routing
RoutingManager.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 Dennis Nienhüser <earthwings@gentoo.org>
9 //
10 
11 #include "RoutingManager.h"
12 
13 #include "AlternativeRoutesModel.h"
14 #include "MarbleWidget.h"
15 #include "MarbleModel.h"
16 #include "RouteRequest.h"
17 #include "RoutingModel.h"
18 #include "RoutingProfilesModel.h"
19 #include "RoutingRunnerPlugin.h"
20 #include "AutoNavigation.h"
21 #include "GeoWriter.h"
22 #include "GeoDataDocument.h"
23 #include "GeoDataParser.h"
24 #include "GeoDataFolder.h"
25 #include "MarbleDirs.h"
26 #include "MarbleDebug.h"
27 #include "PositionTracking.h"
28 #include "PluginManager.h"
29 #include "PositionProviderPlugin.h"
30 #include "RoutingRunnerManager.h"
31 #include <KmlElementDictionary.h>
32 
33 #include <QFile>
34 #include <QMessageBox>
35 #include <QCheckBox>
36 #include <QMutexLocker>
37 
38 namespace Marble
39 {
40 
41 class RoutingManagerPrivate
42 {
43 public:
44  RoutingManager* q;
45 
46  RouteRequest m_routeRequest;
47 
48  RoutingModel m_routingModel;
49 
50  RoutingProfilesModel m_profilesModel;
51 
52  MarbleModel *const m_marbleModel;
53 
54  AlternativeRoutesModel m_alternativeRoutesModel;
55 
56  RoutingRunnerManager m_runnerManager;
57 
58  bool m_haveRoute;
59 
60  AutoNavigation *m_adjustNavigation;
61 
62  bool m_guidanceModeEnabled;
63 
64  QMutex m_fileMutex;
65 
66  bool m_shutdownPositionTracking;
67 
68  bool m_guidanceModeWarning;
69 
70  QString m_lastOpenPath;
71 
72  QString m_lastSavePath;
73 
74  QColor m_routeColorStandard;
75 
76  QColor m_routeColorHighlighted;
77 
78  QColor m_routeColorAlternative;
79 
80  RoutingManagerPrivate( MarbleModel *marbleModel, RoutingManager* manager, QObject *parent );
81 
82  GeoDataFolder* routeRequest() const;
83 
84  static QString stateFile( const QString &name = QString( "route.kml" ) );
85 
86  void saveRoute( const QString &filename );
87 
88  void loadRoute( const QString &filename );
89 
90  void addRoute( GeoDataDocument* route );
91 
92  void recalculateRoute( bool deviated );
93 };
94 
95 RoutingManagerPrivate::RoutingManagerPrivate( MarbleModel *model, RoutingManager* manager, QObject *parent ) :
96  q( manager ),
97  m_routeRequest( manager ),
98  m_routingModel( &m_routeRequest, model, manager ),
99  m_profilesModel( model->pluginManager() ),
100  m_marbleModel( model ),
101  m_alternativeRoutesModel( parent ),
102  m_runnerManager( model, q ),
103  m_haveRoute( false ),
104  m_adjustNavigation( 0 ),
105  m_guidanceModeEnabled( false ),
106  m_shutdownPositionTracking( false ),
107  m_guidanceModeWarning( true ),
108  m_routeColorStandard( Oxygen::skyBlue4 ),
109  m_routeColorHighlighted( Oxygen::skyBlue1 ),
110  m_routeColorAlternative( Oxygen::aluminumGray4 )
111 {
112  m_routeColorStandard.setAlpha( 200 );
113  m_routeColorHighlighted.setAlpha( 200 );
114  m_routeColorAlternative.setAlpha( 200 );
115 }
116 
117 GeoDataFolder* RoutingManagerPrivate::routeRequest() const
118 {
119  GeoDataFolder* result = new GeoDataFolder;
120  result->setName( "Route Request" );
121  for ( int i=0; i<m_routeRequest.size(); ++i ) {
122  GeoDataPlacemark* placemark = new GeoDataPlacemark( m_routeRequest[i] );
123  result->append( placemark );
124  }
125 
126  return result;
127 }
128 
129 QString RoutingManagerPrivate::stateFile( const QString &name)
130 {
131  QString const subdir = "routing";
132  QDir dir( MarbleDirs::localPath() );
133  if ( !dir.exists( subdir ) ) {
134  if ( !dir.mkdir( subdir ) ) {
135  mDebug() << "Unable to create dir " << dir.absoluteFilePath( subdir );
136  return dir.absolutePath();
137  }
138  }
139 
140  if ( !dir.cd( subdir ) ) {
141  mDebug() << "Cannot change into " << dir.absoluteFilePath( subdir );
142  }
143 
144  return dir.absoluteFilePath( name );
145 }
146 
147 void RoutingManagerPrivate::saveRoute(const QString &filename)
148 {
149  GeoWriter writer;
150  writer.setDocumentType( kml::kmlTag_nameSpaceOgc22 );
151 
152  QMutexLocker locker( &m_fileMutex );
153  QFile file( filename );
154  if ( !file.open( QIODevice::WriteOnly | QIODevice::Truncate ) )
155  {
156  mDebug() << "Cannot write to " << file.fileName();
157  return;
158  }
159 
160  GeoDataDocument container;
161  GeoDataFolder* request = routeRequest();
162  if ( request ) {
163  container.append( request );
164  }
165 
166  GeoDataDocument *route = m_alternativeRoutesModel.currentRoute();
167  if ( route ) {
168  container.append( new GeoDataDocument( *route ) );
169  }
170 
171  if ( !writer.write( &file, &container ) ) {
172  mDebug() << "Can not write route state to " << file.fileName();
173  }
174  file.close();
175 }
176 
177 void RoutingManagerPrivate::loadRoute(const QString &filename)
178 {
179  QFile file( filename );
180  if ( !file.open( QIODevice::ReadOnly ) ) {
181  mDebug() << "Can not read route from " << file.fileName();
182  return;
183  }
184 
185  GeoDataParser parser( GeoData_KML );
186  if ( !parser.read( &file ) ) {
187  mDebug() << "Could not parse file: " << parser.errorString();
188  return;
189  }
190 
191  GeoDocument *doc = parser.releaseDocument();
192  file.close();
193  bool loaded = false;
194 
195  GeoDataDocument* container = dynamic_cast<GeoDataDocument*>( doc );
196  if ( container && container->size() > 0 ) {
197  GeoDataFolder* viaPoints = dynamic_cast<GeoDataFolder*>( &container->first() );
198  if ( viaPoints ) {
199  loaded = true;
200  QVector<GeoDataPlacemark*> placemarks = viaPoints->placemarkList();
201  for( int i=0; i<placemarks.size(); ++i ) {
202  if ( i < m_routeRequest.size() ) {
203  m_routeRequest[i] = *placemarks[i];
204  } else {
205  m_routeRequest.append( *placemarks[i] );
206  }
207  }
208 
209  // clear unneeded via points
210  const int viaPoints_needed = placemarks.size();
211  for ( int i = m_routeRequest.size(); i > viaPoints_needed; --i ) {
212  m_routeRequest.remove( viaPoints_needed );
213  }
214  } else {
215  mDebug() << "Expected a GeoDataDocument with at least one child, didn't get one though";
216  }
217  }
218 
219  if ( container && container->size() == 2 ) {
220  GeoDataDocument* route = dynamic_cast<GeoDataDocument*>(&container->last());
221  if ( route ) {
222  loaded = true;
223  m_alternativeRoutesModel.clear();
224  m_alternativeRoutesModel.addRoute( route, AlternativeRoutesModel::Instant );
225  m_alternativeRoutesModel.setCurrentRoute( 0 );
226  emit q->stateChanged( RoutingManager::Retrieved );
227  emit q->routeRetrieved( route );
228  } else {
229  mDebug() << "Expected a GeoDataDocument child, didn't get one though";
230  }
231  }
232 
233  if ( !loaded ) {
234  mDebug() << "File " << filename << " is not a valid Marble route .kml file";
235  delete doc;
236  m_marbleModel->addGeoDataFile( filename );
237  }
238 }
239 
240 RoutingManager::RoutingManager( MarbleModel *marbleModel, QObject *parent ) : QObject( parent ),
241  d( new RoutingManagerPrivate( marbleModel, this, this ) )
242 {
243  connect( &d->m_runnerManager, SIGNAL(routeRetrieved(GeoDataDocument*)),
244  this, SLOT(addRoute(GeoDataDocument*)) );
245  connect( &d->m_alternativeRoutesModel, SIGNAL(currentRouteChanged(GeoDataDocument*)),
246  &d->m_routingModel, SLOT(setCurrentRoute(GeoDataDocument*)) );
247  connect( &d->m_routingModel, SIGNAL(deviatedFromRoute(bool)),
248  this, SLOT(recalculateRoute(bool)) );
249 }
250 
251 RoutingManager::~RoutingManager()
252 {
253  delete d;
254 }
255 
256 RoutingProfilesModel *RoutingManager::profilesModel()
257 {
258  return &d->m_profilesModel;
259 }
260 
261 RoutingModel *RoutingManager::routingModel()
262 {
263  return &d->m_routingModel;
264 }
265 
266 const RoutingModel *RoutingManager::routingModel() const
267 {
268  return &d->m_routingModel;
269 }
270 
271 RouteRequest* RoutingManager::routeRequest()
272 {
273  return &d->m_routeRequest;
274 }
275 
276 void RoutingManager::retrieveRoute()
277 {
278  d->m_haveRoute = false;
279 
280  int realSize = 0;
281  for ( int i = 0; i < d->m_routeRequest.size(); ++i ) {
282  // Sort out dummy targets
283  if ( d->m_routeRequest.at( i ).longitude() != 0.0 && d->m_routeRequest.at( i ).latitude() != 0.0 ) {
284  ++realSize;
285  }
286  }
287 
288  d->m_alternativeRoutesModel.newRequest( &d->m_routeRequest );
289  if ( realSize > 1 ) {
290  emit stateChanged( RoutingManager::Downloading );
291  d->m_runnerManager.retrieveRoute( &d->m_routeRequest );
292  } else {
293  d->m_routingModel.clear();
294  emit stateChanged( RoutingManager::Retrieved );
295  }
296 }
297 
298 void RoutingManagerPrivate::addRoute( GeoDataDocument* route )
299 {
300  if ( route ) {
301  m_alternativeRoutesModel.addRoute( route );
302  }
303 
304  if ( !m_haveRoute ) {
305  m_haveRoute = route != 0;
306  emit q->stateChanged( RoutingManager::Retrieved );
307  }
308 
309  emit q->routeRetrieved( route );
310 }
311 
312 AlternativeRoutesModel* RoutingManager::alternativeRoutesModel()
313 {
314  return &d->m_alternativeRoutesModel;
315 }
316 
317 void RoutingManager::setAutoNavigation( AutoNavigation* adjustNavigation )
318 {
319  d->m_adjustNavigation = adjustNavigation;
320 }
321 
322 const AutoNavigation* RoutingManager::adjustNavigation() const
323 {
324  return d->m_adjustNavigation;
325 }
326 
327 void RoutingManager::writeSettings() const
328 {
329  d->saveRoute( d->stateFile() );
330 }
331 
332 void RoutingManager::saveRoute( const QString &filename ) const
333 {
334  d->saveRoute( filename );
335 }
336 
337 void RoutingManager::loadRoute( const QString &filename )
338 {
339  d->loadRoute( filename );
340 }
341 
342 RoutingProfile RoutingManager::defaultProfile( RoutingProfile::TransportType transportType ) const
343 {
344  RoutingProfile profile;
345  RoutingProfilesModel::ProfileTemplate tpl = RoutingProfilesModel::CarFastestTemplate;
346  switch ( transportType ) {
347  case RoutingProfile::Motorcar:
348  tpl = RoutingProfilesModel::CarFastestTemplate;
349  profile.setName( "Motorcar" );
350  profile.setTransportType( RoutingProfile::Motorcar );
351  break;
352  case RoutingProfile::Bicycle:
353  tpl = RoutingProfilesModel::BicycleTemplate;
354  profile.setName( "Bicycle" );
355  profile.setTransportType( RoutingProfile::Bicycle );
356  break;
357  case RoutingProfile::Pedestrian:
358  tpl = RoutingProfilesModel::PedestrianTemplate;
359  profile.setName( "Pedestrian" );
360  profile.setTransportType( RoutingProfile::Pedestrian );
361  break;
362  }
363 
364  const PluginManager* pluginManager = d->m_marbleModel->pluginManager();
365  foreach( RoutingRunnerPlugin* plugin, pluginManager->routingRunnerPlugins() ) {
366  if ( plugin->supportsTemplate( tpl ) ) {
367  profile.pluginSettings()[plugin->nameId()] = plugin->templateSettings( tpl );
368  }
369  }
370 
371  return profile;
372 }
373 
374 void RoutingManager::readSettings()
375 {
376  d->loadRoute( d->stateFile() );
377 }
378 
379 void RoutingManager::setGuidanceModeEnabled( bool enabled )
380 {
381  d->m_guidanceModeEnabled = enabled;
382 
383  if ( enabled ) {
384  d->saveRoute( d->stateFile( "guidance.kml" ) );
385 
386  if ( d->m_guidanceModeWarning ) {
387  QString text = "<p>" + tr( "Caution: Driving instructions may be incomplete or wrong." );
388  text += ' ' + tr( "Road construction, weather and other unforeseen variables can result in the suggested route not to be the most expedient or safest route to your destination." );
389  text += ' ' + tr( "Please use common sense while navigating." ) + "</p>";
390  text += "<p>" + tr( "The Marble development team wishes you a pleasant and safe journey." ) + "</p>";
391  QPointer<QMessageBox> messageBox = new QMessageBox( QMessageBox::Information, tr( "Guidance Mode - Marble" ), text, QMessageBox::Ok );
392  QCheckBox *showAgain = new QCheckBox( tr( "Show again" ) );
393  showAgain->setChecked( true );
394  showAgain->blockSignals( true ); // otherwise it'd close the dialog
395  messageBox->addButton( showAgain, QMessageBox::ActionRole );
396  const bool smallScreen = MarbleGlobal::getInstance()->profiles() & MarbleGlobal::SmallScreen;
397  messageBox->resize( 380, smallScreen ? 400 : 240 );
398  messageBox->exec();
399  if ( !messageBox.isNull() ) {
400  d->m_guidanceModeWarning = showAgain->isChecked();
401  }
402  delete messageBox;
403  }
404  } else {
405  d->loadRoute( d->stateFile( "guidance.kml" ) );
406  }
407 
408  PositionTracking* tracking = d->m_marbleModel->positionTracking();
409  PositionProviderPlugin* positionProvider = tracking->positionProviderPlugin();
410  if ( !positionProvider && enabled ) {
411  const PluginManager* pluginManager = d->m_marbleModel->pluginManager();
412  QList<const PositionProviderPlugin*> plugins = pluginManager->positionProviderPlugins();
413  if ( plugins.size() > 0 ) {
414  positionProvider = plugins.first()->newInstance();
415  }
416  tracking->setPositionProviderPlugin( positionProvider );
417  d->m_shutdownPositionTracking = true;
418  } else if ( positionProvider && !enabled && d->m_shutdownPositionTracking ) {
419  d->m_shutdownPositionTracking = false;
420  tracking->setPositionProviderPlugin( 0 );
421  }
422 
423  if ( d->m_adjustNavigation ) {
424  d->m_adjustNavigation->setAutoZoom( enabled );
425  d->m_adjustNavigation->setRecenter( enabled ? AutoNavigation::RecenterOnBorder : AutoNavigation::DontRecenter );
426  }
427 }
428 
429 void RoutingManagerPrivate::recalculateRoute( bool deviated )
430 {
431  if ( m_guidanceModeEnabled && deviated ) {
432  for ( int i=m_routeRequest.size()-3; i>=0; --i ) {
433  if ( m_routeRequest.visited( i ) ) {
434  m_routeRequest.remove( i );
435  }
436  }
437 
438  if ( m_routeRequest.size() == 2 && m_routeRequest.visited( 0 ) && !m_routeRequest.visited( 1 ) ) {
439  m_routeRequest.setPosition( 0, m_marbleModel->positionTracking()->currentLocation(), QObject::tr( "Current Location" ) );
440  q->retrieveRoute();
441  } else if ( m_routeRequest.size() != 0 && !m_routeRequest.visited( m_routeRequest.size()-1 ) ) {
442  m_routeRequest.insert( 0, m_marbleModel->positionTracking()->currentLocation(), QObject::tr( "Current Location" ) );
443  q->retrieveRoute();
444  }
445  }
446 }
447 
448 void RoutingManager::reverseRoute()
449 {
450  d->m_routeRequest.reverse();
451  retrieveRoute();
452 }
453 
454 void RoutingManager::clearRoute()
455 {
456  d->m_routeRequest.clear();
457  retrieveRoute();
458 }
459 
460 void RoutingManager::setShowGuidanceModeStartupWarning( bool show )
461 {
462  d->m_guidanceModeWarning = show;
463 }
464 
465 bool RoutingManager::showGuidanceModeStartupWarning() const
466 {
467  return d->m_guidanceModeWarning;
468 }
469 
470 void RoutingManager::setLastOpenPath( const QString &path )
471 {
472  d->m_lastOpenPath = path;
473 }
474 
475 QString RoutingManager::lastOpenPath() const
476 {
477  return d->m_lastOpenPath;
478 }
479 
480 void RoutingManager::setLastSavePath( const QString &path )
481 {
482  d->m_lastSavePath = path;
483 }
484 
485 QString RoutingManager::lastSavePath() const
486 {
487  return d->m_lastSavePath;
488 }
489 
490 void RoutingManager::setRouteColorStandard( QColor color )
491 {
492  d->m_routeColorStandard = color;
493 }
494 
495 QColor RoutingManager::routeColorStandard() const
496 {
497  return d->m_routeColorStandard;
498 }
499 
500 void RoutingManager::setRouteColorHighlighted( QColor color )
501 {
502  d->m_routeColorHighlighted = color;
503 }
504 
505 QColor RoutingManager::routeColorHighlighted() const
506 {
507  return d->m_routeColorHighlighted;
508 }
509 
510 void RoutingManager::setRouteColorAlternative( QColor color )
511 {
512  d->m_routeColorAlternative = color;
513 }
514 
515 QColor RoutingManager::routeColorAlternative() const
516 {
517  return d->m_routeColorAlternative;
518 }
519 
520 bool RoutingManager::guidanceModeEnabled() const
521 {
522  return d->m_guidanceModeEnabled;
523 }
524 
525 } // namespace Marble
526 
527 #include "RoutingManager.moc"
GeoDataDocument.h
Marble::PositionTracking::positionProviderPlugin
PositionProviderPlugin positionProviderPlugin
Definition: PositionTracking.h:35
QMutex
Marble::RoutingManager::routeRetrieved
void routeRetrieved(GeoDataDocument *route)
RoutingModel.h
Marble::RoutingManager::clearRoute
void clearRoute()
Clear all via points.
Definition: RoutingManager.cpp:454
RoutingRunnerManager.h
Marble::PluginManager
The class that handles Marble's plugins.
Definition: PluginManager.h:45
Marble::GeoDataDocument
A container for Features, Styles and in the future Schemas.
Definition: GeoDataDocument.h:65
tracking
Definition: position-tracking.qml:12
PositionProviderPlugin.h
QVector::append
void append(const T &value)
Marble::RoutingRunnerPlugin::templateSettings
virtual QHash< QString, QVariant > templateSettings(RoutingProfilesModel::ProfileTemplate profileTemplate) const
Settings for the given routing profile template.
Definition: RoutingRunnerPlugin.cpp:91
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
QPointer
Marble::RoutingProfilesModel
Definition: RoutingProfilesModel.h:25
Marble::RoutingManager::setRouteColorAlternative
void setRouteColorAlternative(QColor color)
Set color for alternative route rendering.
Definition: RoutingManager.cpp:510
Marble::AutoNavigation::DontRecenter
Definition: AutoNavigation.h:48
Marble::AutoNavigation::RecenterOnBorder
Enum Value RecenterOnBorder.
Definition: AutoNavigation.h:50
Marble::RoutingManager::routeColorAlternative
QColor routeColorAlternative() const
Get color for alternative route rendering.
Definition: RoutingManager.cpp:515
GeoDataParser.h
Marble::MarbleDirs::localPath
static QString localPath()
Definition: MarbleDirs.cpp:223
Marble::AutoNavigation
Definition: AutoNavigation.h:27
Marble::RoutingProfile
Definition: RoutingProfile.h:24
Marble::RoutingManager::saveRoute
void saveRoute(const QString &filename) const
Saves the current route to the file with the given filename.
Definition: RoutingManager.cpp:332
MarbleDebug.h
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
QFile
Marble::PluginManager::routingRunnerPlugins
QList< RoutingRunnerPlugin * > routingRunnerPlugins() const
Returns all routing runner plugins.
Definition: PluginManager.cpp:123
QList::size
int size() const
GeoWriter.h
Marble::RoutingProfile::Pedestrian
Definition: RoutingProfile.h:32
Marble::PositionProviderPlugin
The abstract class that provides position information.
Definition: PositionProviderPlugin.h:26
Marble::PositionTracking
Definition: PositionTracking.h:31
Marble::GeoData_KML
Definition: GeoDataParser.h:36
Marble::RoutingManager::routingModel
RoutingModel * routingModel()
Provides access to the routing model which contains a list of routing instructions describing steps t...
Definition: RoutingManager.cpp:261
Marble::RoutingManager::routeRequest
RouteRequest * routeRequest()
Returns the current route request.
Definition: RoutingManager.cpp:271
Marble::RouteRequest
Points to be included in a route.
Definition: RouteRequest.h:31
Marble::RoutingManager::setRouteColorStandard
void setRouteColorStandard(QColor color)
Set color for standard route rendering.
Definition: RoutingManager.cpp:490
Marble::RoutingManager::Retrieved
Definition: RoutingManager.h:44
Marble::RoutingManager::routeColorStandard
QColor routeColorStandard() const
Get color for standard route rendering.
Definition: RoutingManager.cpp:495
Marble::RoutingManager::stateChanged
void stateChanged(RoutingManager::State newState)
Directions and waypoints for the given route are being downloaded or have been retrieved – newState ...
Marble::AlternativeRoutesModel::Instant
Definition: AlternativeRoutesModel.h:37
RoutingManager.h
Marble::RoutingManager::defaultProfile
RoutingProfile defaultProfile(RoutingProfile::TransportType transportType) const
Generates a routing profile with default settings for the given transport type.
Definition: RoutingManager.cpp:342
Marble::RoutingManager::setGuidanceModeEnabled
void setGuidanceModeEnabled(bool enabled)
Toggle turn by turn navigation mode.
Definition: RoutingManager.cpp:379
Marble::Oxygen::aluminumGray4
QColor const aluminumGray4
Definition: MarbleColors.h:92
AutoNavigation.h
QMessageBox
RoutingRunnerPlugin.h
Marble::Oxygen::skyBlue1
QColor const skyBlue1
Definition: MarbleColors.h:59
KmlElementDictionary.h
Marble::RoutingManager::reverseRoute
void reverseRoute()
Reverse the previously requested route, i.e.
Definition: RoutingManager.cpp:448
QObject
QPointer::isNull
bool isNull() const
QCheckBox
Marble::RoutingProfile::setTransportType
void setTransportType(TransportType transportType)
Definition: RoutingProfile.cpp:43
Marble::RoutingManager::loadRoute
void loadRoute(const QString &filename)
Opens the given filename (kml format) and loads the route contained in it.
Definition: RoutingManager.cpp:337
Marble::RoutingManager::setRouteColorHighlighted
void setRouteColorHighlighted(QColor color)
Set color for highlighted route rendering.
Definition: RoutingManager.cpp:500
Marble::RoutingManager::profilesModel
RoutingProfilesModel * profilesModel()
Provides access to the model which contains all possible routing profiles.
Definition: RoutingManager.cpp:256
MarbleDirs.h
Marble::RoutingManager::setLastSavePath
void setLastSavePath(const QString &path)
Set last directory the user saved a route to.
Definition: RoutingManager.cpp:480
Marble::RoutingManager::~RoutingManager
~RoutingManager()
Destructor.
Definition: RoutingManager.cpp:251
Marble::RoutingManager::lastSavePath
QString lastSavePath() const
Return last directory the user saved a route to.
Definition: RoutingManager.cpp:485
Marble::Oxygen::skyBlue4
QColor const skyBlue4
Definition: MarbleColors.h:56
Marble::RoutingManager::setShowGuidanceModeStartupWarning
void setShowGuidanceModeStartupWarning(bool show)
Set whether a warning message should be shown to the user before starting guidance mode...
Definition: RoutingManager.cpp:460
QList::first
T & first()
QString
QList
QColor
Marble::RoutingManager::readSettings
void readSettings()
Restores a previously saved route request and route from disk, if any.
Definition: RoutingManager.cpp:374
Marble::PluginInterface::nameId
virtual QString nameId() const =0
Returns the unique name of the plugin.
Marble::RoutingRunnerPlugin::supportsTemplate
virtual bool supportsTemplate(RoutingProfilesModel::ProfileTemplate profileTemplate) const
True if the plugin supports the given routing profile template.
Definition: RoutingRunnerPlugin.cpp:86
Marble::RoutingProfilesModel::CarFastestTemplate
Definition: RoutingProfilesModel.h:36
Marble::kml::kmlTag_nameSpaceOgc22
const char * kmlTag_nameSpaceOgc22
Definition: KmlElementDictionary.cpp:34
Marble::RoutingProfile::TransportType
TransportType
Definition: RoutingProfile.h:29
QObject::blockSignals
bool blockSignals(bool block)
Marble::RoutingManager::adjustNavigation
const AutoNavigation * adjustNavigation() const
returns the instance of AutoNavigation This is a temporary location for AutoNavigation.
Definition: RoutingManager.cpp:322
Marble::RoutingManager::retrieveRoute
void retrieveRoute()
Retrieve a route suiting the routeRequest.
Definition: RoutingManager.cpp:276
Marble::MarbleGlobal::SmallScreen
Definition: MarbleGlobal.h:287
Marble::RoutingModel
Definition: RoutingModel.h:34
Marble::MarbleGlobal::getInstance
static MarbleGlobal * getInstance()
Definition: MarbleGlobal.cpp:37
Marble::RoutingProfile::pluginSettings
const QHash< QString, QHash< QString, QVariant > > & pluginSettings() const
Definition: RoutingProfile.cpp:33
Marble::RoutingManager::setLastOpenPath
void setLastOpenPath(const QString &path)
Set last directory the user opened a route from.
Definition: RoutingManager.cpp:470
QDir
QAbstractButton::setChecked
void setChecked(bool)
Marble::RoutingManager::guidanceModeEnabled
bool guidanceModeEnabled() const
Definition: RoutingManager.cpp:520
GeoDataFolder.h
Marble::RoutingProfile::setName
void setName(const QString &name)
Definition: RoutingProfile.cpp:28
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:97
Marble::RoutingProfilesModel::ProfileTemplate
ProfileTemplate
Definition: RoutingProfilesModel.h:35
Marble::AlternativeRoutesModel
Definition: AlternativeRoutesModel.h:31
Marble::RoutingProfilesModel::BicycleTemplate
Definition: RoutingProfilesModel.h:39
QVector
QMutexLocker
PluginManager.h
Marble::RoutingRunnerPlugin
A plugin for Marble to execute a routing task.
Definition: RoutingRunnerPlugin.h:33
Marble::MarbleGlobal::profiles
Profiles profiles() const
Definition: MarbleGlobal.cpp:48
Marble::RoutingManager::setAutoNavigation
void setAutoNavigation(AutoNavigation *adjustNavigation)
Definition: RoutingManager.cpp:317
Marble::RoutingManager::writeSettings
void writeSettings() const
Saves the current route request and the current route to disk.
Definition: RoutingManager.cpp:327
AlternativeRoutesModel.h
MarbleWidget.h
This file contains the headers for MarbleWidget.
RouteRequest.h
Marble::PositionTracking::setPositionProviderPlugin
void setPositionProviderPlugin(PositionProviderPlugin *plugin)
Change the position provider to use.
Definition: PositionTracking.cpp:184
Marble::RoutingManager::Downloading
Definition: RoutingManager.h:43
Marble::RoutingManager::RoutingManager
RoutingManager(MarbleModel *marbleModel, QObject *parent=0)
Constructor.
Definition: RoutingManager.cpp:240
PositionTracking.h
Marble::RoutingManager::routeColorHighlighted
QColor routeColorHighlighted() const
Get color for highlighted route rendering.
Definition: RoutingManager.cpp:505
Marble::RoutingProfile::Motorcar
Definition: RoutingProfile.h:30
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Marble::RoutingProfilesModel::PedestrianTemplate
Definition: RoutingProfilesModel.h:40
QVector::size
int size() const
Marble::RoutingProfile::Bicycle
Definition: RoutingProfile.h:31
Marble::RoutingManager::lastOpenPath
QString lastOpenPath() const
Return last directory the user opened a route from.
Definition: RoutingManager.cpp:475
Marble::mDebug
QDebug mDebug()
a function to replace qDebug() in Marble library code
Definition: MarbleDebug.cpp:36
Marble::RoutingManager::showGuidanceModeStartupWarning
bool showGuidanceModeStartupWarning() const
Returns true (default) if a warning is shown to the user when starting guidance mode.
Definition: RoutingManager.cpp:465
RoutingProfilesModel.h
Marble::RoutingManager::alternativeRoutesModel
AlternativeRoutesModel * alternativeRoutesModel()
Provides access to the model which contains a list of alternative routes.
Definition: RoutingManager.cpp:312
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