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