• 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
  • apps
  • marble-mobile
MobileMainWindow.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 2006-2010 Torsten Rahn <tackat@kde.org>
9 // Copyright 2007 Inge Wallin <ingwa@kde.org>
10 // Copyright 2010-2013 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
11 // Copyright 2012 Illya Kovalevskyy <illya.kovalevskyy@gmail.com>
12 // Copyright 2012 Mohammed Nafees <nafees.technocool@gmail.com>
13 //
14 
15 #include "MobileMainWindow.h"
16 
17 #include "StackableWindow.h"
18 
19 // Marble
20 #include "BookmarkManager.h"
21 #include "BookmarkManagerDialog.h"
22 #include "CurrentLocationWidget.h"
23 #include "DownloadRegionDialog.h"
24 #include "GoToDialog.h"
25 #include "MapViewWidget.h"
26 #include "MarbleAboutDialog.h"
27 #include "MarbleDebug.h"
28 #include "MarbleDirs.h"
29 #include "MarbleLegendBrowser.h"
30 #include "MarbleLocale.h"
31 #include "MarbleModel.h"
32 #include "MarbleWidget.h"
33 #include "MarbleWidgetInputHandler.h"
34 #include "Planet.h"
35 #include "PluginManager.h"
36 #include "PositionTracking.h"
37 #include "PositionProviderPlugin.h"
38 #include "ViewportParams.h"
39 #include "routing/RoutingManager.h"
40 #include "routing/RoutingProfilesModel.h"
41 #include "routing/RoutingWidget.h"
42 #include "routing/RouteRequest.h"
43 
44 #include <QList>
45 #include <QSettings>
46 #include <QCloseEvent>
47 #include <QVariantMap>
48 #include <QVector>
49 
50 #include <QAction>
51 #include <QApplication>
52 #include <QIcon>
53 #include <QMenuBar>
54 #include <QScrollArea>
55 #include <QSplitter>
56 
57 // For zoom buttons on Maemo
58 #ifdef Q_WS_MAEMO_5
59 #include <QX11Info>
60 #include <X11/Xlib.h>
61 #include <X11/Xatom.h>
62 #endif // Q_WS_MAEMO_5
63 
64 namespace {
65 
66 const QString defaultMapThemeId = "earth/openstreetmap/openstreetmap.dgml";
67  // "earth/srtm/srtm.dgml"
68  // "earth/bluemarble/bluemarble.dgml"
69 
70 }
71 
72 using namespace Marble;
73 /* TRANSLATOR Marble::MainWindow */
74 
75 MainWindow::MainWindow( const QString &marbleDataPath, const QVariantMap &cmdLineSettings, QWidget *parent ) :
76  QMainWindow( parent ),
77  m_marbleWidget( new MarbleWidget( this ) ),
78  m_legendBrowser( new MarbleLegendBrowser( this ) ),
79  m_downloadRegionDialog( 0 ),
80  m_mapViewDialog( 0 ),
81  m_routingWindow( 0 ),
82  m_trackingWindow( 0 ),
83  m_gotoDialog( 0 ),
84  m_routingWidget( 0 ),
85  m_workOfflineAct( 0 ),
86  m_kineticScrollingAction( 0 ),
87  m_showLegendAct( 0 )
88 {
89 #ifdef Q_WS_MAEMO_5
90  setAttribute( Qt::WA_Maemo5StackedWindow );
91 #endif // Q_WS_MAEMO_5
92  setUpdatesEnabled( false );
93 
94  m_legendBrowser->setMarbleModel( m_marbleWidget->model() );
95  connect( m_legendBrowser, SIGNAL(toggledShowProperty(QString,bool)),
96  m_marbleWidget, SLOT(setPropertyValue(QString,bool)), Qt::QueuedConnection );
97 
98  // prevent triggering of network requests under Maemo, presumably due to qrc: URLs
99  m_networkAccessManager.setNetworkAccessible( QNetworkAccessManager::NotAccessible );
100  m_legendBrowser->page()->setNetworkAccessManager( &m_networkAccessManager );
101 
102  QString selectedPath = marbleDataPath.isEmpty() ? readMarbleDataPath() : marbleDataPath;
103  if ( !selectedPath.isEmpty() )
104  MarbleDirs::setMarbleDataPath( selectedPath );
105 
106  QSplitter *splitter = new QSplitter( this );
107  splitter->setOrientation( Qt::Horizontal );
108  splitter->addWidget( m_legendBrowser );
109  splitter->setStretchFactor( 0, 0 );
110  splitter->addWidget( m_marbleWidget );
111  splitter->setStretchFactor( 1, 1 );
112  splitter->setSizes( QList<int>() << 180 << width() - 180 );
113 
114  setWindowTitle( tr( "Marble - Virtual Globe" ) );
115  setWindowIcon( QIcon( ":/icons/marble.png" ) );
116  setCentralWidget( splitter );
117 
118  m_workOfflineAct = menuBar()->addAction( tr( "Work Off&line" ) );
119  m_workOfflineAct->setIcon( QIcon( ":/icons/user-offline.png" ) );
120  m_workOfflineAct->setCheckable( true );
121  m_workOfflineAct->setChecked( m_marbleWidget->model()->workOffline() );
122  connect( m_workOfflineAct, SIGNAL(triggered(bool)), this, SLOT(setWorkOffline(bool)) );
123 
124  m_kineticScrollingAction = menuBar()->addAction( tr( "&Inertial Globe Rotation" ) );
125  m_kineticScrollingAction->setCheckable( true );
126  connect( m_kineticScrollingAction, SIGNAL(triggered(bool)), this, SLOT(setKineticScrollingEnabled(bool)) );
127 
129  //menuBar()->addAction( m_fullScreenAct );
130 
131  QAction *const downloadRegionAction = menuBar()->addAction( tr( "Download &Region..." ) );
132  downloadRegionAction->setStatusTip( tr( "Download a map region in different zoom levels for offline usage" ) );
133  connect( downloadRegionAction, SIGNAL(triggered()), SLOT(showDownloadRegionDialog()) );
134 
135  QAction *const showMapViewDialogAction = menuBar()->addAction( tr( "Map View" ) );
136  connect( showMapViewDialogAction, SIGNAL(triggered(bool)), this, SLOT(showMapViewDialog()) );
137 
138  m_showLegendAct = menuBar()->addAction( tr( "Legend" ) );
139  m_showLegendAct->setCheckable( true );
140  connect( m_showLegendAct, SIGNAL(toggled(bool)), this, SLOT(setLegendShown(bool)) );
141 
142  QAction *const m_toggleRoutingTabAction = menuBar()->addAction( tr( "Routing" ) );
143  connect( m_toggleRoutingTabAction, SIGNAL(triggered(bool)), this, SLOT(showRoutingDialog()) );
144 
145  QAction *const m_showTrackingDialogAction = menuBar()->addAction( tr( "Tracking" ) );
146  connect( m_showTrackingDialogAction, SIGNAL(triggered()), this, SLOT(showTrackingDialog()) );
147 
148  QAction *goToAction = menuBar()->addAction( tr( "&Go To...") );
149  connect( goToAction, SIGNAL(triggered()), this, SLOT(showGoToDialog()) );
150 
151  QAction *const manageBookmarksAct = menuBar()->addAction( tr( "&Manage Bookmarks" ) );
152  manageBookmarksAct->setIcon( QIcon( ":/icons/bookmarks-organize.png" ) );
153  manageBookmarksAct->setStatusTip( tr( "Manage Bookmarks" ) );
154  connect( manageBookmarksAct, SIGNAL(triggered()), this, SLOT(showBookmarkManagerDialog()) );
155 
156  QAction *const aboutMarbleAct = menuBar()->addAction( tr( "&About Marble Virtual Globe" ) );
157  aboutMarbleAct->setIcon( QIcon( ":/icons/marble.png" ) );
158  aboutMarbleAct->setStatusTip( tr( "Show the application's About Box" ) );
159  connect( aboutMarbleAct, SIGNAL(triggered()), this, SLOT(showAboutMarbleDialog()) );
160 
161  // setup zoom buttons
162 #ifdef Q_WS_MAEMO_5
163  if ( winId() ) {
164  Atom atom = XInternAtom( QX11Info::display(), "_HILDON_ZOOM_KEY_ATOM", False );
165  if ( atom ) {
166  unsigned long val = 1;
167  XChangeProperty ( QX11Info::display(), winId(), atom, XA_INTEGER, 32,
168  PropModeReplace, reinterpret_cast<unsigned char *>( &val ), 1 );
169 
170  QAction* zoomIn = new QAction( tr( "Zoom &In" ), this );
171  zoomIn->setShortcut( Qt::Key_F7 );
172  connect( zoomIn, SIGNAL(triggered()), m_marbleWidget, SLOT(zoomIn()) );
173  addAction( zoomIn );
174 
175  QAction* zoomOut = new QAction( tr( "Zoom &Out" ), this );
176  zoomOut->setShortcut( Qt::Key_F8 );
177  connect( zoomOut, SIGNAL(triggered()), m_marbleWidget, SLOT(zoomOut()) );
178  addAction( zoomOut );
179  }
180  }
181 #endif // Q_WS_MAEMO_5
182 
183  connect( &m_mapThemeManager, SIGNAL(themesChanged()), this, SLOT(fallBackToDefaultTheme()) );
184 
185  setUpdatesEnabled( true );
186 
187  QMetaObject::invokeMethod( this,
188  "initObject", Qt::QueuedConnection,
189  Q_ARG( QVariantMap, cmdLineSettings ) );
190 }
191 
192 MarbleWidget *MainWindow::marbleWidget()
193 {
194  return m_marbleWidget;
195 }
196 
197 void MainWindow::addGeoDataFile( const QString &path )
198 {
199  // delay file loading to initObject(), such that restoring view from previous session in readSettings()
200  // doesn't interfere with focusing on these files
201  m_commandlineFilePaths << path;
202 }
203 
204 void MainWindow::initObject( const QVariantMap &cmdLineSettings )
205 {
206  QCoreApplication::processEvents ();
207  readSettings( cmdLineSettings );
208 
209  foreach ( const QString &path, m_commandlineFilePaths ) {
210  m_marbleWidget->model()->addGeoDataFile( path );
211  }
212 }
213 
214 void MainWindow::showBookmarkManagerDialog()
215 {
216  MarbleModel * const model = m_marbleWidget->model();
217  QPointer<BookmarkManagerDialog> dialog = new BookmarkManagerDialog( model, this );
218 #ifdef Q_WS_MAEMO_5
219  dialog->setButtonBoxVisible( false );
220  dialog->setAttribute( Qt::WA_Maemo5StackedWindow );
221  dialog->setWindowFlags( Qt::Window );
222 #endif // Q_WS_MAEMO_5
223  dialog->exec();
224  delete dialog;
225 }
226 
227 #ifdef Q_WS_MAEMO_5
228 void MainWindow::setOrientation( Orientation orientation )
229 {
230  switch ( orientation ) {
231  case OrientationAutorotate:
232  setAttribute( Qt::WA_Maemo5AutoOrientation );
233  break;
234  case OrientationLandscape:
235  setAttribute( Qt::WA_Maemo5LandscapeOrientation );
236  break;
237  case OrientationPortrait:
238  setAttribute( Qt::WA_Maemo5PortraitOrientation );
239  break;
240  }
241 }
242 
243 MainWindow::Orientation MainWindow::orientation() const
244 {
245  if ( testAttribute( Qt::WA_Maemo5LandscapeOrientation ) )
246  return OrientationLandscape;
247 
248  if ( testAttribute( Qt::WA_Maemo5PortraitOrientation ) )
249  return OrientationPortrait;
250 
251  return OrientationAutorotate;
252 }
253 #endif // Q_WS_MAEMO_5
254 
255 void MainWindow::setWorkOffline( bool offline )
256 {
257  m_marbleWidget->model()->setWorkOffline( offline );
258  if ( !offline ) {
259  m_marbleWidget->clearVolatileTileCache();
260  }
261 
262  m_workOfflineAct->setChecked( offline );
263 }
264 
265 void MainWindow::setKineticScrollingEnabled( bool enabled )
266 {
267  m_marbleWidget->inputHandler()->setInertialEarthRotationEnabled( enabled );
268  m_kineticScrollingAction->setChecked( enabled ); // Sync state with the GUI
269 }
270 
271 void MainWindow::setLegendShown( bool show )
272 {
273  m_legendBrowser->setVisible( show );
274  m_showLegendAct->setChecked( show );
275 }
276 
277 void MainWindow::showAboutMarbleDialog()
278 {
279  MarbleAboutDialog dlg( this );
280  dlg.setApplicationTitle( tr( "Marble Virtual Globe %1" ).arg( "MARBLE_MOBILE_VERSION_STRING" ) );
281  dlg.exec();
282 }
283 
284 void MainWindow::closeEvent( QCloseEvent *event )
285 {
286  writeSettings();
287  event->accept();
288 }
289 
290 QString MainWindow::readMarbleDataPath()
291 {
292  QSettings settings;
293 
294  settings.beginGroup( "MarbleWidget" );
295  QString marbleDataPath;
296  marbleDataPath = settings.value( "marbleDataPath", "" ).toString(),
297  settings.endGroup();
298 
299  return marbleDataPath;
300 }
301 
302 void MainWindow::readSettings(const QVariantMap& overrideSettings)
303 {
304  // Load bookmark file. If it does not exist, a default one will be used.
305  m_marbleWidget->model()->bookmarkManager()->loadFile( "bookmarks/bookmarks.kml" );
306 
307  QSettings settings;
308 
309  settings.beginGroup( "MainWindow" );
310  resize( settings.value( "size", QSize( 640, 480 ) ).toSize() );
311  move( settings.value( "pos", QPoint( 200, 200 ) ).toPoint() );
312  if ( settings.value( "fullScreen", false ).toBool() ) {
313  showFullScreen();
314  }
315 #ifdef Q_WS_MAEMO_5
316  const Orientation orientation = (Orientation)settings.value( "orientation", (int)OrientationLandscape ).toInt();
317  setOrientation( orientation );
318 #endif // Q_WS_MAEMO_5
319  show();
320  setWorkOffline( settings.value( "workOffline", false ).toBool() );
321  setLegendShown( settings.value( "showLegend", false ).toBool() );
322  m_marbleWidget->setShowAtmosphere( settings.value( "showAtmosphere", true ).toBool() );
323  m_lastFileOpenPath = settings.value( "lastFileOpenDir", QDir::homePath() ).toString();
324  m_marbleWidget->model()->bookmarkManager()->setShowBookmarks( settings.value( "showBookmarks", true ).toBool() );
325  restoreState( settings.value( "windowState" ).toByteArray() );
326  settings.endGroup();
327 
328  setUpdatesEnabled( false );
329 
330  settings.beginGroup( "MarbleWidget" );
331  QString mapThemeId;
332  const QVariantMap::ConstIterator mapThemeIdIt = overrideSettings.find( QLatin1String( "mapTheme" ) );
333  if ( mapThemeIdIt != overrideSettings.constEnd() ) {
334  mapThemeId = mapThemeIdIt.value().toString();
335  } else {
336  mapThemeId = settings.value( "mapTheme", defaultMapThemeId ).toString();
337  }
338  mDebug() << Q_FUNC_INFO << "mapThemeId:" << mapThemeId;
339  m_marbleWidget->setMapThemeId( mapThemeId );
340  m_marbleWidget->setProjection( (Projection)settings.value( "projection", Mercator ).toInt() );
341 
342  // Set home position
343  m_marbleWidget->model()->setHome(
344  settings.value( "homeLongitude", 9.4 ).toDouble(),
345  settings.value( "homeLatitude", 54.8 ).toDouble(),
346  settings.value( "homeZoom", 1050 ).toInt()
347  );
348 
349  // Center on/Distance
350  const QVariantMap::ConstIterator distanceIt = overrideSettings.find( QLatin1String( "distance" ) );
351  const bool isDistanceOverwritten = (distanceIt != overrideSettings.constEnd());
352 
353  const QVariantMap::ConstIterator lonLatIt = overrideSettings.find( QLatin1String( "lonlat" ) );
354  if ( lonLatIt != overrideSettings.constEnd() ) {
355  const QVariantList lonLat = lonLatIt.value().toList();
356  m_marbleWidget->centerOn( lonLat.at( 0 ).toDouble(), lonLat.at( 1 ).toDouble() );
357  } else {
358  m_marbleWidget->centerOn(
359  settings.value( "quitLongitude", 0.0 ).toDouble(),
360  settings.value( "quitLatitude", 0.0 ).toDouble() );
361  }
362  if ( isDistanceOverwritten ) {
363  m_marbleWidget->setDistance( distanceIt.value().toDouble() );
364  } else {
365  // set default radius to 1350 (Atlas theme's "sharp" radius)
366  m_marbleWidget->setRadius( settings.value( "quitRadius", 1350 ).toInt() );
367  }
368  settings.endGroup();
369 
370  setUpdatesEnabled( true );
371 
372  // Load previous route settings
373  settings.beginGroup( "Routing" );
374  {
375  RoutingManager *const routingManager = m_marbleWidget->model()->routingManager();
376  routingManager->readSettings();
377  bool const startupWarning = settings.value( "showGuidanceModeStartupWarning", QVariant( true ) ).toBool();
378  routingManager->setShowGuidanceModeStartupWarning( startupWarning );
379  routingManager->setLastOpenPath( settings.value( "lastRouteOpenPath", QDir::homePath() ).toString() );
380  routingManager->setLastSavePath( settings.value( "lastRouteSavePath", QDir::homePath() ).toString() );
381 
382  QColor tempColor;
383  tempColor = QColor( settings.value( "routeColorStandard", Oxygen::skyBlue4.name() ).toString() );
384  tempColor.setAlpha( settings.value( "routeAlphaStandard", 200 ).toInt() );
385  routingManager->setRouteColorStandard( tempColor );
386 
387  tempColor = QColor( settings.value( "routeColorHighlighted", Oxygen::skyBlue1.name() ).toString() );
388  tempColor.setAlpha( settings.value( "routeAlphaHighlighted", 200 ).toInt() );
389  routingManager->setRouteColorHighlighted( tempColor );
390 
391  tempColor = QColor( settings.value( "routeColorAlternative", Oxygen::aluminumGray4.name() ).toString() );
392  tempColor.setAlpha( settings.value( "routeAlphaAlternative", 200 ).toInt() );
393  routingManager->setRouteColorAlternative( tempColor );
394  }
395  settings.endGroup();
396 
397  settings.beginGroup( "Routing Profile" );
398  if ( settings.contains( "Num" ) ) {
399  QList<RoutingProfile> profiles;
400  int numProfiles = settings.value( "Num", 0 ).toInt();
401  for ( int i = 0; i < numProfiles; ++i ) {
402  settings.beginGroup( QString( "Profile %0" ).arg(i) );
403  QString name = settings.value( "Name", tr( "Unnamed" ) ).toString();
404  RoutingProfile profile( name );
405  foreach ( const QString& pluginName, settings.childGroups() ) {
406  settings.beginGroup( pluginName );
407  profile.pluginSettings().insert( pluginName, QHash<QString, QVariant>() );
408  foreach ( const QString& key, settings.childKeys() ) {
409  if ( key != "Enabled" ) {
410  profile.pluginSettings()[ pluginName ].insert( key, settings.value( key ) );
411  }
412  }
413  settings.endGroup();
414  }
415  profiles << profile;
416  settings.endGroup();
417  }
418  m_marbleWidget->model()->routingManager()->profilesModel()->setProfiles( profiles );
419  } else {
420  m_marbleWidget->model()->routingManager()->profilesModel()->loadDefaultProfiles();
421  }
422  int const profileIndex = settings.value( "currentIndex", 0 ).toInt();
423  if ( profileIndex >= 0 && profileIndex < m_marbleWidget->model()->routingManager()->profilesModel()->rowCount() ) {
424  RoutingProfile profile = m_marbleWidget->model()->routingManager()->profilesModel()->profiles().at( profileIndex );
425  m_marbleWidget->model()->routingManager()->routeRequest()->setRoutingProfile( profile );
426  }
427  settings.endGroup();
428 
429  settings.beginGroup( "Plugins");
430  PositionTracking* tracking = m_marbleWidget->model()->positionTracking();
431  tracking->readSettings();
432  QString positionProvider = settings.value( "activePositionTrackingPlugin", QString() ).toString();
433  if ( !positionProvider.isEmpty() ) {
434  const PluginManager* pluginManager = m_marbleWidget->model()->pluginManager();
435  foreach( const PositionProviderPlugin* plugin, pluginManager->positionProviderPlugins() ) {
436  if ( plugin->nameId() == positionProvider ) {
437  PositionProviderPlugin* instance = plugin->newInstance();
438  instance->setMarbleModel( m_marbleWidget->model() );
439  tracking->setPositionProviderPlugin( instance );
440  break;
441  }
442  }
443  }
444  settings.endGroup();
445 
446  settings.beginGroup( "Tracking" );
447  if ( settings.contains( "autoCenter" ) || settings.contains( "recenterMode" ) ) {
448  initializeTrackingWidget();
449  CurrentLocationWidget* trackingWidget = qobject_cast<CurrentLocationWidget*>( m_trackingWindow->centralWidget() );
450  Q_ASSERT( trackingWidget );
451  trackingWidget->setRecenterMode( settings.value( "recenterMode", 0 ).toInt() );
452  trackingWidget->setAutoZoom( settings.value( "autoZoom", false ).toBool() );
453  trackingWidget->setTrackVisible( settings.value( "trackVisible", true ).toBool() );
454  trackingWidget->setLastOpenPath( settings.value( "lastTrackOpenPath", QDir::homePath() ).toString() );
455  trackingWidget->setLastSavePath( settings.value( "lastTrackSavePath", QDir::homePath() ).toString() );
456  }
457  settings.endGroup();
458 
459  settings.beginGroup( "View" );
460  m_marbleWidget->setDefaultFont( settings.value( "mapFont", QApplication::font() ).value<QFont>() );
461  m_marbleWidget->setMapQualityForViewContext( static_cast<Marble::MapQuality>( settings.value( "stillQuality", Marble::HighQuality ).toInt() ), Marble::Still );
462  m_marbleWidget->setMapQualityForViewContext( static_cast<Marble::MapQuality>( settings.value( "animationQuality", Marble::LowQuality ).toInt() ), Marble::Animation );
463  m_marbleWidget->setDefaultAngleUnit( static_cast<Marble::AngleUnit>( settings.value( "angleUnit", Marble::DMSDegree ).toInt() ) );
464  settings.endGroup();
465 
466  settings.beginGroup( "Navigation" );
467  m_marbleWidget->setAnimationsEnabled( settings.value( "animateTargetVoyage", true ).toBool() );
468  setKineticScrollingEnabled( settings.value( "inertialEarthRotation", true ).toBool() );
469  settings.endGroup();
470 
471  settings.beginGroup( "Cache" );
472  m_marbleWidget->model()->setPersistentTileCacheLimit( settings.value( "persistentTileCacheLimit", 0 ).toInt() * 1024 ); // default to unlimited
473  m_marbleWidget->setVolatileTileCacheLimit( settings.value( "volatileTileCacheLimit", 6 ).toInt() * 1024 );
474  settings.endGroup();
475 
476  m_marbleWidget->readPluginSettings( settings );
477 }
478 
479 void MainWindow::writeSettings()
480 {
481  QSettings settings;
482 
483  settings.beginGroup( "MainWindow" );
484  settings.setValue( "size", size() );
485  settings.setValue( "pos", pos() );
486  settings.setValue( "fullScreen", isFullScreen() );
487 #ifdef Q_WS_MAEMO_5
488  settings.setValue( "orientation", (int)orientation() );
489 #endif // Q_WS_MAEMO_5
490  settings.setValue( "workOffline", m_marbleWidget->model()->workOffline() );
491  settings.setValue( "showLegend", m_legendBrowser->isVisible() );
492  settings.setValue( "showAtmosphere", m_marbleWidget->showAtmosphere() );
493  settings.setValue( "lastFileOpenDir", m_lastFileOpenPath );
494  settings.setValue( "windowState", saveState() );
495  settings.endGroup();
496 
497  settings.beginGroup( "MarbleWidget" );
498  // Get the 'home' values from the widget and store them in the settings.
499  qreal homeLon = 0;
500  qreal homeLat = 0;
501  int homeZoom = 0;
502  m_marbleWidget->model()->home( homeLon, homeLat, homeZoom );
503 
504  settings.setValue( "homeLongitude", homeLon );
505  settings.setValue( "homeLatitude", homeLat );
506  settings.setValue( "homeZoom", homeZoom );
507 
508  settings.setValue( "mapTheme", m_marbleWidget->mapThemeId() );
509  settings.setValue( "projection", m_marbleWidget->projection() );
510 
511  settings.setValue( "quitLongitude", m_marbleWidget->centerLongitude() );
512  settings.setValue( "quitLatitude", m_marbleWidget->centerLatitude() );
513  settings.setValue( "quitRadius", m_marbleWidget->radius() );
514  settings.endGroup();
515 
516  settings.beginGroup( "Routing Profile" );
517  QList<RoutingProfile> profiles = m_marbleWidget->model()->routingManager()->profilesModel()->profiles();
518  settings.setValue( "Num", profiles.count() );
519  for ( int i = 0; i < profiles.count(); ++i ) {
520  settings.beginGroup( QString( "Profile %0" ).arg(i) );
521  const RoutingProfile& profile = profiles.at( i );
522  settings.setValue( "Name", profile.name() );
523  foreach ( const QString& pluginName, settings.childGroups() ) {
524  settings.beginGroup( pluginName );
525  settings.remove( "" ); //remove all keys
526  settings.endGroup();
527  }
528  foreach ( const QString &key, profile.pluginSettings().keys() ) {
529  settings.beginGroup( key );
530  settings.setValue( "Enabled", true );
531  foreach ( const QString& settingKey, profile.pluginSettings()[ key ].keys() ) {
532  Q_ASSERT( settingKey != "Enabled" );
533  settings.setValue( settingKey, profile.pluginSettings()[ key ][ settingKey ] );
534  }
535  settings.endGroup();
536  }
537  settings.endGroup();
538  }
539  RoutingProfile const profile = m_marbleWidget->model()->routingManager()->routeRequest()->routingProfile();
540  settings.setValue( "currentIndex", profiles.indexOf( profile ) );
541  settings.endGroup();
542 
543  settings.beginGroup( "Plugins");
544  QString positionProvider;
545  PositionTracking* tracking = m_marbleWidget->model()->positionTracking();
546  tracking->writeSettings();
547  if ( tracking && tracking->positionProviderPlugin() ) {
548  positionProvider = tracking->positionProviderPlugin()->nameId();
549  }
550  settings.setValue( "activePositionTrackingPlugin", positionProvider );
551  settings.endGroup();
552 
553  settings.beginGroup( "Tracking" );
554  Q_ASSERT( m_trackingWindow );
555  CurrentLocationWidget* trackingWidget = static_cast<CurrentLocationWidget *>( m_trackingWindow->centralWidget() );
556  if ( trackingWidget ) {
557  // Can be null due to lazy initialization
558  settings.setValue( "recenterMode", trackingWidget->recenterMode() );
559  settings.setValue( "autoZoom", trackingWidget->autoZoom() );
560  settings.setValue( "trackVisible", trackingWidget->trackVisible() );
561  settings.setValue( "lastTrackOpenPath", trackingWidget->lastOpenPath() );
562  settings.setValue( "lastTrackSavePath", trackingWidget->lastSavePath() );
563  }
564  settings.endGroup();
565 
566  settings.beginGroup( "Navigation" );
567  settings.setValue( "inertialEarthRotation", m_marbleWidget->inputHandler()->inertialEarthRotationEnabled() );
568  settings.endGroup();
569 
570  // Store current route settings
571  settings.beginGroup( "Routing" );
572  {
573  RoutingManager *const routingManager = m_marbleWidget->model()->routingManager();
574  routingManager->writeSettings();
575  settings.setValue( "showGuidanceModeStartupWarning", routingManager->showGuidanceModeStartupWarning() );
576  settings.setValue( "lastRouteOpenPath", routingManager->lastOpenPath() );
577  settings.setValue( "lastRouteSavePath", routingManager->lastSavePath() );
578  settings.setValue( "routeColorStandard", routingManager->routeColorStandard().name() );
579  settings.setValue( "routeAlphaStandard", routingManager->routeColorStandard().alpha() );
580  settings.setValue( "routeColorHighlighted", routingManager->routeColorHighlighted().name() );
581  settings.setValue( "routeAlphaHighlighted", routingManager->routeColorHighlighted().alpha() );
582  settings.setValue( "routeColorAlternative", routingManager->routeColorAlternative().name() );
583  settings.setValue( "routeAlphaAlternative", routingManager->routeColorAlternative().alpha() );
584  }
585  settings.endGroup();
586 
587  m_marbleWidget->writePluginSettings( settings );
588 }
589 
590 void MainWindow::showDownloadRegionDialog()
591 {
592  if ( !m_downloadRegionDialog ) {
593  m_downloadRegionDialog = new DownloadRegionDialog( m_marbleWidget, this );
594  // it might be tempting to move the connects to DownloadRegionDialog's "accepted" and
595  // "applied" signals, be aware that the "hidden" signal might be come before the "accepted"
596  // signal, leading to a too early disconnect.
597  connect( m_downloadRegionDialog, SIGNAL(accepted()), SLOT(downloadRegion()));
598  connect( m_downloadRegionDialog, SIGNAL(applied()), SLOT(downloadRegion()));
599  }
600  // FIXME: get allowed range from current map theme
601  m_downloadRegionDialog->setAllowedTileLevelRange( 0, 16 );
602  m_downloadRegionDialog->setSelectionMethod( DownloadRegionDialog::VisibleRegionMethod );
603  ViewportParams const * const viewport = m_marbleWidget->viewport();
604  m_downloadRegionDialog->setSpecifiedLatLonAltBox( viewport->viewLatLonAltBox() );
605  m_downloadRegionDialog->setVisibleLatLonAltBox( viewport->viewLatLonAltBox() );
606 
607  m_downloadRegionDialog->show();
608  m_downloadRegionDialog->raise();
609  m_downloadRegionDialog->activateWindow();
610 }
611 
612 void MainWindow::downloadRegion()
613 {
614  Q_ASSERT( m_downloadRegionDialog );
615  QVector<TileCoordsPyramid> const pyramid = m_downloadRegionDialog->region();
616  if ( !pyramid.isEmpty() ) {
617  m_marbleWidget->downloadRegion( pyramid );
618  }
619 }
620 
621 void MainWindow::showMapViewDialog()
622 {
623  if( !m_mapViewDialog ) {
624  m_mapViewDialog = new QDialog( this );
625  m_mapViewDialog->setWindowTitle( tr( "Map View - Marble" ) );
626 
627  QVBoxLayout *layout = new QVBoxLayout;
628  m_mapViewDialog->setLayout( layout );
629 
630  MapViewWidget *mapViewWidget = new MapViewWidget( m_mapViewDialog );
631  mapViewWidget->setMarbleWidget( m_marbleWidget, &m_mapThemeManager );
632  layout->addWidget( mapViewWidget );
633  }
634 
635  m_mapViewDialog->show();
636  m_mapViewDialog->raise();
637  m_mapViewDialog->activateWindow();
638 }
639 
640 void MainWindow::showRoutingDialog()
641 {
642  if( !m_routingWindow ) {
643  m_routingWindow = new StackableWindow( this );
644  m_routingWindow->setWindowTitle( tr( "Routing - Marble" ) );
645 
646  m_routingWidget = new RoutingWidget( m_marbleWidget, m_routingWindow );
647  m_routingWidget->setShowDirectionsButtonVisible( true );
648 
649  QScrollArea* scrollArea = new QScrollArea;
650  m_routingWidget->setMinimumWidth( 760 );
651  scrollArea->setWidgetResizable( true );
652  scrollArea->setWidget( m_routingWidget );
653 
654  QAction *openAction = new QAction( tr( "Open Route..." ), this );
655  connect( openAction, SIGNAL(triggered()), m_routingWidget, SLOT(openRoute()) );
656  m_routingWindow->menuBar()->addAction( openAction );
657 
658  QAction* saveAction = new QAction( tr( "Save Route..." ), this );
659  connect( saveAction, SIGNAL(triggered()), m_routingWidget, SLOT(saveRoute()) );
660  m_routingWindow->menuBar()->addAction( saveAction );
661 
662  m_routingWindow->setCentralWidget( scrollArea );
663  }
664 
665  m_routingWindow->show();
666  m_routingWindow->raise();
667  m_routingWindow->activateWindow();
668 }
669 
670 void MainWindow::showTrackingDialog()
671 {
672  initializeTrackingWidget();
673  m_trackingWindow->show();
674  m_trackingWindow->raise();
675  m_trackingWindow->activateWindow();
676 }
677 
678 void MainWindow::initializeTrackingWidget()
679 {
680  if( !m_trackingWindow ) {
681  m_trackingWindow = new StackableWindow( this );
682  m_trackingWindow->setWindowTitle( tr( "Tracking - Marble" ) );
683  CurrentLocationWidget *trackingWidget = new CurrentLocationWidget( m_trackingWindow );
684  trackingWidget->setMarbleWidget( m_marbleWidget );
685 
686  m_trackingWindow->setCentralWidget( trackingWidget );
687  }
688 }
689 
690 void MainWindow::showGoToDialog()
691 {
692  if ( !m_gotoDialog ) {
693  m_gotoDialog = new GoToDialog( m_marbleWidget->model(), this );
694  }
695 
696  m_gotoDialog->show();
697  if ( m_gotoDialog->exec() == QDialog::Accepted ) {
698  const GeoDataCoordinates coordinates = m_gotoDialog->coordinates();
699  m_marbleWidget->centerOn( coordinates );
700  }
701 }
702 
703 void MainWindow::fallBackToDefaultTheme()
704 {
705  if ( !m_mapThemeManager.mapThemeIds().contains( m_marbleWidget->mapThemeId() ) ) {
706  m_marbleWidget->setMapThemeId( defaultMapThemeId );
707  }
708 }
709 
710 #include "MobileMainWindow.moc"
Marble::PositionTracking::positionProviderPlugin
PositionProviderPlugin positionProviderPlugin
Definition: PositionTracking.h:35
Marble::StackableWindow
A main window that sets the WA_Maemo5StackedWindow attribute to serve as a stackable window on Maemo...
Definition: StackableWindow.h:24
Marble::GeoDataCoordinates
A 3d point representation.
Definition: GeoDataCoordinates.h:52
Marble::DownloadRegionDialog::VisibleRegionMethod
Definition: DownloadRegionDialog.h:36
Marble::PluginManager
The class that handles Marble's plugins.
Definition: PluginManager.h:45
Marble::MarbleModel::setPersistentTileCacheLimit
void setPersistentTileCacheLimit(quint64 kiloBytes)
Set the limit of the persistent (on hard disc) tile cache.
Definition: MarbleModel.cpp:537
Marble::CurrentLocationWidget::setTrackVisible
void setTrackVisible(bool visible)
Definition: CurrentLocationWidget.cpp:431
tracking
Definition: position-tracking.qml:12
Marble::BookmarkManager::loadFile
bool loadFile(const QString &relativeFilePath)
load bookmark file as GeoDataDocument and return true if loaded successfully else false ...
Definition: BookmarkManager.cpp:87
Marble::MainWindow::closeEvent
void closeEvent(QCloseEvent *event)
Definition: MobileMainWindow.cpp:284
Marble::RoutingProfilesModel::profiles
QList< RoutingProfile > profiles() const
Definition: RoutingProfilesModel.cpp:60
PositionProviderPlugin.h
Marble::MarbleWidget::projection
int projection
Definition: MarbleWidget.h:112
Marble::MarbleDirs::setMarbleDataPath
static void setMarbleDataPath(const QString &adaptedPath)
Definition: MarbleDirs.cpp:294
MobileMainWindow.h
QDialog
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::MarbleWidget::radius
int radius() const
Return the radius of the globe in pixels.
Definition: MarbleWidget.cpp:326
Marble::DownloadRegionDialog::setSpecifiedLatLonAltBox
void setSpecifiedLatLonAltBox(GeoDataLatLonAltBox const &)
Definition: DownloadRegionDialog.cpp:341
QWidget
Marble::MarbleWidget::setAnimationsEnabled
void setAnimationsEnabled(bool enabled)
Set whether travels to a point should get animated.
Definition: MarbleWidget.cpp:1146
Marble::RoutingWidget
A widget consisting of input fields for places / routing destinations, a list view showing routing in...
Definition: RoutingWidget.h:35
Marble::RoutingManager::setRouteColorAlternative
void setRouteColorAlternative(QColor color)
Set color for alternative route rendering.
Definition: RoutingManager.cpp:506
Marble::MarbleWidget::setProjection
void setProjection(int projection)
Set the Projection used for the map.
Definition: MarbleWidget.cpp:702
Marble::ViewportParams::viewLatLonAltBox
const GeoDataLatLonAltBox & viewLatLonAltBox() const
Definition: ViewportParams.cpp:305
Marble::MarbleWidget::setDefaultAngleUnit
void setDefaultAngleUnit(AngleUnit angleUnit)
Definition: MarbleWidget.cpp:1156
Marble::MapViewWidget
Definition: MapViewWidget.h:32
Marble::MarbleWidgetInputHandler::setInertialEarthRotationEnabled
void setInertialEarthRotationEnabled(bool enabled)
Definition: MarbleWidgetInputHandler.cpp:138
Marble::MarbleWidget::setVolatileTileCacheLimit
void setVolatileTileCacheLimit(quint64 kiloBytes)
Set the limit of the volatile (in RAM) tile cache.
Definition: MarbleWidget.cpp:1093
Marble::MarbleModel::pluginManager
const PluginManager * pluginManager() const
Definition: MarbleModel.cpp:564
MarbleAboutDialog.h
Marble::RoutingManager::routeColorStandard
QColor routeColorStandard()
Get color for standard route rendering.
Definition: RoutingManager.cpp:491
Marble::CurrentLocationWidget::lastOpenPath
QString lastOpenPath() const
Definition: CurrentLocationWidget.cpp:421
Planet.h
Marble::RoutingProfile
Definition: RoutingProfile.h:24
MarbleDebug.h
Marble::RoutingProfilesModel::setProfiles
void setProfiles(const QList< RoutingProfile > &profiles)
Definition: RoutingProfilesModel.cpp:53
Marble::CurrentLocationWidget::recenterMode
AutoNavigation::CenterMode recenterMode() const
Definition: CurrentLocationWidget.cpp:406
Marble::MarbleWidget::readPluginSettings
void readPluginSettings(QSettings &settings)
Reads the plugin settings from the passed QSettings.
Definition: MarbleWidget.cpp:1256
BookmarkManager.h
Marble::MainWindow::MainWindow
MainWindow(const QString &marbleDataPath=QString(), QWidget *parent=0)
Definition: KdeMainWindow.cpp:38
CurrentLocationWidget.h
Marble::BookmarkManager::setShowBookmarks
void setShowBookmarks(bool visible)
Definition: BookmarkManager.cpp:159
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:102
Marble::PositionProviderPlugin
The abstract class that provides position information.
Definition: PositionProviderPlugin.h:26
Marble::PositionTracking
Definition: PositionTracking.h:31
Marble::DownloadRegionDialog::setVisibleLatLonAltBox
void setVisibleLatLonAltBox(GeoDataLatLonAltBox const &)
Definition: DownloadRegionDialog.cpp:346
Marble::LowQuality
Low resolution (e.g. interlaced)
Definition: MarbleGlobal.h:82
Marble::RoutingManager::routeRequest
RouteRequest * routeRequest()
Returns the current route request.
Definition: RoutingManager.cpp:270
MarbleWidgetInputHandler.h
Marble::MarbleWidget::setMapThemeId
void setMapThemeId(const QString &maptheme)
Set a new map theme.
Definition: MarbleWidget.cpp:865
Marble::DownloadRegionDialog::region
QVector< TileCoordsPyramid > region() const
Definition: DownloadRegionDialog.cpp:311
BookmarkManagerDialog.h
Marble::RoutingManager::setRouteColorStandard
void setRouteColorStandard(QColor color)
Set color for standard route rendering.
Definition: RoutingManager.cpp:486
Marble::GoToDialog
A dialog that provides a list of targets to go to: The current location, route start, destination and via points and bookmarks.
Definition: GoToDialog.h:33
Marble::MarbleLegendBrowser
Definition: MarbleLegendBrowser.h:34
Marble::RouteRequest::routingProfile
RoutingProfile routingProfile() const
Definition: RouteRequest.cpp:321
Marble::MarbleModel::addGeoDataFile
void addGeoDataFile(const QString &filename)
Handle file loading into the treeModel.
Definition: MarbleModel.cpp:655
RoutingManager.h
Marble::MarbleWidget::downloadRegion
void downloadRegion(QVector< TileCoordsPyramid > const &)
Definition: MarbleWidget.cpp:1339
Marble::CurrentLocationWidget
Definition: CurrentLocationWidget.h:30
Marble::MarbleWidget::showAtmosphere
bool showAtmosphere
Definition: MarbleWidget.h:127
Marble::MarbleWidget::centerLongitude
qreal centerLongitude() const
Return the longitude of the center point.
Definition: MarbleWidget.cpp:776
Marble::Animation
animated view (e.g. while rotating the globe)
Definition: MarbleGlobal.h:74
GoToDialog.h
Marble::MarbleModel::setWorkOffline
void setWorkOffline(bool workOffline)
Definition: MarbleModel.cpp:689
Marble::CurrentLocationWidget::setAutoZoom
void setAutoZoom(bool activate)
Slot for Auto Zooming while navigating.
Definition: CurrentLocationWidget.cpp:341
Marble::Oxygen::aluminumGray4
QColor const aluminumGray4
Definition: MarbleColors.h:92
Marble::MarbleModel::routingManager
RoutingManager * routingManager()
Definition: MarbleModel.cpp:605
Marble::Mercator
Mercator projection.
Definition: MarbleGlobal.h:47
Marble::PositionProviderPlugin::setMarbleModel
void setMarbleModel(const MarbleModel *)
Definition: PositionProviderPlugin.cpp:42
Marble::Oxygen::skyBlue1
QColor const skyBlue1
Definition: MarbleColors.h:59
Marble::MarbleModel::home
void home(qreal &lon, qreal &lat, int &zoom) const
get the home point
Definition: MarbleModel.cpp:376
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::MarbleModel::positionTracking
PositionTracking * positionTracking() const
Definition: MarbleModel.cpp:442
Marble::Still
still image
Definition: MarbleGlobal.h:73
Marble::RouteRequest::setRoutingProfile
void setRoutingProfile(const RoutingProfile &profile)
Definition: RouteRequest.cpp:315
Marble::MarbleWidget::model
MarbleModel * model() const
Return the model that this view shows.
Definition: MarbleWidget.cpp:283
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::CurrentLocationWidget::setLastSavePath
void setLastSavePath(const QString &path)
Definition: CurrentLocationWidget.cpp:442
Marble::RoutingManager::routeColorHighlighted
QColor routeColorHighlighted()
Get color for highlighted route rendering.
Definition: RoutingManager.cpp:501
MarbleLocale.h
Marble::GoToDialog::coordinates
GeoDataCoordinates coordinates() const
Returns the position of the item selected by the user, or a default constructed GeoDataLookAt if the ...
Definition: GoToDialog.cpp:391
Marble::DownloadRegionDialog::setAllowedTileLevelRange
void setAllowedTileLevelRange(int const minimumTileLevel, int const maximumTileLevel)
Definition: DownloadRegionDialog.cpp:261
Marble::MarbleWidgetInputHandler::inertialEarthRotationEnabled
bool inertialEarthRotationEnabled() const
Returns true iff dragging the map with the mouse keeps spinning in the chosen direction for a slightl...
Definition: MarbleWidgetInputHandler.cpp:143
Marble::RoutingManager::readSettings
void readSettings()
Restores a previously saved route request and route from disk, if any.
Definition: RoutingManager.cpp:373
Marble::BookmarkManagerDialog
Definition: BookmarkManagerDialog.h:26
Marble::MarbleAboutDialog
Definition: MarbleAboutDialog.h:30
Marble::PluginInterface::nameId
virtual QString nameId() const =0
Returns the unique name of the plugin.
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
Marble::MarbleWidget::viewport
ViewportParams * viewport()
Definition: MarbleWidget.cpp:289
Marble::RoutingProfilesModel::loadDefaultProfiles
void loadDefaultProfiles()
Definition: RoutingProfilesModel.cpp:126
Marble::CurrentLocationWidget::trackVisible
bool trackVisible() const
Definition: CurrentLocationWidget.cpp:416
Marble::CurrentLocationWidget::setLastOpenPath
void setLastOpenPath(const QString &path)
Definition: CurrentLocationWidget.cpp:437
Marble::RoutingManager
Delegates data retrieval and model updates to the appropriate routing provider.
Definition: RoutingManager.h:37
Marble::RoutingProfile::name
QString name
Definition: RoutingProfile.h:25
Marble::CurrentLocationWidget::autoZoom
bool autoZoom() const
Definition: CurrentLocationWidget.cpp:411
Marble::MarbleWidget::centerOn
void centerOn(const qreal lon, const qreal lat, bool animated=false)
Center the view on a geographical point.
Definition: MarbleWidget.cpp:626
Marble::CurrentLocationWidget::setRecenterMode
void setRecenterMode(int recenterMode)
Slot that decides whether recentering should be done.
Definition: CurrentLocationWidget.cpp:333
Marble::MarbleWidget::setRadius
void setRadius(int radius)
Set the radius of the globe in pixels.
Definition: MarbleWidget.cpp:331
ViewportParams.h
This file contains the headers for ViewportParams.
Marble::RoutingProfile::pluginSettings
const QHash< QString, QHash< QString, QVariant > > & pluginSettings() const
Definition: RoutingProfile.cpp:33
Marble::MarbleModel::setHome
void setHome(qreal lon, qreal lat, int zoom=1050)
Set the home point.
Definition: MarbleModel.cpp:382
Marble::RoutingManager::setLastOpenPath
void setLastOpenPath(const QString &path)
Set last directory the user opened a route from.
Definition: RoutingManager.cpp:466
Marble::MarbleWidget::setMapQualityForViewContext
void setMapQualityForViewContext(MapQuality quality, ViewContext viewContext)
Set the map quality for the specified view context.
Definition: MarbleWidget.cpp:1114
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:96
Marble::MapViewWidget::setMarbleWidget
void setMarbleWidget(MarbleWidget *widget, MapThemeManager *mapThemeManager)
Set a MarbleWidget associated to this widget.
Definition: MapViewWidget.cpp:394
Marble::PositionTracking::writeSettings
void writeSettings()
Definition: PositionTracking.cpp:360
Marble::DownloadRegionDialog
Definition: DownloadRegionDialog.h:31
Marble::DMSDegree
Degrees in DMS notation.
Definition: MarbleGlobal.h:64
Marble::HighQuality
High quality (e.g. antialiasing for lines)
Definition: MarbleGlobal.h:84
QMainWindow
MarbleLegendBrowser.h
RoutingWidget.h
PluginManager.h
Marble::MarbleWidget::setShowAtmosphere
void setShowAtmosphere(bool visible)
Set whether the atmospheric glow is visible.
Definition: MarbleWidget.cpp:967
Marble::MarbleModel::bookmarkManager
BookmarkManager * bookmarkManager()
return instance of BookmarkManager
Definition: MarbleModel.cpp:206
DownloadRegionDialog.h
Marble::RoutingWidget::setShowDirectionsButtonVisible
void setShowDirectionsButtonVisible(bool visible)
Show or hide the "open file..." button.
Definition: RoutingWidget.cpp:625
Marble::PositionTracking::readSettings
void readSettings()
Definition: PositionTracking.cpp:297
Marble::CurrentLocationWidget::lastSavePath
QString lastSavePath() const
Definition: CurrentLocationWidget.cpp:426
Marble::RoutingManager::writeSettings
void writeSettings() const
Saves the current route request and the current route to disk.
Definition: RoutingManager.cpp:326
Marble::Projection
Projection
This enum is used to choose the projection shown in the view.
Definition: MarbleGlobal.h:44
Marble::MarbleWidget::mapThemeId
QString mapThemeId
Definition: MarbleWidget.h:111
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::MarbleWidget::setDistance
void setDistance(qreal distance)
Set the distance of the observer to the globe in km.
Definition: MarbleWidget.cpp:1197
Marble::PositionTracking::setPositionProviderPlugin
void setPositionProviderPlugin(PositionProviderPlugin *plugin)
Change the position provider to use.
Definition: PositionTracking.cpp:183
StackableWindow.h
Marble::MarbleWidget::setDefaultFont
void setDefaultFont(const QFont &font)
Definition: MarbleWidget.cpp:1166
Marble::MainWindow::marbleWidget
MarbleWidget * marbleWidget() const
Definition: KdeMainWindow.cpp:79
Marble::MapThemeManager::mapThemeIds
QStringList mapThemeIds() const
Returns a list of all locally available map theme IDs.
Definition: MapThemeManager.cpp:138
Marble::MarbleWidget::writePluginSettings
void writePluginSettings(QSettings &settings) const
Writes the plugin settings in the passed QSettings.
Definition: MarbleWidget.cpp:1273
Marble::MarbleWidget::clearVolatileTileCache
void clearVolatileTileCache()
Definition: MarbleWidget.cpp:1087
PositionTracking.h
Marble::MarbleModel::workOffline
bool workOffline
Definition: MarbleModel.h:103
Marble::MarbleWidget::inputHandler
MarbleWidgetInputHandler * inputHandler() const
Returns the current input handler.
Definition: MarbleWidget.cpp:321
MapViewWidget.h
Marble::RoutingManager::routeColorAlternative
QColor routeColorAlternative()
Get color for alternative route rendering.
Definition: RoutingManager.cpp:511
Marble::MainWindow::addGeoDataFile
void addGeoDataFile(const QString &path)
Definition: MobileMainWindow.cpp:197
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::MarbleLegendBrowser::setMarbleModel
void setMarbleModel(MarbleModel *marbleModel)
Definition: MarbleLegendBrowser.cpp:89
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
Marble::CurrentLocationWidget::setMarbleWidget
void setMarbleWidget(MarbleWidget *widget)
Set a MarbleWidget associated to this widget.
Definition: CurrentLocationWidget.cpp:104
RoutingProfilesModel.h
Marble::MarbleWidget::centerLatitude
qreal centerLatitude() const
Return the latitude of the center point.
Definition: MarbleWidget.cpp:771
Marble::DownloadRegionDialog::setSelectionMethod
void setSelectionMethod(SelectionMethod const )
Definition: DownloadRegionDialog.cpp:274
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:51 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal