• 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
  • 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  QPointer<MarbleAboutDialog> dialog = new MarbleAboutDialog( this );
280  dialog->setApplicationTitle( tr( "Marble Virtual Globe %1" ).arg( "MARBLE_MOBILE_VERSION_STRING" ) );
281  dialog->exec();
282  delete dialog;
283 }
284 
285 void MainWindow::closeEvent( QCloseEvent *event )
286 {
287  writeSettings();
288  event->accept();
289 }
290 
291 QString MainWindow::readMarbleDataPath()
292 {
293  QSettings settings;
294 
295  settings.beginGroup( "MarbleWidget" );
296  QString marbleDataPath;
297  marbleDataPath = settings.value( "marbleDataPath", "" ).toString(),
298  settings.endGroup();
299 
300  return marbleDataPath;
301 }
302 
303 void MainWindow::readSettings(const QVariantMap& overrideSettings)
304 {
305  // Load bookmark file. If it does not exist, a default one will be used.
306  m_marbleWidget->model()->bookmarkManager()->loadFile( "bookmarks/bookmarks.kml" );
307 
308  QSettings settings;
309 
310  settings.beginGroup( "MainWindow" );
311  resize( settings.value( "size", QSize( 640, 480 ) ).toSize() );
312  move( settings.value( "pos", QPoint( 200, 200 ) ).toPoint() );
313  if ( settings.value( "fullScreen", false ).toBool() ) {
314  showFullScreen();
315  }
316 #ifdef Q_WS_MAEMO_5
317  const Orientation orientation = (Orientation)settings.value( "orientation", (int)OrientationLandscape ).toInt();
318  setOrientation( orientation );
319 #endif // Q_WS_MAEMO_5
320  show();
321  setWorkOffline( settings.value( "workOffline", false ).toBool() );
322  setLegendShown( settings.value( "showLegend", false ).toBool() );
323  m_marbleWidget->setShowAtmosphere( settings.value( "showAtmosphere", true ).toBool() );
324  m_lastFileOpenPath = settings.value( "lastFileOpenDir", QDir::homePath() ).toString();
325  m_marbleWidget->model()->bookmarkManager()->setShowBookmarks( settings.value( "showBookmarks", true ).toBool() );
326  restoreState( settings.value( "windowState" ).toByteArray() );
327  settings.endGroup();
328 
329  setUpdatesEnabled( false );
330 
331  settings.beginGroup( "MarbleWidget" );
332  QString mapThemeId;
333  const QVariantMap::ConstIterator mapThemeIdIt = overrideSettings.find( QLatin1String( "mapTheme" ) );
334  if ( mapThemeIdIt != overrideSettings.constEnd() ) {
335  mapThemeId = mapThemeIdIt.value().toString();
336  } else {
337  mapThemeId = settings.value( "mapTheme", defaultMapThemeId ).toString();
338  }
339  mDebug() << Q_FUNC_INFO << "mapThemeId:" << mapThemeId;
340  m_marbleWidget->setMapThemeId( mapThemeId );
341  m_marbleWidget->setProjection( (Projection)settings.value( "projection", Mercator ).toInt() );
342 
343  // Set home position
344  m_marbleWidget->model()->setHome(
345  settings.value( "homeLongitude", 9.4 ).toDouble(),
346  settings.value( "homeLatitude", 54.8 ).toDouble(),
347  settings.value( "homeZoom", 1050 ).toInt()
348  );
349 
350  // Center on/Distance
351  const QVariantMap::ConstIterator distanceIt = overrideSettings.find( QLatin1String( "distance" ) );
352  const bool isDistanceOverwritten = (distanceIt != overrideSettings.constEnd());
353 
354  const QVariantMap::ConstIterator lonLatIt = overrideSettings.find( QLatin1String( "lonlat" ) );
355  if ( lonLatIt != overrideSettings.constEnd() ) {
356  const QVariantList lonLat = lonLatIt.value().toList();
357  m_marbleWidget->centerOn( lonLat.at( 0 ).toDouble(), lonLat.at( 1 ).toDouble() );
358  } else {
359  m_marbleWidget->centerOn(
360  settings.value( "quitLongitude", 0.0 ).toDouble(),
361  settings.value( "quitLatitude", 0.0 ).toDouble() );
362  }
363  if ( isDistanceOverwritten ) {
364  m_marbleWidget->setDistance( distanceIt.value().toDouble() );
365  } else {
366  // set default radius to 1350 (Atlas theme's "sharp" radius)
367  m_marbleWidget->setRadius( settings.value( "quitRadius", 1350 ).toInt() );
368  }
369  settings.endGroup();
370 
371  setUpdatesEnabled( true );
372 
373  // Load previous route settings
374  settings.beginGroup( "Routing" );
375  {
376  RoutingManager *const routingManager = m_marbleWidget->model()->routingManager();
377  routingManager->readSettings();
378  bool const startupWarning = settings.value( "showGuidanceModeStartupWarning", QVariant( true ) ).toBool();
379  routingManager->setShowGuidanceModeStartupWarning( startupWarning );
380  routingManager->setLastOpenPath( settings.value( "lastRouteOpenPath", QDir::homePath() ).toString() );
381  routingManager->setLastSavePath( settings.value( "lastRouteSavePath", QDir::homePath() ).toString() );
382 
383  QColor tempColor;
384  tempColor = QColor( settings.value( "routeColorStandard", Oxygen::skyBlue4.name() ).toString() );
385  tempColor.setAlpha( settings.value( "routeAlphaStandard", 200 ).toInt() );
386  routingManager->setRouteColorStandard( tempColor );
387 
388  tempColor = QColor( settings.value( "routeColorHighlighted", Oxygen::skyBlue1.name() ).toString() );
389  tempColor.setAlpha( settings.value( "routeAlphaHighlighted", 200 ).toInt() );
390  routingManager->setRouteColorHighlighted( tempColor );
391 
392  tempColor = QColor( settings.value( "routeColorAlternative", Oxygen::aluminumGray4.name() ).toString() );
393  tempColor.setAlpha( settings.value( "routeAlphaAlternative", 200 ).toInt() );
394  routingManager->setRouteColorAlternative( tempColor );
395  }
396  settings.endGroup();
397 
398  settings.beginGroup( "Routing Profile" );
399  if ( settings.contains( "Num" ) ) {
400  QList<RoutingProfile> profiles;
401  int numProfiles = settings.value( "Num", 0 ).toInt();
402  for ( int i = 0; i < numProfiles; ++i ) {
403  settings.beginGroup( QString( "Profile %0" ).arg(i) );
404  QString name = settings.value( "Name", tr( "Unnamed" ) ).toString();
405  RoutingProfile profile( name );
406  foreach ( const QString& pluginName, settings.childGroups() ) {
407  settings.beginGroup( pluginName );
408  profile.pluginSettings().insert( pluginName, QHash<QString, QVariant>() );
409  foreach ( const QString& key, settings.childKeys() ) {
410  if ( key != "Enabled" ) {
411  profile.pluginSettings()[ pluginName ].insert( key, settings.value( key ) );
412  }
413  }
414  settings.endGroup();
415  }
416  profiles << profile;
417  settings.endGroup();
418  }
419  m_marbleWidget->model()->routingManager()->profilesModel()->setProfiles( profiles );
420  } else {
421  m_marbleWidget->model()->routingManager()->profilesModel()->loadDefaultProfiles();
422  }
423  int const profileIndex = settings.value( "currentIndex", 0 ).toInt();
424  if ( profileIndex >= 0 && profileIndex < m_marbleWidget->model()->routingManager()->profilesModel()->rowCount() ) {
425  RoutingProfile profile = m_marbleWidget->model()->routingManager()->profilesModel()->profiles().at( profileIndex );
426  m_marbleWidget->model()->routingManager()->routeRequest()->setRoutingProfile( profile );
427  }
428  settings.endGroup();
429 
430  settings.beginGroup( "Plugins");
431  PositionTracking* tracking = m_marbleWidget->model()->positionTracking();
432  tracking->readSettings();
433  QString positionProvider = settings.value( "activePositionTrackingPlugin", QString() ).toString();
434  if ( !positionProvider.isEmpty() ) {
435  const PluginManager* pluginManager = m_marbleWidget->model()->pluginManager();
436  foreach( const PositionProviderPlugin* plugin, pluginManager->positionProviderPlugins() ) {
437  if ( plugin->nameId() == positionProvider ) {
438  PositionProviderPlugin* instance = plugin->newInstance();
439  instance->setMarbleModel( m_marbleWidget->model() );
440  tracking->setPositionProviderPlugin( instance );
441  break;
442  }
443  }
444  }
445  settings.endGroup();
446 
447  settings.beginGroup( "Tracking" );
448  if ( settings.contains( "autoCenter" ) || settings.contains( "recenterMode" ) ) {
449  initializeTrackingWidget();
450  CurrentLocationWidget* trackingWidget = qobject_cast<CurrentLocationWidget*>( m_trackingWindow->centralWidget() );
451  Q_ASSERT( trackingWidget );
452  trackingWidget->setRecenterMode( settings.value( "recenterMode", 0 ).toInt() );
453  trackingWidget->setAutoZoom( settings.value( "autoZoom", false ).toBool() );
454  trackingWidget->setTrackVisible( settings.value( "trackVisible", true ).toBool() );
455  trackingWidget->setLastOpenPath( settings.value( "lastTrackOpenPath", QDir::homePath() ).toString() );
456  trackingWidget->setLastSavePath( settings.value( "lastTrackSavePath", QDir::homePath() ).toString() );
457  }
458  settings.endGroup();
459 
460  settings.beginGroup( "View" );
461  m_marbleWidget->setDefaultFont( settings.value( "mapFont", QApplication::font() ).value<QFont>() );
462  m_marbleWidget->setMapQualityForViewContext( static_cast<Marble::MapQuality>( settings.value( "stillQuality", Marble::HighQuality ).toInt() ), Marble::Still );
463  m_marbleWidget->setMapQualityForViewContext( static_cast<Marble::MapQuality>( settings.value( "animationQuality", Marble::LowQuality ).toInt() ), Marble::Animation );
464  m_marbleWidget->setDefaultAngleUnit( static_cast<Marble::AngleUnit>( settings.value( "angleUnit", Marble::DMSDegree ).toInt() ) );
465  settings.endGroup();
466 
467  settings.beginGroup( "Navigation" );
468  m_marbleWidget->setAnimationsEnabled( settings.value( "animateTargetVoyage", true ).toBool() );
469  setKineticScrollingEnabled( settings.value( "inertialEarthRotation", true ).toBool() );
470  settings.endGroup();
471 
472  settings.beginGroup( "Cache" );
473  m_marbleWidget->model()->setPersistentTileCacheLimit( settings.value( "persistentTileCacheLimit", 0 ).toInt() * 1024 ); // default to unlimited
474  m_marbleWidget->setVolatileTileCacheLimit( settings.value( "volatileTileCacheLimit", 6 ).toInt() * 1024 );
475  settings.endGroup();
476 
477  m_marbleWidget->readPluginSettings( settings );
478 }
479 
480 void MainWindow::writeSettings()
481 {
482  QSettings settings;
483 
484  settings.beginGroup( "MainWindow" );
485  settings.setValue( "size", size() );
486  settings.setValue( "pos", pos() );
487  settings.setValue( "fullScreen", isFullScreen() );
488 #ifdef Q_WS_MAEMO_5
489  settings.setValue( "orientation", (int)orientation() );
490 #endif // Q_WS_MAEMO_5
491  settings.setValue( "workOffline", m_marbleWidget->model()->workOffline() );
492  settings.setValue( "showLegend", m_legendBrowser->isVisible() );
493  settings.setValue( "showAtmosphere", m_marbleWidget->showAtmosphere() );
494  settings.setValue( "lastFileOpenDir", m_lastFileOpenPath );
495  settings.setValue( "windowState", saveState() );
496  settings.endGroup();
497 
498  settings.beginGroup( "MarbleWidget" );
499  // Get the 'home' values from the widget and store them in the settings.
500  qreal homeLon = 0;
501  qreal homeLat = 0;
502  int homeZoom = 0;
503  m_marbleWidget->model()->home( homeLon, homeLat, homeZoom );
504 
505  settings.setValue( "homeLongitude", homeLon );
506  settings.setValue( "homeLatitude", homeLat );
507  settings.setValue( "homeZoom", homeZoom );
508 
509  settings.setValue( "mapTheme", m_marbleWidget->mapThemeId() );
510  settings.setValue( "projection", m_marbleWidget->projection() );
511 
512  settings.setValue( "quitLongitude", m_marbleWidget->centerLongitude() );
513  settings.setValue( "quitLatitude", m_marbleWidget->centerLatitude() );
514  settings.setValue( "quitRadius", m_marbleWidget->radius() );
515  settings.endGroup();
516 
517  settings.beginGroup( "Routing Profile" );
518  QList<RoutingProfile> profiles = m_marbleWidget->model()->routingManager()->profilesModel()->profiles();
519  settings.setValue( "Num", profiles.count() );
520  for ( int i = 0; i < profiles.count(); ++i ) {
521  settings.beginGroup( QString( "Profile %0" ).arg(i) );
522  const RoutingProfile& profile = profiles.at( i );
523  settings.setValue( "Name", profile.name() );
524  foreach ( const QString& pluginName, settings.childGroups() ) {
525  settings.beginGroup( pluginName );
526  settings.remove( "" ); //remove all keys
527  settings.endGroup();
528  }
529  foreach ( const QString &key, profile.pluginSettings().keys() ) {
530  settings.beginGroup( key );
531  settings.setValue( "Enabled", true );
532  foreach ( const QString& settingKey, profile.pluginSettings()[ key ].keys() ) {
533  Q_ASSERT( settingKey != "Enabled" );
534  settings.setValue( settingKey, profile.pluginSettings()[ key ][ settingKey ] );
535  }
536  settings.endGroup();
537  }
538  settings.endGroup();
539  }
540  RoutingProfile const profile = m_marbleWidget->model()->routingManager()->routeRequest()->routingProfile();
541  settings.setValue( "currentIndex", profiles.indexOf( profile ) );
542  settings.endGroup();
543 
544  settings.beginGroup( "Plugins");
545  QString positionProvider;
546  PositionTracking* tracking = m_marbleWidget->model()->positionTracking();
547  tracking->writeSettings();
548  if ( tracking && tracking->positionProviderPlugin() ) {
549  positionProvider = tracking->positionProviderPlugin()->nameId();
550  }
551  settings.setValue( "activePositionTrackingPlugin", positionProvider );
552  settings.endGroup();
553 
554  settings.beginGroup( "Tracking" );
555  // Can be null due to lazy initialization
556  if (m_trackingWindow) {
557  const CurrentLocationWidget *trackingWidget = static_cast<const CurrentLocationWidget *>( m_trackingWindow->centralWidget() );
558  Q_ASSERT( trackingWidget != 0 );
559  settings.setValue( "recenterMode", trackingWidget->recenterMode() );
560  settings.setValue( "autoZoom", trackingWidget->autoZoom() );
561  settings.setValue( "trackVisible", trackingWidget->trackVisible() );
562  settings.setValue( "lastTrackOpenPath", trackingWidget->lastOpenPath() );
563  settings.setValue( "lastTrackSavePath", trackingWidget->lastSavePath() );
564  }
565  settings.endGroup();
566 
567  settings.beginGroup( "Navigation" );
568  settings.setValue( "inertialEarthRotation", m_marbleWidget->inputHandler()->inertialEarthRotationEnabled() );
569  settings.endGroup();
570 
571  // Store current route settings
572  settings.beginGroup( "Routing" );
573  {
574  RoutingManager *const routingManager = m_marbleWidget->model()->routingManager();
575  routingManager->writeSettings();
576  settings.setValue( "showGuidanceModeStartupWarning", routingManager->showGuidanceModeStartupWarning() );
577  settings.setValue( "lastRouteOpenPath", routingManager->lastOpenPath() );
578  settings.setValue( "lastRouteSavePath", routingManager->lastSavePath() );
579  settings.setValue( "routeColorStandard", routingManager->routeColorStandard().name() );
580  settings.setValue( "routeAlphaStandard", routingManager->routeColorStandard().alpha() );
581  settings.setValue( "routeColorHighlighted", routingManager->routeColorHighlighted().name() );
582  settings.setValue( "routeAlphaHighlighted", routingManager->routeColorHighlighted().alpha() );
583  settings.setValue( "routeColorAlternative", routingManager->routeColorAlternative().name() );
584  settings.setValue( "routeAlphaAlternative", routingManager->routeColorAlternative().alpha() );
585  }
586  settings.endGroup();
587 
588  m_marbleWidget->writePluginSettings( settings );
589 }
590 
591 void MainWindow::showDownloadRegionDialog()
592 {
593  if ( !m_downloadRegionDialog ) {
594  m_downloadRegionDialog = new DownloadRegionDialog( m_marbleWidget, this );
595  // it might be tempting to move the connects to DownloadRegionDialog's "accepted" and
596  // "applied" signals, be aware that the "hidden" signal might be come before the "accepted"
597  // signal, leading to a too early disconnect.
598  connect( m_downloadRegionDialog, SIGNAL(accepted()), SLOT(downloadRegion()));
599  connect( m_downloadRegionDialog, SIGNAL(applied()), SLOT(downloadRegion()));
600  }
601  // FIXME: get allowed range from current map theme
602  m_downloadRegionDialog->setAllowedTileLevelRange( 0, 16 );
603  m_downloadRegionDialog->setSelectionMethod( DownloadRegionDialog::VisibleRegionMethod );
604  ViewportParams const * const viewport = m_marbleWidget->viewport();
605  m_downloadRegionDialog->setSpecifiedLatLonAltBox( viewport->viewLatLonAltBox() );
606  m_downloadRegionDialog->setVisibleLatLonAltBox( viewport->viewLatLonAltBox() );
607 
608  m_downloadRegionDialog->show();
609  m_downloadRegionDialog->raise();
610  m_downloadRegionDialog->activateWindow();
611 }
612 
613 void MainWindow::downloadRegion()
614 {
615  Q_ASSERT( m_downloadRegionDialog );
616  QVector<TileCoordsPyramid> const pyramid = m_downloadRegionDialog->region();
617  if ( !pyramid.isEmpty() ) {
618  m_marbleWidget->downloadRegion( pyramid );
619  }
620 }
621 
622 void MainWindow::showMapViewDialog()
623 {
624  if( !m_mapViewDialog ) {
625  m_mapViewDialog = new QDialog( this );
626  m_mapViewDialog->setWindowTitle( tr( "Map View - Marble" ) );
627 
628  QVBoxLayout *layout = new QVBoxLayout;
629  m_mapViewDialog->setLayout( layout );
630 
631  MapViewWidget *mapViewWidget = new MapViewWidget( m_mapViewDialog );
632  mapViewWidget->setMarbleWidget( m_marbleWidget, &m_mapThemeManager );
633  layout->addWidget( mapViewWidget );
634  }
635 
636  m_mapViewDialog->show();
637  m_mapViewDialog->raise();
638  m_mapViewDialog->activateWindow();
639 }
640 
641 void MainWindow::showRoutingDialog()
642 {
643  if( !m_routingWindow ) {
644  m_routingWindow = new StackableWindow( this );
645  m_routingWindow->setWindowTitle( tr( "Routing - Marble" ) );
646 
647  m_routingWidget = new RoutingWidget( m_marbleWidget, m_routingWindow );
648  m_routingWidget->setShowDirectionsButtonVisible( true );
649 
650  QScrollArea* scrollArea = new QScrollArea;
651  m_routingWidget->setMinimumWidth( 760 );
652  scrollArea->setWidgetResizable( true );
653  scrollArea->setWidget( m_routingWidget );
654 
655  QAction *openAction = new QAction( tr( "Open Route..." ), this );
656  connect( openAction, SIGNAL(triggered()), m_routingWidget, SLOT(openRoute()) );
657  m_routingWindow->menuBar()->addAction( openAction );
658 
659  QAction* saveAction = new QAction( tr( "Save Route..." ), this );
660  connect( saveAction, SIGNAL(triggered()), m_routingWidget, SLOT(saveRoute()) );
661  m_routingWindow->menuBar()->addAction( saveAction );
662 
663  m_routingWindow->setCentralWidget( scrollArea );
664  }
665 
666  m_routingWindow->show();
667  m_routingWindow->raise();
668  m_routingWindow->activateWindow();
669 }
670 
671 void MainWindow::showTrackingDialog()
672 {
673  initializeTrackingWidget();
674  m_trackingWindow->show();
675  m_trackingWindow->raise();
676  m_trackingWindow->activateWindow();
677 }
678 
679 void MainWindow::initializeTrackingWidget()
680 {
681  if( !m_trackingWindow ) {
682  m_trackingWindow = new StackableWindow( this );
683  m_trackingWindow->setWindowTitle( tr( "Tracking - Marble" ) );
684  CurrentLocationWidget *trackingWidget = new CurrentLocationWidget( m_trackingWindow );
685  trackingWidget->setMarbleWidget( m_marbleWidget );
686 
687  m_trackingWindow->setCentralWidget( trackingWidget );
688  }
689 }
690 
691 void MainWindow::showGoToDialog()
692 {
693  if ( !m_gotoDialog ) {
694  m_gotoDialog = new GoToDialog( m_marbleWidget->model(), this );
695  }
696 
697  m_gotoDialog->show();
698  if ( m_gotoDialog->exec() == QDialog::Accepted ) {
699  const GeoDataCoordinates coordinates = m_gotoDialog->coordinates();
700  m_marbleWidget->centerOn( coordinates );
701  }
702 }
703 
704 void MainWindow::fallBackToDefaultTheme()
705 {
706  if ( !m_mapThemeManager.mapThemeIds().contains( m_marbleWidget->mapThemeId() ) ) {
707  m_marbleWidget->setMapThemeId( defaultMapThemeId );
708  }
709 }
710 
711 #include "MobileMainWindow.moc"
QWidget::layout
QLayout * layout() const
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
QVariant::toByteArray
QByteArray toByteArray() const
Marble::GeoDataCoordinates
A 3d point representation.
Definition: GeoDataCoordinates.h:52
QWidget
Marble::DownloadRegionDialog::VisibleRegionMethod
Definition: DownloadRegionDialog.h:36
QScrollArea::setWidget
void setWidget(QWidget *widget)
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:607
Marble::CurrentLocationWidget::setTrackVisible
void setTrackVisible(bool visible)
Definition: CurrentLocationWidget.cpp:440
tracking
Definition: position-tracking.qml:12
QMenuBar::addAction
void addAction(QAction *action)
QSplitter::setSizes
void setSizes(const QList< int > &list)
Marble::BookmarkManager::loadFile
bool loadFile(const QString &relativeFilePath)
load bookmark file as GeoDataDocument and return true if loaded successfully else false ...
Definition: BookmarkManager.cpp:91
Marble::MainWindow::closeEvent
void closeEvent(QCloseEvent *event)
Definition: MobileMainWindow.cpp:285
Marble::RoutingProfilesModel::profiles
QList< RoutingProfile > profiles() const
Definition: RoutingProfilesModel.cpp:60
PositionProviderPlugin.h
Marble::MarbleWidget::projection
int projection
Definition: MarbleWidget.h:114
Marble::MarbleDirs::setMarbleDataPath
static void setMarbleDataPath(const QString &adaptedPath)
Definition: MarbleDirs.cpp:307
MobileMainWindow.h
QSettings::childKeys
QStringList childKeys() const
QColor::name
QString name() const
QMainWindow::menuBar
QMenuBar * menuBar() const
QWidget::addAction
void addAction(QAction *action)
QSplitter::setStretchFactor
void setStretchFactor(int index, int stretch)
QSettings::endGroup
void endGroup()
QAction::setChecked
void setChecked(bool)
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
QX11Info::display
Display * display()
Marble::MarbleWidget::radius
int radius() const
Return the radius of the globe in pixels.
Definition: MarbleWidget.cpp:325
QFont
QNetworkAccessManager::setNetworkAccessible
void setNetworkAccessible(NetworkAccessibility accessible)
Marble::DownloadRegionDialog::setSpecifiedLatLonAltBox
void setSpecifiedLatLonAltBox(GeoDataLatLonAltBox const &)
Definition: DownloadRegionDialog.cpp:342
QWidget::setMinimumWidth
void setMinimumWidth(int minw)
QAction::setIcon
void setIcon(const QIcon &icon)
QList::at
const T & at(int i) const
Marble::MarbleWidget::setAnimationsEnabled
void setAnimationsEnabled(bool enabled)
Set whether travels to a point should get animated.
Definition: MarbleWidget.cpp:1041
QPointer
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
Marble::RoutingWidget
A widget consisting of input fields for places / routing destinations, a list view showing routing in...
Definition: RoutingWidget.h:35
QWidget::setVisible
virtual void setVisible(bool visible)
Marble::RoutingManager::setRouteColorAlternative
void setRouteColorAlternative(QColor color)
Set color for alternative route rendering.
Definition: RoutingManager.cpp:510
QWidget::setAttribute
void setAttribute(Qt::WidgetAttribute attribute, bool on)
QVariant::value
T value() const
Marble::MarbleWidget::setProjection
void setProjection(int projection)
Set the Projection used for the map.
Definition: MarbleWidget.cpp:591
Marble::ViewportParams::viewLatLonAltBox
const GeoDataLatLonAltBox & viewLatLonAltBox() const
Definition: ViewportParams.cpp:305
QDialog::exec
int exec()
Marble::MarbleWidget::setDefaultAngleUnit
void setDefaultAngleUnit(AngleUnit angleUnit)
Definition: MarbleWidget.cpp:1051
QColor::setAlpha
void setAlpha(int alpha)
Marble::RoutingManager::routeColorAlternative
QColor routeColorAlternative() const
Get color for alternative route rendering.
Definition: RoutingManager.cpp:515
Marble::MapViewWidget
Definition: MapViewWidget.h:32
Marble::MarbleInputHandler::setInertialEarthRotationEnabled
void setInertialEarthRotationEnabled(bool enabled)
Definition: MarbleInputHandler.cpp:116
QPoint
Marble::MarbleWidget::setVolatileTileCacheLimit
void setVolatileTileCacheLimit(quint64 kiloBytes)
Set the limit of the volatile (in RAM) tile cache.
Definition: MarbleWidget.cpp:987
Marble::MarbleModel::pluginManager
const PluginManager * pluginManager() const
Definition: MarbleModel.cpp:634
MarbleAboutDialog.h
Marble::CurrentLocationWidget::lastOpenPath
QString lastOpenPath() const
Definition: CurrentLocationWidget.cpp:430
Planet.h
Marble::RoutingProfile
Definition: RoutingProfile.h:24
QDir::homePath
QString homePath()
MarbleDebug.h
Marble::RoutingProfilesModel::setProfiles
void setProfiles(const QList< RoutingProfile > &profiles)
Definition: RoutingProfilesModel.cpp:53
QObject::tr
QString tr(const char *sourceText, const char *disambiguation, int n)
Marble::CurrentLocationWidget::recenterMode
AutoNavigation::CenterMode recenterMode() const
Definition: CurrentLocationWidget.cpp:415
Marble::MarbleWidget::readPluginSettings
void readPluginSettings(QSettings &settings)
Reads the plugin settings from the passed QSettings.
Definition: MarbleWidget.cpp:1112
BookmarkManager.h
QWidget::setWindowIcon
void setWindowIcon(const QIcon &icon)
Marble::MainWindow::MainWindow
MainWindow(const QString &marbleDataPath=QString(), QWidget *parent=0)
Definition: KdeMainWindow.cpp:40
QWidget::isFullScreen
bool isFullScreen() const
QSplitter::addWidget
void addWidget(QWidget *widget)
CurrentLocationWidget.h
QSplitter::setOrientation
void setOrientation(Qt::Orientation)
Marble::BookmarkManager::setShowBookmarks
void setShowBookmarks(bool visible)
Definition: BookmarkManager.cpp:169
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:104
Marble::PositionProviderPlugin
The abstract class that provides position information.
Definition: PositionProviderPlugin.h:26
Marble::PositionTracking
Definition: PositionTracking.h:31
QList::indexOf
int indexOf(const T &value, int from) const
Marble::DownloadRegionDialog::setVisibleLatLonAltBox
void setVisibleLatLonAltBox(GeoDataLatLonAltBox const &)
Definition: DownloadRegionDialog.cpp:347
QWidget::width
int width() const
Marble::LowQuality
Low resolution (e.g. interlaced)
Definition: MarbleGlobal.h:84
QCloseEvent
Marble::RoutingManager::routeRequest
RouteRequest * routeRequest()
Returns the current route request.
Definition: RoutingManager.cpp:271
MarbleWidgetInputHandler.h
QSettings::setValue
void setValue(const QString &key, const QVariant &value)
Marble::MarbleWidget::setMapThemeId
void setMapThemeId(const QString &maptheme)
Set a new map theme.
Definition: MarbleWidget.cpp:759
QWidget::resize
void resize(int w, int h)
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:490
QObject::name
const char * name() const
QMainWindow::centralWidget
QWidget * centralWidget() const
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::RoutingManager::routeColorStandard
QColor routeColorStandard() const
Get color for standard route rendering.
Definition: RoutingManager.cpp:495
Marble::MarbleLegendBrowser
Definition: MarbleLegendBrowser.h:35
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:725
QWidget::testAttribute
bool testAttribute(Qt::WidgetAttribute attribute) const
QBoxLayout::addWidget
void addWidget(QWidget *widget, int stretch, QFlags< Qt::AlignmentFlag > alignment)
QApplication::font
QFont font()
QList::count
int count(const T &value) const
RoutingManager.h
Marble::MarbleWidget::downloadRegion
void downloadRegion(QVector< TileCoordsPyramid > const &)
Definition: MarbleWidget.cpp:1176
Marble::CurrentLocationWidget
Definition: CurrentLocationWidget.h:30
QCoreApplication::processEvents
void processEvents(QFlags< QEventLoop::ProcessEventsFlag > flags)
Marble::MarbleWidget::showAtmosphere
bool showAtmosphere
Definition: MarbleWidget.h:129
Marble::MarbleWidget::centerLongitude
qreal centerLongitude() const
Return the longitude of the center point.
Definition: MarbleWidget.cpp:680
Marble::Animation
animated view (e.g. while rotating the globe)
Definition: MarbleGlobal.h:76
GoToDialog.h
QWidget::setLayout
void setLayout(QLayout *layout)
Marble::MarbleModel::setWorkOffline
void setWorkOffline(bool workOffline)
Definition: MarbleModel.cpp:843
Marble::CurrentLocationWidget::setAutoZoom
void setAutoZoom(bool activate)
Slot for Auto Zooming while navigating.
Definition: CurrentLocationWidget.cpp:350
QVariant::toInt
int toInt(bool *ok) const
Marble::Oxygen::aluminumGray4
QColor const aluminumGray4
Definition: MarbleColors.h:92
Marble::MarbleModel::routingManager
RoutingManager * routingManager()
Definition: MarbleModel.cpp:675
Marble::Mercator
Mercator projection.
Definition: MarbleGlobal.h:47
Marble::PositionProviderPlugin::setMarbleModel
void setMarbleModel(const MarbleModel *)
Definition: PositionProviderPlugin.cpp:42
QHash< QString, QVariant >
Marble::Oxygen::skyBlue1
QColor const skyBlue1
Definition: MarbleColors.h:59
QWidget::setUpdatesEnabled
void setUpdatesEnabled(bool enable)
Marble::MarbleWidget::model
MarbleModel * model()
Return the model that this view shows.
Definition: MarbleWidget.cpp:289
Marble::MarbleModel::home
void home(qreal &lon, qreal &lat, int &zoom) const
get the home point
Definition: MarbleModel.cpp:446
QSettings::contains
bool contains(const QString &key) const
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
QWidget::raise
void raise()
QString::isEmpty
bool isEmpty() const
Marble::RoutingManager::setLastSavePath
void setLastSavePath(const QString &path)
Set last directory the user saved a route to.
Definition: RoutingManager.cpp:480
Marble::MarbleModel::positionTracking
PositionTracking * positionTracking() const
Definition: MarbleModel.cpp:512
Marble::Still
still image
Definition: MarbleGlobal.h:75
QSettings::childGroups
QStringList childGroups() const
Marble::MarbleInputHandler::inertialEarthRotationEnabled
bool inertialEarthRotationEnabled() const
Returns true iff dragging the map with the mouse keeps spinning in the chosen direction for a slightl...
Definition: MarbleInputHandler.cpp:121
Marble::RouteRequest::setRoutingProfile
void setRoutingProfile(const RoutingProfile &profile)
Definition: RouteRequest.cpp:315
QWidget::move
void move(int x, int y)
QVBoxLayout
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
QMainWindow::setCentralWidget
void setCentralWidget(QWidget *widget)
Marble::CurrentLocationWidget::setLastSavePath
void setLastSavePath(const QString &path)
Definition: CurrentLocationWidget.cpp:451
QWidget::winId
WId winId() const
QString
QList< int >
QColor
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:389
Marble::DownloadRegionDialog::setAllowedTileLevelRange
void setAllowedTileLevelRange(int const minimumTileLevel, int const maximumTileLevel)
Definition: DownloadRegionDialog.cpp:261
Marble::RoutingManager::readSettings
void readSettings()
Restores a previously saved route request and route from disk, if any.
Definition: RoutingManager.cpp:374
Marble::BookmarkManagerDialog
Definition: BookmarkManagerDialog.h:26
Marble::MarbleAboutDialog
Definition: MarbleAboutDialog.h:30
QColor::alpha
int alpha() const
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:299
QHash::keys
QList< Key > keys() const
QMainWindow
QVariant::toSize
QSize toSize() const
Marble::RoutingProfilesModel::loadDefaultProfiles
void loadDefaultProfiles()
Definition: RoutingProfilesModel.cpp:126
Marble::CurrentLocationWidget::trackVisible
bool trackVisible() const
Definition: CurrentLocationWidget.cpp:425
Marble::CurrentLocationWidget::setLastOpenPath
void setLastOpenPath(const QString &path)
Definition: CurrentLocationWidget.cpp:446
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
QSettings
Marble::CurrentLocationWidget::autoZoom
bool autoZoom() const
Definition: CurrentLocationWidget.cpp:420
QSize
QSettings::remove
void remove(const QString &key)
Marble::MarbleWidget::centerOn
void centerOn(const qreal lon, const qreal lat, bool animated=false)
Center the view on a geographical point.
Definition: MarbleWidget.cpp:549
QScrollArea::setWidgetResizable
void setWidgetResizable(bool resizable)
QAction::setShortcut
void setShortcut(const QKeySequence &shortcut)
Marble::CurrentLocationWidget::setRecenterMode
void setRecenterMode(int recenterMode)
Slot that decides whether recentering should be done.
Definition: CurrentLocationWidget.cpp:342
Marble::MarbleWidget::setRadius
void setRadius(int radius)
Set the radius of the globe in pixels.
Definition: MarbleWidget.cpp:330
ViewportParams.h
This file contains the headers for ViewportParams.
QMainWindow::saveState
QByteArray saveState(int version) const
QAction::setCheckable
void setCheckable(bool)
QMetaObject::invokeMethod
bool invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericReturnArgument ret, QGenericArgument val0, QGenericArgument val1, QGenericArgument val2, QGenericArgument val3, QGenericArgument val4, QGenericArgument val5, QGenericArgument val6, QGenericArgument val7, QGenericArgument val8, QGenericArgument val9)
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:452
Marble::RoutingManager::setLastOpenPath
void setLastOpenPath(const QString &path)
Set last directory the user opened a route from.
Definition: RoutingManager.cpp:470
Marble::MarbleWidget::setMapQualityForViewContext
void setMapQualityForViewContext(MapQuality quality, ViewContext viewContext)
Set the map quality for the specified view context.
Definition: MarbleWidget.cpp:1009
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:97
QSettings::value
QVariant value(const QString &key, const QVariant &defaultValue) const
QSplitter
QAction::setStatusTip
void setStatusTip(const QString &statusTip)
Marble::MapViewWidget::setMarbleWidget
void setMarbleWidget(MarbleWidget *widget, MapThemeManager *mapThemeManager)
Set a MarbleWidget associated to this widget.
Definition: MapViewWidget.cpp:401
Marble::PositionTracking::writeSettings
void writeSettings()
Definition: PositionTracking.cpp:361
Marble::DownloadRegionDialog
Definition: DownloadRegionDialog.h:31
QVector
QTest::toString
char * toString(const T &value)
QWidget::activateWindow
void activateWindow()
Marble::DMSDegree
Degrees in DMS notation.
Definition: MarbleGlobal.h:66
QLatin1String
Marble::HighQuality
High quality (e.g. antialiasing for lines)
Definition: MarbleGlobal.h:86
QVector::isEmpty
bool isEmpty() const
MarbleLegendBrowser.h
RoutingWidget.h
PluginManager.h
QWidget::setWindowTitle
void setWindowTitle(const QString &)
QAction
QMainWindow::restoreState
bool restoreState(const QByteArray &state, int version)
Marble::MarbleWidget::setShowAtmosphere
void setShowAtmosphere(bool visible)
Set whether the atmospheric glow is visible.
Definition: MarbleWidget.cpp:861
QWidget::showFullScreen
void showFullScreen()
Marble::MarbleModel::bookmarkManager
BookmarkManager * bookmarkManager()
return instance of BookmarkManager
Definition: MarbleModel.cpp:213
DownloadRegionDialog.h
Marble::RoutingWidget::setShowDirectionsButtonVisible
void setShowDirectionsButtonVisible(bool visible)
Show or hide the "open file..." button.
Definition: RoutingWidget.cpp:634
Marble::PositionTracking::readSettings
void readSettings()
Definition: PositionTracking.cpp:298
QWebView::page
QWebPage * page() const
Marble::CurrentLocationWidget::lastSavePath
QString lastSavePath() const
Definition: CurrentLocationWidget.cpp:435
Marble::RoutingManager::writeSettings
void writeSettings() const
Saves the current route request and the current route to disk.
Definition: RoutingManager.cpp:327
QVariant::toBool
bool toBool() const
Marble::Projection
Projection
This enum is used to choose the projection shown in the view.
Definition: MarbleGlobal.h:44
QDialog
Marble::MarbleWidget::mapThemeId
QString mapThemeId
Definition: MarbleWidget.h:113
MarbleWidget.h
This file contains the headers for MarbleWidget.
QVariant::toPoint
QPoint toPoint() const
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:1076
QVariant::toDouble
double toDouble(bool *ok) const
Marble::PositionTracking::setPositionProviderPlugin
void setPositionProviderPlugin(PositionProviderPlugin *plugin)
Change the position provider to use.
Definition: PositionTracking.cpp:184
StackableWindow.h
Marble::MarbleWidget::setDefaultFont
void setDefaultFont(const QFont &font)
Definition: MarbleWidget.cpp:1061
QWidget::show
void show()
QString::find
int find(QChar c, int i, bool cs) const
Marble::MainWindow::marbleWidget
MarbleWidget * marbleWidget() const
Definition: KdeMainWindow.cpp:153
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:1129
Marble::MarbleWidget::clearVolatileTileCache
void clearVolatileTileCache()
Definition: MarbleWidget.cpp:981
PositionTracking.h
Marble::MarbleModel::workOffline
bool workOffline
Definition: MarbleModel.h:104
QScrollArea
Marble::RoutingManager::routeColorHighlighted
QColor routeColorHighlighted() const
Get color for highlighted route rendering.
Definition: RoutingManager.cpp:505
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
Marble::MarbleWidget::inputHandler
MarbleWidgetInputHandler * inputHandler() const
Returns the current input handler.
Definition: MarbleWidget.cpp:320
MapViewWidget.h
Marble::MainWindow::addGeoDataFile
void addGeoDataFile(const QString &path)
Definition: MobileMainWindow.cpp:197
QVariant::toString
QString toString() const
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
QWebPage::setNetworkAccessManager
void setNetworkAccessManager(QNetworkAccessManager *manager)
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:465
Marble::CurrentLocationWidget::setMarbleWidget
void setMarbleWidget(MarbleWidget *widget)
Set a MarbleWidget associated to this widget.
Definition: CurrentLocationWidget.cpp:104
RoutingProfilesModel.h
QSettings::beginGroup
void beginGroup(const QString &prefix)
QIcon
QVariant
Marble::MarbleWidget::centerLatitude
qreal centerLatitude() const
Return the latitude of the center point.
Definition: MarbleWidget.cpp:675
Marble::DownloadRegionDialog::setSelectionMethod
void setSelectionMethod(SelectionMethod const )
Definition: DownloadRegionDialog.cpp:274
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:40 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