Ignore:
Timestamp:
2017-03-25T17:33:06+01:00 (7 years ago)
Author:
Don-vip
Message:

fix #13922 - zoom only once when downloading several data types

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java

    r11735 r11774  
    1919import org.openstreetmap.josm.data.DataSource;
    2020import org.openstreetmap.josm.data.ProjectionBounds;
     21import org.openstreetmap.josm.data.ViewportData;
    2122import org.openstreetmap.josm.data.coor.LatLon;
    2223import org.openstreetmap.josm.data.osm.DataSet;
     
    175176    }
    176177
     178    @Override
     179    public ProjectionBounds getDownloadProjectionBounds() {
     180        return downloadTask != null ? downloadTask.computeBbox(currentBounds) : null;
     181    }
     182
    177183    /**
    178184     * Superclass of internal download task.
     
    253259        }
    254260
    255         protected void computeBboxAndCenterScale(Bounds bounds) {
    256             ProjectionBounds pb = computeBbox(bounds);
    257             BoundingXYVisitor v = new BoundingXYVisitor();
    258             v.visit(pb);
    259             Main.map.mapView.zoomTo(v);
    260         }
    261 
    262261        protected OsmDataLayer addNewLayerIfRequired(String newLayerName) {
    263262            int numDataLayers = getNumDataLayers();
     
    268267                final OsmDataLayer layer = createNewLayer(newLayerName);
    269268                if (Main.main != null)
    270                     Main.getLayerManager().addLayer(layer);
     269                    Main.getLayerManager().addLayer(layer, zoomAfterDownload);
    271270                return layer;
    272271            }
     
    280279                Collection<OsmPrimitive> primitivesToUpdate = searchPrimitivesToUpdate(bounds, layer.data);
    281280                layer.mergeFrom(dataSet);
    282                 if (zoomAfterDownload) {
    283                     computeBboxAndCenterScale(bounds);
     281                if (Main.map != null && zoomAfterDownload) {
     282                    Main.map.mapView.zoomTo(new ViewportData(computeBbox(bounds)));
    284283                }
    285284                if (!primitivesToUpdate.isEmpty()) {
Note: See TracChangeset for help on using the changeset viewer.