Ticket #6875: patch2.diff
File patch2.diff, 3.0 KB (added by , 11 years ago) |
---|
-
gui/MapFrame.java
285 285 } 286 286 return button; 287 287 } 288 288 289 289 public void validateToolBarToggle() { 290 290 toolBarToggle.removeAll(); 291 291 for (ToggleDialog dlg : allDialogs) { … … 317 317 318 318 /** 319 319 * Change the operating map mode for the view. Will call unregister on the 320 * old MapMode and register on the new one. 320 * old MapMode and register on the new one. Now this function also verifies 321 * if new map mode is correct mode for current layer and does not change mode 322 * in such cases. 321 323 * @param mapMode The new mode to set. 322 324 */ 323 325 public void selectMapMode(MapMode newMapMode) { 326 selectMapMode(newMapMode, mapView.getActiveLayer()); 327 } 328 329 /** 330 * Another version of the selectMapMode for changing layer action. 331 * Pass newly selected layer to this method. 332 * @param newMapMode 333 * @param newLayer 334 */ 335 public void selectMapMode(MapMode newMapMode, Layer newLayer) { 336 if (newMapMode == null || !newMapMode.layerIsSupported(newLayer)) 337 return; 338 324 339 MapMode oldMapMode = this.mapMode; 325 340 if (newMapMode == oldMapMode) 326 341 return; … … 329 344 } 330 345 this.mapMode = newMapMode; 331 346 newMapMode.enterMode(); 332 lastMapMode.put( mapView.getActiveLayer(), newMapMode);347 lastMapMode.put(newLayer, newMapMode); 333 348 fireMapModeChanged(oldMapMode, newMapMode); 334 349 } 335 350 … … 471 486 MapMode newMapMode = lastMapMode.get(newLayer); 472 487 modeChanged = newMapMode != mapMode; 473 488 if (newMapMode != null) { 474 selectMapMode(newMapMode); 475 } // it would be nice to select first supported mode when layer is first selected, but it don't work well with for example editgpx layer 489 selectMapMode(newMapMode, newLayer); // it would be nice to select first supported mode when layer is first selected, but it don't work well with for example editgpx layer 490 } else { 491 mapMode.exitMode(); // if new mode is null - simply exit from previous mode 492 } 476 493 } 477 494 if (!modeChanged && mapMode != null) { 478 495 // Let mapmodes know about new active layer -
Main.java
266 266 if (map == null) { 267 267 final MapFrame mapFrame = new MapFrame(contentPanePrivate); 268 268 setMapFrame(mapFrame); 269 mapFrame.selectMapMode((MapMode)mapFrame.getDefaultButtonAction() );269 mapFrame.selectMapMode((MapMode)mapFrame.getDefaultButtonAction(), layer); 270 270 mapFrame.setVisible(true); 271 271 mapFrame.initializeDialogsPane(); 272 272 // bootstrapping problem: make sure the layer list dialog is going to