[Marble-commits] KDE/kdeedu/marble

Bernhard Beschow bbeschow at cs.tu-berlin.de
Thu Aug 19 23:22:33 CEST 2010


SVN commit 1165655 by beschow:

introduce MarbleWidget::viewport()

Having a convenient access to the viewport makes sense since it represents the perspective of the observer.
Realizing that MarbleMap and MarbleWidget visualize data that is present in MarbleModel, MarbleMap can be seen as an implementation detail of MarbleWidget.
That way, hiding the implementation makes sense, too.

discussed with tackat

 M  +4 -0      docs/release_notes/APIChanges-0.11.txt  
 M  +11 -0     src/lib/MarbleWidget.cpp  
 M  +4 -0      src/lib/MarbleWidget.h  
 M  +5 -6      src/lib/MarbleWidgetInputHandler.cpp  
 M  +1 -3      src/lib/graphicsview/ScreenGraphicsItem.cpp  
 M  +1 -3      src/lib/routing/AdjustNavigation.cpp  
 M  +1 -2      src/marble_part.cpp  
 M  +1 -1      src/plugins/render/navigation/NavigationFloatItem.cpp  
 M  +1 -2      src/plugins/render/routing/RoutingPlugin.cpp  


--- trunk/KDE/kdeedu/marble/docs/release_notes/APIChanges-0.11.txt #1165654:1165655
@@ -9,3 +9,7 @@
   Access to the current AbstractProjection is still possible using MarbleMap::viewport()->currentProjection().
   MarbleMap::viewParams()->propertyAvailable() can now be reached under MarbleMap::model()->mapTheme()->settings()->propertyAvailable().
   The canvas and coast images are not accessible any longer by inention. Use MarbleMap::mapScreenShot() to access the resulting map, or implement a plugin to draw onto the map.
+
+* Introduce MarbleWidget::viewport().
+  Use MarbleWidget::viewport() rather than MarbleWidget::map()->viewport().
+  Use MarbleWidget::viewport()->mapCoversViewport() rahter than MarbleWidget::map()->mapCoversViewport().
--- trunk/KDE/kdeedu/marble/src/lib/MarbleWidget.cpp #1165654:1165655
@@ -287,6 +287,17 @@
 }
 
 
+ViewportParams* MarbleWidget::viewport()
+{
+    return d->m_map->viewport();
+}
+
+const ViewportParams* MarbleWidget::viewport() const
+{
+    return d->m_map->viewport();
+}
+
+
 void MarbleWidget::setInputHandler( MarbleWidgetInputHandler *handler )
 {
     delete d->m_inputhandler;
--- trunk/KDE/kdeedu/marble/src/lib/MarbleWidget.h #1165654:1165655
@@ -52,6 +52,7 @@
 class SunLocator;
 class TileCreator;
 class GeoDataPlacemark;
+class ViewportParams;
 
 /**
  * @short A widget class that displays a view of the earth.
@@ -178,6 +179,9 @@
      */
     MarbleModel *model() const;
 
+    ViewportParams *viewport();
+    const ViewportParams *viewport() const;
+
     /**
      * Returns the current input handler
      */
--- trunk/KDE/kdeedu/marble/src/lib/MarbleWidgetInputHandler.cpp #1165654:1165655
@@ -235,7 +235,7 @@
         return;
     }
 
-    ViewportParams* now = marbleWidget->map()->viewport();
+    ViewportParams* now = marbleWidget->viewport();
 
     qreal x(0), y(0);
     if (!now->currentProjection()->screenCoordinates(destLon, destLat, now, x, y)) {
@@ -267,8 +267,7 @@
     lookAt.setAltitude( 0.0 );
     lookAt.setRange( newDistance * KM2METER );
     
-    marbleWidget->map()->viewport()->setFocusPoint( GeoDataCoordinates( destLon,
-                                                                                      destLat ) );
+    marbleWidget->viewport()->setFocusPoint( GeoDataCoordinates( destLon, destLat ) );
     marbleWidget->flyTo( lookAt, Linear );
 }
 
@@ -333,7 +332,7 @@
         d->m_widget->updateChangedMap();
     }
 
-    d->m_widget->map()->viewport()->resetFocusPoint();
+    d->m_widget->viewport()->resetFocusPoint();
     d->m_wheelZoomTargetDistance = 0.0;
 }
 
@@ -432,7 +431,7 @@
         return true;
     }
 
-    int polarity = MarbleWidgetInputHandler::d->m_widget->map()->viewport()->polarity();
+    int polarity = MarbleWidgetInputHandler::d->m_widget->viewport()->polarity();
 
     if ( e->type() == QEvent::MouseMove
          || e->type() == QEvent::MouseButtonPress
@@ -783,7 +782,7 @@
                              destLon, destLat, GeoDataCoordinates::Radian );
 
                 if (isValid) {
-                    marbleWidget->map()->viewport()->setFocusPoint(GeoDataCoordinates(destLon, destLat));
+                    marbleWidget->viewport()->setFocusPoint(GeoDataCoordinates(destLon, destLat));
                 }
 
                 //convert the scaleFactor to be 0: the same: < 0: smaller, > 0: bigger and make it bigger by multiplying for an arbitrary big value
--- trunk/KDE/kdeedu/marble/src/lib/graphicsview/ScreenGraphicsItem.cpp #1165654:1165655
@@ -14,7 +14,6 @@
 
 // Marble
 #include "MarbleDebug.h"
-#include "MarbleMap.h"
 #include "MarbleWidget.h"
 
 // Qt
@@ -181,8 +180,7 @@
 
                     widget->setAttribute( Qt::WA_NoSystemBackground,  false );
                     widget->repaint(dirtyRegion);
-                    widget->setAttribute( Qt::WA_NoSystemBackground,
-                                          widget->map()->mapCoversViewport() );
+                    widget->setAttribute( Qt::WA_NoSystemBackground, widget->viewport()->mapCoversViewport() );
                     return true;
                 }
             }
--- trunk/KDE/kdeedu/marble/src/lib/routing/AdjustNavigation.cpp #1165654:1165655
@@ -15,10 +15,8 @@
 #include "GeoDataCoordinates.h"
 #include "gps/PositionTracking.h"
 #include "MarbleDebug.h"
-#include "MarbleMap.h"
 #include "MarbleModel.h"
 #include "ViewportParams.h"
-#include "ViewParams.h"
 #include "MarbleMath.h"
 #include "global.h"
 
@@ -156,7 +154,7 @@
         m_widget->centerOn( position, false );
     }
     else {
-        ViewportParams const * const viewparams = m_widget->map()->viewport();
+        ViewportParams const * const viewparams = m_widget->viewport();
 
         qreal width = viewparams->width();
         qreal height = viewparams->height();
--- trunk/KDE/kdeedu/marble/src/marble_part.cpp #1165654:1165655
@@ -68,7 +68,6 @@
 #include "MarbleDirs.h"
 #include "MarbleDebug.h"
 #include "MarbleLocale.h"
-#include "MarbleMap.h"
 #include "MarbleModel.h"
 #include "MarblePluginSettingsWidget.h"
 #include "NewFolderInfoDialog.h"
@@ -1179,7 +1178,7 @@
     m_downloadRegionDialog->setAllowedTileLevelRange( 0, 18 );
     m_downloadRegionDialog->setSelectionMethod( DownloadRegionDialog::VisibleRegionMethod );
     ViewportParams const * const viewport =
-        m_controlView->marbleWidget()->map()->viewport();
+        m_controlView->marbleWidget()->viewport();
     m_downloadRegionDialog->setSpecifiedLatLonAltBox( viewport->viewLatLonAltBox() );
     m_downloadRegionDialog->setVisibleLatLonAltBox( viewport->viewLatLonAltBox() );
     m_downloadRegionDialog->setVisibleTileLevel( model->tileZoomLevel() );
--- trunk/KDE/kdeedu/marble/src/plugins/render/navigation/NavigationFloatItem.cpp #1165654:1165655
@@ -314,7 +314,7 @@
         update();
 
         m_marbleWidget->setAttribute( Qt::WA_NoSystemBackground,
-                                      m_marbleWidget->map()->mapCoversViewport() );
+                                      m_marbleWidget->viewport()->mapCoversViewport() );
     }
 }
 
--- trunk/KDE/kdeedu/marble/src/plugins/render/routing/RoutingPlugin.cpp #1165654:1165655
@@ -17,7 +17,6 @@
 #include "WidgetGraphicsItem.h"
 #include "MarbleGraphicsGridLayout.h"
 #include "MarbleWidget.h"
-#include "MarbleMap.h"
 #include "MarbleModel.h"
 #include "routing/AdjustNavigation.h"
 #include "routing/RoutingManager.h"
@@ -378,7 +377,7 @@
         update();
 
         m_marbleWidget->setAttribute( Qt::WA_NoSystemBackground,
-                                      m_marbleWidget->map()->mapCoversViewport() );
+                                      m_marbleWidget->viewport()->mapCoversViewport() );
     }
 }
 


More information about the Marble-commits mailing list