[Marble-commits] KDE/kdeedu/marble/src/lib/routing

Dennis Nienhüser earthwings at gentoo.org
Fri Apr 16 21:59:16 CEST 2010


SVN commit 1115543 by nienhueser:

Update the route when points are removed by the user. Fix route summary not being updated correctly on route changes in the map.
CCMAIL: arnd.baecker at web.de

 M  +3 -3      RoutingManager.cpp  
 M  +7 -3      RoutingWidget.cpp  


--- trunk/KDE/kdeedu/marble/src/lib/routing/RoutingManager.cpp #1115542:1115543
@@ -76,9 +76,9 @@
 
 void RoutingManager::updateRoute()
 {
-    if (d->m_route) {
-        emit stateChanged(Downloading, d->m_route);
-        d->m_routingProvider->retrieveDirections(d->m_route);
+    if ( d->m_route && d->m_route->size() > 1 ) {
+        emit stateChanged( Downloading, d->m_route );
+        d->m_routingProvider->retrieveDirections( d->m_route );
     }
 }
 
--- trunk/KDE/kdeedu/marble/src/lib/routing/RoutingWidget.cpp #1115542:1115543
@@ -326,6 +326,7 @@
     int index = d->m_inputWidgets.indexOf(widget);
     if (index >=0 ) {
         d->m_routeSkeleton->remove(index);
+        d->m_routingManager->updateRoute();
         d->m_inputWidgets.removeAll(widget);
         d->m_ui.routingLayout->removeWidget(widget);
         widget->deleteLater();
@@ -337,8 +338,7 @@
 {
     Q_UNUSED(route);
 
-    if (d->m_zoomRouteAfterDownload && state == RoutingManager::Retrieved) {
-        d->m_zoomRouteAfterDownload = false;
+    if ( state == RoutingManager::Retrieved ) {
         // Parts of the route may lie outside the route trip points
         GeoDataLineString bbox;
         for (int i=0; i<d->m_routingManager->routingModel()->rowCount(); ++i) {
@@ -350,13 +350,17 @@
         }
 
         if (bbox.size()>1) {
-          d->m_widget->centerOn(GeoDataLatLonBox::fromLineString(bbox));
           QString label = tr("Estimated travel time: %1 (%2 km)");
           qreal distance = d->m_routingManager->routingModel()->totalDistance();
           QTime time = d->m_routingManager->routingModel()->totalTime();
           QString timeString = time.toString(Qt::DefaultLocaleShortDate);
           d->m_ui.descriptionLabel->setText(label.arg(timeString).arg(distance, 0, 'f', 1));
           d->m_ui.descriptionLabel->setVisible(true);
+
+          if (d->m_zoomRouteAfterDownload) {
+              d->m_zoomRouteAfterDownload = false;
+              d->m_widget->centerOn(GeoDataLatLonBox::fromLineString(bbox));
+          }
         }
     }
 


More information about the Marble-commits mailing list