• 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
  • plugins
  • declarative
MarbleDeclarativeWidget.cpp
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2010 Dennis Nienhüser <earthwings@gentoo.org>
9 //
10 
11 #include "MarbleDeclarativeWidget.h"
12 
13 #include "Coordinate.h"
14 #include "ZoomButtonInterceptor.h"
15 
16 #include "GeoDataCoordinates.h"
17 #include "MarbleWidget.h"
18 #include "MarbleModel.h"
19 #include "MarbleWidgetInputHandler.h"
20 #include "MarbleMath.h"
21 #include "MapThemeManager.h"
22 #include "AbstractFloatItem.h"
23 #include "AbstractDataPlugin.h"
24 #include "RenderPlugin.h"
25 #include "MarbleMap.h"
26 #include "MarbleDirs.h"
27 #include "ViewParams.h"
28 #include "ViewportParams.h"
29 #include "DownloadRegion.h"
30 #include "BookmarkManager.h"
31 #include "routing/RoutingManager.h"
32 #include "routing/RoutingModel.h"
33 #include "routing/RoutingProfilesModel.h"
34 #include "DeclarativeDataPlugin.h"
35 #include "PluginManager.h"
36 
37 #include <QSettings>
38 #include <QApplication>
39 
40 #if QT_VERSION < 0x050000
41  typedef QDeclarativeComponent QQmlComponent;
42 #endif
43 
44 MarbleWidget::MarbleWidget( QGraphicsItem *parent , Qt::WindowFlags flags ) :
45  QGraphicsProxyWidget( parent, flags ),
46  m_marbleWidget( new Marble::MarbleWidget ),
47  m_inputEnabled( true ),
48  m_interceptor( new ZoomButtonInterceptor( this, this ) )
49 {
50  m_marbleWidget->setMapThemeId( "earth/openstreetmap/openstreetmap.dgml" );
51  QSettings settings;
52  m_marbleWidget->readPluginSettings( settings );
53  m_marbleWidget->model()->routingManager()->profilesModel()->loadDefaultProfiles();
54  m_marbleWidget->model()->routingManager()->readSettings();
55  m_marbleWidget->model()->bookmarkManager()->loadFile( "bookmarks/bookmarks.kml" );
56  setWidget( m_marbleWidget );
57 
58  connect( m_marbleWidget, SIGNAL(visibleLatLonAltBoxChanged(GeoDataLatLonAltBox)),
59  this, SIGNAL(visibleLatLonAltBoxChanged()) );
60  connect( m_marbleWidget->model(), SIGNAL(workOfflineChanged()),
61  this, SIGNAL(workOfflineChanged()) );
62  connect( m_marbleWidget, SIGNAL(zoomChanged(int)),
63  this, SIGNAL(radiusChanged()) );
64  connect( m_marbleWidget, SIGNAL(themeChanged(QString)),
65  this, SIGNAL(mapThemeChanged()) );
66  connect( m_marbleWidget, SIGNAL(projectionChanged(Projection)),
67  this, SIGNAL(projectionChanged()) );
68  connect( m_marbleWidget, SIGNAL(mouseClickGeoPosition(qreal,qreal,GeoDataCoordinates::Unit)),
69  this, SLOT(forwardMouseClick(qreal,qreal,GeoDataCoordinates::Unit)) );
70  connect( &m_center, SIGNAL(latitudeChanged()), this, SLOT(updateCenterPosition()));
71  connect( &m_center, SIGNAL(longitudeChanged()), this, SLOT(updateCenterPosition()));
72 
73  m_marbleWidget->inputHandler()->setMouseButtonPopupEnabled( Qt::LeftButton, false );
74  m_marbleWidget->inputHandler()->setPanViaArrowsEnabled( false );
75  grabGesture( Qt::PinchGesture, Qt::ReceivePartialGestures | Qt::IgnoredGesturesPropagateToParent );
76  setAcceptTouchEvents(true);
77 }
78 
79 MarbleWidget::~MarbleWidget()
80 {
81  QSettings settings;
82  m_marbleWidget->writePluginSettings( settings );
83  m_marbleWidget->model()->routingManager()->writeSettings();
84 }
85 
86 Marble::MarbleModel *MarbleWidget::model()
87 {
88  return m_marbleWidget->model();
89 }
90 
91 const Marble::ViewportParams *MarbleWidget::viewport() const
92 {
93  return m_marbleWidget->viewport();
94 }
95 
96 QList<QObject*> MarbleWidget::renderPlugins() const
97 {
98  QList<QObject*> result;
99  foreach ( Marble::RenderPlugin* plugin, m_marbleWidget->renderPlugins() ) {
100  result << plugin;
101  }
102 
103  return result;
104 }
105 
106 QStringList MarbleWidget::activeFloatItems() const
107 {
108  QStringList result;
109  foreach( Marble::AbstractFloatItem * floatItem, m_marbleWidget->floatItems() ) {
110  if ( floatItem->enabled() && floatItem->visible() ) {
111  result << floatItem->nameId();
112  }
113  }
114  return result;
115 }
116 
117 void MarbleWidget::setActiveFloatItems( const QStringList &items )
118 {
119  foreach( Marble::AbstractFloatItem * floatItem, m_marbleWidget->floatItems() ) {
120  floatItem->setEnabled( items.contains( floatItem->nameId() ) );
121  floatItem->setVisible( items.contains( floatItem->nameId() ) );
122  }
123 }
124 
125 QStringList MarbleWidget::activeRenderPlugins() const
126 {
127  QStringList result;
128  foreach( Marble::RenderPlugin * plugin, m_marbleWidget->renderPlugins() ) {
129  if ( plugin->enabled() && plugin->visible() ) {
130  result << plugin->nameId();
131  }
132  }
133  return result;
134 }
135 
136 #if QT_VERSION < 0x050000
137 QDeclarativeListProperty<QObject> MarbleWidget::childList()
138 {
139  return QDeclarativeListProperty<QObject>( this, m_children );
140 }
141 
142 QDeclarativeListProperty<DeclarativeDataPlugin> MarbleWidget::dataLayers()
143 {
144  return QDeclarativeListProperty<DeclarativeDataPlugin>( this, 0, &MarbleWidget::addLayer, 0, 0, 0 );
145 }
146 
147 #else
148 QQmlListProperty<QObject> MarbleWidget::childList()
149 {
150  return QQmlListProperty<QObject>( this, m_children );
151 }
152 
153 QQmlListProperty<DeclarativeDataPlugin> MarbleWidget::dataLayers()
154 {
155  return QQmlListProperty<DeclarativeDataPlugin>( this, 0, &MarbleWidget::addLayer, 0, 0, 0 );
156 }
157 #endif
158 
159 void MarbleWidget::setActiveRenderPlugins( const QStringList &items )
160 {
161  foreach( Marble::RenderPlugin * plugin, m_marbleWidget->renderPlugins() ) {
162  plugin->setEnabled( items.contains( plugin->nameId() ) );
163  plugin->setVisible( items.contains( plugin->nameId() ) );
164  }
165 }
166 
167 bool MarbleWidget::inputEnabled() const
168 {
169  return m_inputEnabled;
170 }
171 
172 void MarbleWidget::setInputEnabled( bool enabled )
173 {
174  m_inputEnabled = enabled;
175  m_marbleWidget->setInputEnabled( enabled );
176 }
177 
178 QString MarbleWidget::mapThemeId() const
179 {
180  return m_marbleWidget->mapThemeId();
181 }
182 
183 void MarbleWidget::setMapThemeId( const QString &mapThemeId )
184 {
185  m_marbleWidget->setMapThemeId( mapThemeId );
186 }
187 
188 QString MarbleWidget::projection( ) const
189 {
190  switch ( m_marbleWidget->projection() ) {
191  case Marble::Equirectangular:
192  return "Equirectangular";
193  case Marble::Mercator:
194  return "Mercator";
195  case Marble::Spherical:
196  return "Spherical";
197  }
198 
199  Q_ASSERT( false && "Marble got a new projection which we do not know about yet" );
200  return "Spherical";
201 }
202 
203 void MarbleWidget::setProjection( const QString &projection )
204 {
205  if ( projection.compare( "Equirectangular", Qt::CaseInsensitive ) == 0 ) {
206  m_marbleWidget->setProjection( Marble::Equirectangular );
207  } else if ( projection.compare( "Mercator", Qt::CaseInsensitive ) == 0 ) {
208  m_marbleWidget->setProjection( Marble::Mercator );
209  } else {
210  m_marbleWidget->setProjection( Marble::Spherical );
211  }
212 }
213 
214 void MarbleWidget::zoomIn()
215 {
216  m_marbleWidget->zoomIn();
217 }
218 
219 void MarbleWidget::zoomOut()
220 {
221  m_marbleWidget->zoomOut();
222 }
223 
224 QPoint MarbleWidget::pixel( qreal lon, qreal lat ) const
225 {
226  Marble::GeoDataCoordinates position( lon, lat, 0, Marble::GeoDataCoordinates::Degree );
227  qreal x( 0.0 );
228  qreal y( 0.0 );
229  Marble::ViewportParams *viewport = m_marbleWidget->viewport();
230  viewport->screenCoordinates( position, x, y );
231  return QPoint( x, y );
232 }
233 
234 Coordinate *MarbleWidget::coordinate( int x, int y )
235 {
236  qreal lat( 0.0 ), lon( 0.0 );
237  m_marbleWidget->geoCoordinates( x, y, lon, lat );
238  return new Coordinate( lon, lat, 0.0, this );
239 }
240 
241 Coordinate* MarbleWidget::center()
242 {
243  m_center.blockSignals( true );
244  m_center.setLongitude( m_marbleWidget->centerLongitude() );
245  m_center.setLatitude( m_marbleWidget->centerLatitude() );
246  m_center.blockSignals( false );
247  return &m_center;
248 }
249 
250 void MarbleWidget::setCenter( Coordinate* center )
251 {
252  if ( center ) {
253  m_center.blockSignals( true );
254  m_center.setLongitude( center->longitude() );
255  m_center.setLatitude( center->latitude() );
256  m_center.setAltitude( center->altitude() );
257  m_center.blockSignals( false );
258  updateCenterPosition();
259  }
260 }
261 
262 void MarbleWidget::centerOn( const Marble::GeoDataLatLonBox &bbox )
263 {
264  m_marbleWidget->centerOn( bbox );
265 }
266 
267 void MarbleWidget::centerOn( const Marble::GeoDataCoordinates &coordinates )
268 {
269  m_marbleWidget->centerOn( coordinates );
270 }
271 
272 void MarbleWidget::updateCenterPosition()
273 {
274  m_marbleWidget->centerOn( m_center.longitude(), m_center.latitude() );
275 }
276 
277 void MarbleWidget::forwardMouseClick(qreal lon, qreal lat, Marble::GeoDataCoordinates::Unit unit )
278 {
279  Marble::GeoDataCoordinates position( lon, lat, unit );
280  Marble::GeoDataCoordinates::Unit degree = Marble::GeoDataCoordinates::Degree;
281  QPoint const point = pixel( position.longitude( degree ), position.latitude( degree ) );
282  QVector<const Marble::GeoDataPlacemark*> const placemarks = m_marbleWidget->whichFeatureAt( point );
283  if ( !placemarks.isEmpty() ) {
284  if ( placemarks.size() == 1 ) {
285  Placemark* placemark = new Placemark;
286  placemark->setGeoDataPlacemark( *placemarks.first() );
287  emit placemarkSelected( placemark );
288  }
289  } else {
290  emit mouseClickGeoPosition( position.longitude( degree ),
291  position.latitude( degree ) );
292  }
293 }
294 
295 #if QT_VERSION < 0x050000
296 void MarbleWidget::addLayer( QDeclarativeListProperty<DeclarativeDataPlugin> *list, DeclarativeDataPlugin *layer )
297 #else
298 void MarbleWidget::addLayer( QQmlListProperty<DeclarativeDataPlugin> *list, DeclarativeDataPlugin *layer )
299 #endif
300 {
301  MarbleWidget *object = qobject_cast<MarbleWidget *>( list->object );
302  if ( object ) {
303  object->m_marbleWidget->model()->pluginManager()->addRenderPlugin( layer );
304  object->setDataPluginDelegate( layer->nameId(), layer->delegate() );
305  object->m_dataLayers << layer;
306  }
307 }
308 
309 QStandardItemModel *MarbleWidget::mapThemeModel()
310 {
311  return m_mapThemeManager.mapThemeModel();
312 }
313 
314 void MarbleWidget::setGeoSceneProperty(const QString &key, bool value)
315 {
316  m_marbleWidget->setPropertyValue( key, value );
317 }
318 
319 void MarbleWidget::downloadRoute( qreal offset, int topTileLevel, int bottomTileLevel )
320 {
321  Marble::DownloadRegion region;
322  region.setMarbleModel( m_marbleWidget->model() );
323  region.setVisibleTileLevel( m_marbleWidget->tileZoomLevel() );
324  region.setTileLevelRange( topTileLevel, bottomTileLevel );
325  const Marble::GeoDataLineString waypoints = m_marbleWidget->model()->routingManager()->routingModel()->route().path();
326  QVector<Marble::TileCoordsPyramid> const pyramid = region.fromPath( m_marbleWidget->textureLayer(), offset, waypoints );
327  if ( !pyramid.isEmpty() ) {
328  m_marbleWidget->downloadRegion( pyramid );
329  }
330 }
331 
332 void MarbleWidget::downloadArea(int topTileLevel, int bottomTileLevel)
333 {
334  Marble::DownloadRegion region;
335  region.setMarbleModel( m_marbleWidget->model() );
336  region.setVisibleTileLevel( m_marbleWidget->tileZoomLevel() );
337  region.setTileLevelRange( topTileLevel, bottomTileLevel );
338  QVector<Marble::TileCoordsPyramid> const pyramid = region.region( m_marbleWidget->textureLayer(), m_marbleWidget->viewport()->viewLatLonAltBox() );
339  if ( !pyramid.isEmpty() ) {
340  m_marbleWidget->downloadRegion( pyramid );
341  }
342 }
343 
344 void MarbleWidget::setDataPluginDelegate( const QString &plugin, QQmlComponent *delegate )
345 {
346  QList<Marble::RenderPlugin*> renderPlugins = m_marbleWidget->renderPlugins();
347  foreach( Marble::RenderPlugin* renderPlugin, renderPlugins ) {
348  Marble::AbstractDataPlugin* dataPlugin = qobject_cast<Marble::AbstractDataPlugin*>( renderPlugin );
349  if ( dataPlugin && dataPlugin->nameId() == plugin ) {
350  dataPlugin->setDelegate( delegate, this );
351  }
352  }
353 }
354 
355 bool MarbleWidget::workOffline() const
356 {
357  return m_marbleWidget->model()->workOffline();
358 }
359 
360 void MarbleWidget::setWorkOffline( bool workOffline )
361 {
362  m_marbleWidget->model()->setWorkOffline( workOffline );
363 }
364 
365 int MarbleWidget::radius() const
366 {
367  return m_marbleWidget->radius();
368 }
369 
370 void MarbleWidget::setRadius( int radius )
371 {
372  m_marbleWidget->setRadius( radius );
373 }
374 
375 bool MarbleWidget::event ( QEvent * event )
376 {
377  if ( m_marbleWidget && event && event->type() == QEvent::Gesture ) {
378  return QApplication::sendEvent( m_marbleWidget, event );
379  }
380 
381  return QGraphicsProxyWidget::event( event );
382 }
383 
384 bool MarbleWidget::sceneEvent( QEvent *event )
385 {
386  if ( event->type() == QEvent::TouchBegin ) {
387  event->accept();
388  return true;
389  }
390 
391  return QGraphicsProxyWidget::sceneEvent( event );
392 }
393 
394 Marble::RenderPlugin *MarbleWidget::renderPlugin( const QString & name )
395 {
396  foreach( Marble::RenderPlugin * plugin, m_marbleWidget->renderPlugins() )
397  {
398  if( plugin->nameId() == name ) {
399  return plugin;
400  }
401  }
402  return 0;
403 }
404 
405 bool MarbleWidget::containsRenderPlugin( const QString & name )
406 {
407  foreach( Marble::RenderPlugin * plugin, m_marbleWidget->renderPlugins() )
408  {
409  if( plugin->nameId() == name ) {
410  return true;
411  }
412  }
413  return false;
414 }
415 
416 QList<QObject*> MarbleWidget::floatItems() const
417 {
418  QList<QObject*> result;
419  foreach ( Marble::AbstractFloatItem* plugin, m_marbleWidget->floatItems() ) {
420  result << plugin;
421  }
422 
423  return result;
424 }
425 
426 Marble::AbstractFloatItem* MarbleWidget::floatItem( const QString & name )
427 {
428  foreach( Marble::AbstractFloatItem * plugin, m_marbleWidget->floatItems() )
429  {
430  if( plugin->nameId() == name ) {
431  return plugin ;
432  }
433  }
434  return 0;
435 }
436 
437 bool MarbleWidget::containsFloatItem( const QString & name )
438 {
439  foreach( Marble::AbstractFloatItem * plugin, m_marbleWidget->floatItems() )
440  {
441  if( plugin->nameId() == name ) {
442  return true;
443  }
444  }
445  return false;
446 }
447 
448 #include "MarbleDeclarativeWidget.moc"
Marble::GeoDataCoordinates::Unit
Unit
enum used constructor to specify the units used
Definition: GeoDataCoordinates.h:64
Marble::MarbleWidget::tileZoomLevel
int tileZoomLevel() const
Definition: MarbleWidget.cpp:345
Marble::MapThemeManager::mapThemeModel
QStandardItemModel * mapThemeModel()
Provides a model of the locally existing themes.
Definition: MapThemeManager.cpp:319
MarbleWidget::radius
int radius() const
GeoDataCoordinates.h
Marble::RenderPlugin::enabled
bool enabled
Definition: RenderPlugin.h:51
QEvent
QStandardItemModel
Marble::GeoDataCoordinates
A 3d point representation.
Definition: GeoDataCoordinates.h:52
QGraphicsItem::x
qreal x() const
QGraphicsItem::y
qreal y() const
RoutingModel.h
Marble::AbstractFloatItem::visible
bool visible() const
Check visibility of the float item.
Definition: AbstractFloatItem.cpp:137
QEvent::type
Type type() const
ZoomButtonInterceptor
Definition: ZoomButtonInterceptor.h:20
MarbleWidget::zoomOut
void zoomOut()
Zoom out by a fixed amount.
Definition: MarbleDeclarativeWidget.cpp:219
MarbleWidget::mapThemeId
QString mapThemeId() const
Returns the currently active map theme id, if any, in the form of e.g.
MarbleWidget::setDataPluginDelegate
void setDataPluginDelegate(const QString &plugin, QDeclarativeComponent *delegate)
Definition: MarbleDeclarativeWidget.cpp:344
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
MarbleWidget::downloadRoute
void downloadRoute(qreal offset, int topTileLevel, int bottomTileLevel)
Definition: MarbleDeclarativeWidget.cpp:319
Marble::MarbleWidget::projection
int projection
Definition: MarbleWidget.h:114
MarbleMath.h
MarbleWidget::setActiveRenderPlugins
void setActiveRenderPlugins(const QStringList &items)
Definition: MarbleDeclarativeWidget.cpp:159
MarbleWidget::dataLayers
QDeclarativeListProperty< DeclarativeDataPlugin > dataLayers()
Marble::MarbleWidget::setPropertyValue
void setPropertyValue(const QString &name, bool value)
Sets the value of a map theme property.
Definition: MarbleWidget.cpp:787
MarbleDeclarativeWidget.h
Marble::DownloadRegion::setMarbleModel
void setMarbleModel(MarbleModel *model)
Definition: DownloadRegion.cpp:81
MarbleWidget::workOfflineChanged
void workOfflineChanged()
QQmlComponent
QDeclarativeComponent QQmlComponent
Definition: MarbleDeclarativeWidget.cpp:41
MarbleModel.h
This file contains the headers for MarbleModel.
MarbleWidget::viewport
const Marble::ViewportParams * viewport() const
Definition: MarbleDeclarativeWidget.cpp:91
Marble::MarbleWidget::radius
int radius() const
Return the radius of the globe in pixels.
Definition: MarbleWidget.cpp:325
QGraphicsItem::setAcceptTouchEvents
void setAcceptTouchEvents(bool enabled)
AbstractFloatItem.h
Marble::MarbleWidget::whichFeatureAt
QVector< const GeoDataPlacemark * > whichFeatureAt(const QPoint &) const
Definition: MarbleWidget.cpp:360
QGraphicsObject::enabled
enabled
QStringList::contains
bool contains(const QString &str, Qt::CaseSensitivity cs) const
Coordinate::longitude
qreal longitude
Definition: Coordinate.h:32
DeclarativeDataPlugin.h
QGraphicsProxyWidget
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
MarbleWidget::pixel
QPoint pixel(qreal longitude, qreal latitude) const
Returns the screen position of the given coordinate (can be out of the screen borders) ...
Definition: MarbleDeclarativeWidget.cpp:224
MarbleWidget::mapThemeModel
QStandardItemModel * mapThemeModel()
MarbleWidget::workOffline
bool workOffline() const
QGraphicsItem
Marble::AbstractDataPlugin
An abstract class for plugins that show data that has a geo coordinate.
Definition: AbstractDataPlugin.h:45
Marble::RoutingModel::route
const Route & route() const
Definition: RoutingModel.cpp:434
QPoint
MarbleWidget::centerOn
void centerOn(const Marble::GeoDataLatLonBox &bbox)
Definition: MarbleDeclarativeWidget.cpp:262
MarbleWidget::activeFloatItems
QStringList activeFloatItems() const
Returns a list of active (!) float items.
QGraphicsObject::grabGesture
void grabGesture(Qt::GestureType gesture, QFlags< Qt::GestureFlag > flags)
Marble::MarbleModel::pluginManager
const PluginManager * pluginManager() const
Definition: MarbleModel.cpp:634
Marble::MarbleWidget::setInputEnabled
void setInputEnabled(bool)
Definition: MarbleWidget.cpp:1086
MarbleWidget::setProjection
void setProjection(const QString &projection)
Change the active projection.
Definition: MarbleDeclarativeWidget.cpp:203
MarbleWidget::projection
QString projection() const
Returns the active projection which can be either "Equirectangular", "Mercator" or "Spherical"...
Marble::GeoDataCoordinates::Degree
Definition: GeoDataCoordinates.h:66
Marble::MarbleWidget::readPluginSettings
void readPluginSettings(QSettings &settings)
Reads the plugin settings from the passed QSettings.
Definition: MarbleWidget.cpp:1112
Placemark::setGeoDataPlacemark
void setGeoDataPlacemark(const Marble::GeoDataPlacemark &placemark)
Definition: Placemark.cpp:19
BookmarkManager.h
MarbleWidget::inputEnabled
bool inputEnabled() const
Returns true if the map accepts keyboard/mouse input.
Coordinate
Represents a coordinate with the properties of a name and coordinates.
Definition: Coordinate.h:28
Marble::RoutingManager::routingModel
RoutingModel * routingModel()
Provides access to the routing model which contains a list of routing instructions describing steps t...
Definition: RoutingManager.cpp:261
MarbleWidget::~MarbleWidget
~MarbleWidget()
Definition: MarbleDeclarativeWidget.cpp:79
MarbleWidgetInputHandler.h
Marble::MarbleWidget::setMapThemeId
void setMapThemeId(const QString &maptheme)
Set a new map theme.
Definition: MarbleWidget.cpp:759
ViewParams.h
This file contains the headers for ViewParameters.
Marble::Equirectangular
Flat projection ("plate carree")
Definition: MarbleGlobal.h:46
MarbleWidget::renderPlugin
Marble::RenderPlugin * renderPlugin(const QString &name)
Definition: MarbleDeclarativeWidget.cpp:394
QObject::name
const char * name() const
MarbleWidget::setGeoSceneProperty
void setGeoSceneProperty(const QString &key, bool value)
Definition: MarbleDeclarativeWidget.cpp:314
DeclarativeDataPlugin::delegate
QDeclarativeComponent delegate
Definition: DeclarativeDataPlugin.h:41
MarbleMap.h
This file contains the headers for MarbleMap.
RoutingManager.h
Marble::MarbleWidget::downloadRegion
void downloadRegion(QVector< TileCoordsPyramid > const &)
Definition: MarbleWidget.cpp:1176
Coordinate::latitude
qreal latitude
Definition: Coordinate.h:33
Marble::MarbleWidget::centerLongitude
qreal centerLongitude() const
Return the longitude of the center point.
Definition: MarbleWidget.cpp:680
MarbleWidget::floatItem
Marble::AbstractFloatItem * floatItem(const QString &name)
Definition: MarbleDeclarativeWidget.cpp:426
MarbleWidget::visibleLatLonAltBoxChanged
void visibleLatLonAltBoxChanged()
Forwarded from MarbleWidget.
Marble::MarbleModel::setWorkOffline
void setWorkOffline(bool workOffline)
Definition: MarbleModel.cpp:843
Marble::MarbleModel::routingManager
RoutingManager * routingManager()
Definition: MarbleModel.cpp:675
Marble::Mercator
Mercator projection.
Definition: MarbleGlobal.h:47
MarbleWidget::mouseClickGeoPosition
void mouseClickGeoPosition(qreal longitude, qreal latitude)
Marble::DownloadRegion::region
QVector< TileCoordsPyramid > region(const TextureLayer *textureLayer, const GeoDataLatLonAltBox &region) const
Definition: DownloadRegion.cpp:100
Marble::AbstractFloatItem
The abstract class for float item plugins.
Definition: AbstractFloatItem.h:45
Marble::MarbleWidget::model
MarbleModel * model()
Return the model that this view shows.
Definition: MarbleWidget.cpp:289
Marble::RoutingManager::profilesModel
RoutingProfilesModel * profilesModel()
Provides access to the model which contains all possible routing profiles.
Definition: RoutingManager.cpp:256
MarbleDirs.h
Marble::radius
static qreal radius(qreal zoom)
Definition: thumbnailer.cpp:99
QGraphicsWidget::sceneEvent
virtual bool sceneEvent(QEvent *event)
MarbleWidget::radiusChanged
void radiusChanged()
Marble::DownloadRegion::fromPath
QVector< TileCoordsPyramid > fromPath(const TextureLayer *textureLayer, qreal offset, const GeoDataLineString &path) const
calculates the region to be downloaded around a path
Definition: DownloadRegion.cpp:176
QCoreApplication::sendEvent
bool sendEvent(QObject *receiver, QEvent *event)
Marble::MarbleWidget::zoomOut
void zoomOut(FlyToMode mode=Automatic)
Zoom out by the amount zoomStep.
Definition: MarbleWidget.cpp:538
MarbleWidget::coordinate
Coordinate * coordinate(int x, int y)
Returns the coordinate at the given screen position.
Definition: MarbleDeclarativeWidget.cpp:234
MarbleWidget::containsRenderPlugin
bool containsRenderPlugin(const QString &name)
Definition: MarbleDeclarativeWidget.cpp:405
DeclarativeDataPlugin
Definition: DeclarativeDataPlugin.h:25
Marble::ViewportParams::screenCoordinates
bool screenCoordinates(const qreal lon, const qreal lat, qreal &x, qreal &y) const
Get the screen coordinates corresponding to geographical coordinates in the map.
Definition: ViewportParams.cpp:357
Marble::RenderPlugin::setVisible
void setVisible(bool visible)
settting visible
Definition: RenderPlugin.cpp:151
QString
QList< QObject * >
MarbleWidget::zoomIn
void zoomIn()
Zoom in by a fixed amount.
Definition: MarbleDeclarativeWidget.cpp:214
Marble::RoutingManager::readSettings
void readSettings()
Restores a previously saved route request and route from disk, if any.
Definition: RoutingManager.cpp:374
Marble::GeoDataLineString
A LineString that allows to store a contiguous set of line segments.
Definition: GeoDataLineString.h:75
QStringList
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
MarbleWidget::event
virtual bool event(QEvent *event)
Definition: MarbleDeclarativeWidget.cpp:375
Marble::MarbleWidget::viewport
ViewportParams * viewport()
Definition: MarbleWidget.cpp:299
Marble::AbstractDataPlugin::setDelegate
void setDelegate(QDeclarativeComponent *delegate, QGraphicsItem *parent)
Definition: AbstractDataPlugin.cpp:180
Marble::RoutingProfilesModel::loadDefaultProfiles
void loadDefaultProfiles()
Definition: RoutingProfilesModel.cpp:126
QDeclarativeComponent
Marble::MarbleWidget::textureLayer
TextureLayer * textureLayer() const
Definition: MarbleWidget.cpp:380
ZoomButtonInterceptor.h
Marble::RenderPlugin::nameId
QString nameId
Definition: RenderPlugin.h:48
Marble::MarbleWidget::zoomIn
void zoomIn(FlyToMode mode=Automatic)
Zoom in by the amount zoomStep.
Definition: MarbleWidget.cpp:533
QObject::blockSignals
bool blockSignals(bool block)
QSettings
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
MarbleWidget::setRadius
void setRadius(int radius)
Definition: MarbleDeclarativeWidget.cpp:370
DeclarativeDataPlugin::nameId
QString nameId
Definition: DeclarativeDataPlugin.h:32
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.
MarbleWidget::projectionChanged
void projectionChanged()
MarbleWidget::childList
QDeclarativeListProperty< QObject > childList()
Definition: MarbleDeclarativeWidget.cpp:137
MarbleWidget::placemarkSelected
void placemarkSelected(Placemark *placemark)
MarbleWidget::setInputEnabled
void setInputEnabled(bool enabled)
Toggle keyboard/mouse input.
Definition: MarbleDeclarativeWidget.cpp:172
MarbleWidget::sceneEvent
virtual bool sceneEvent(QEvent *event)
Definition: MarbleDeclarativeWidget.cpp:384
MarbleWidget::setCenter
void setCenter(Coordinate *center)
Definition: MarbleDeclarativeWidget.cpp:250
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:97
Marble::RenderPlugin::visible
bool visible
Definition: RenderPlugin.h:52
Marble::RenderPlugin::setEnabled
void setEnabled(bool enabled)
settting enabled
Definition: RenderPlugin.cpp:139
QVector< const Marble::GeoDataPlacemark * >
QVector::isEmpty
bool isEmpty() const
Marble::DownloadRegion::setTileLevelRange
void setTileLevelRange(int const minimumTileLevel, int const maximumTileLevel)
Definition: DownloadRegion.cpp:91
Marble::DownloadRegion
Definition: DownloadRegion.h:29
Coordinate::setLatitude
void setLatitude(qreal lat)
Change the latitude of the coordinate.
Definition: Coordinate.cpp:43
MarbleWidget::center
Coordinate * center()
RenderPlugin.h
PluginManager.h
Marble::MarbleWidget::geoCoordinates
bool geoCoordinates(int x, int y, qreal &lon, qreal &lat, GeoDataCoordinates::Unit=GeoDataCoordinates::Degree) const
Get the earth coordinates corresponding to a pixel in the widget.
Definition: MarbleWidget.cpp:668
Coordinate.h
MarbleWidget::MarbleWidget
MarbleWidget(QGraphicsItem *parent=0, Qt::WindowFlags flags=0)
Constructor.
Definition: MarbleDeclarativeWidget.cpp:44
MarbleWidget::downloadArea
void downloadArea(int topTileLevel, int bottomTileLevel)
Definition: MarbleDeclarativeWidget.cpp:332
Marble::PluginManager::addRenderPlugin
void addRenderPlugin(const RenderPlugin *plugin)
Add a RenderPlugin manually to the list of known plugins.
Definition: PluginManager.cpp:77
Marble::MarbleModel::bookmarkManager
BookmarkManager * bookmarkManager()
return instance of BookmarkManager
Definition: MarbleModel.cpp:213
Marble::DownloadRegion::setVisibleTileLevel
void setVisibleTileLevel(int const tileLevel)
Definition: DownloadRegion.cpp:171
Coordinate::setAltitude
void setAltitude(qreal alt)
Change the altitude of the coordinate.
Definition: Coordinate.cpp:54
Marble::RoutingManager::writeSettings
void writeSettings() const
Saves the current route request and the current route to disk.
Definition: RoutingManager.cpp:327
Marble::Projection
Projection
This enum is used to choose the projection shown in the view.
Definition: MarbleGlobal.h:44
MarbleWidget::setMapThemeId
void setMapThemeId(const QString &mapThemeId)
Change the currently active map theme id.
Definition: MarbleDeclarativeWidget.cpp:183
Marble::MarbleWidget::mapThemeId
QString mapThemeId
Definition: MarbleWidget.h:113
MarbleWidget.h
This file contains the headers for MarbleWidget.
MarbleWidget::floatItems
QList< QObject * > floatItems() const
Coordinate::altitude
qreal altitude
Definition: Coordinate.h:34
Qt::WindowFlags
typedef WindowFlags
Placemark
Wraps a GeoDataPlacemark for QML access.
Definition: Placemark.qml:11
QGraphicsProxyWidget::setWidget
void setWidget(QWidget *widget)
Coordinate::setLongitude
void setLongitude(qreal lon)
Change the longitude of the coordinate.
Definition: Coordinate.cpp:32
MarbleWidget
Wraps a Marble::MarbleWidget, providing access to important properties and methods.
Definition: MarbleDeclarativeWidget.h:50
Marble::Route::path
const GeoDataLineString & path() const
Definition: Route.cpp:66
Marble::MarbleWidget::writePluginSettings
void writePluginSettings(QSettings &settings) const
Writes the plugin settings in the passed QSettings.
Definition: MarbleWidget.cpp:1129
MarbleWidget::setWorkOffline
void setWorkOffline(bool workOffline)
Definition: MarbleDeclarativeWidget.cpp:360
Marble::MarbleInputHandler::setMouseButtonPopupEnabled
void setMouseButtonPopupEnabled(Qt::MouseButton mouseButton, bool enabled)
The MarbleInputHandler handles mouse and keyboard input.
Definition: MarbleInputHandler.cpp:89
Marble::MarbleModel::workOffline
bool workOffline
Definition: MarbleModel.h:104
MarbleWidget::model
Marble::MarbleModel * model()
Definition: MarbleDeclarativeWidget.cpp:86
DownloadRegion.h
AbstractDataPlugin.h
Marble::Spherical
Spherical projection.
Definition: MarbleGlobal.h:45
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
MarbleWidget::mapThemeChanged
void mapThemeChanged()
QString::compare
int compare(const QString &other) const
QDeclarativeListProperty
Marble::MarbleWidget::floatItems
QList< AbstractFloatItem * > floatItems() const
Returns a list of all FloatItems on the widget.
Definition: MarbleWidget.cpp:1146
Marble::RenderPlugin
The abstract class that creates a renderable item.
Definition: RenderPlugin.h:43
Marble::MarbleWidget::renderPlugins
QList< RenderPlugin * > renderPlugins() const
Returns a list of all RenderPlugins on the widget, this includes float items.
Definition: MarbleWidget.cpp:1107
MarbleWidget::activeRenderPlugins
QStringList activeRenderPlugins() const
RoutingProfilesModel.h
MarbleWidget::renderPlugins
QList< QObject * > renderPlugins() const
MapThemeManager.h
MarbleWidget::setActiveFloatItems
void setActiveFloatItems(const QStringList &items)
Activates all of the given float items and deactivates any others.
Definition: MarbleDeclarativeWidget.cpp:117
Marble::MarbleInputHandler::setPanViaArrowsEnabled
void setPanViaArrowsEnabled(bool enabled)
Definition: MarbleInputHandler.cpp:106
Marble::GeoDataLatLonBox
A class that defines a 2D bounding box for geographic data.
Definition: GeoDataLatLonBox.h:51
QGraphicsProxyWidget::event
virtual bool event(QEvent *event)
MarbleWidget::containsFloatItem
bool containsFloatItem(const QString &name)
Definition: MarbleDeclarativeWidget.cpp:437
Marble::MarbleWidget::centerLatitude
qreal centerLatitude() const
Return the latitude of the center point.
Definition: MarbleWidget.cpp:675
Marble::AbstractFloatItem::setVisible
void setVisible(bool visible)
Set visibility of the float item.
Definition: AbstractFloatItem.cpp:130
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