Ignore:
Timestamp:
2007-12-01T13:58:58+01:00 (16 years ago)
Author:
gebner
Message:

Speed up merging.

  • Don't scan our dataset for every primitive we merge. Use hashtables for that (at least for identical primitives for now).
  • Reverse the order we merge the layers when pressing the merge button in the layers list, so that when you merge 25 layers by pressing the merge button 25 times, you merge a small layer into a bigger one, and not the other way round.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java

    r464 r478  
    251251                buttonPanel.add(deleteButton);
    252252
    253                 mergeButton.setToolTipText(tr("Merge the selected layer into the layer directly below."));
     253                mergeButton.setToolTipText(tr("Merge the layer directly below into the selected layer."));
    254254                mergeButton.addActionListener(new ActionListener(){
    255255                        public void actionPerformed(ActionEvent e) {
    256                                 Layer lFrom = (Layer)instance.getSelectedValue();
    257                                 Layer lTo = (Layer)model.get(instance.getSelectedIndex()+1);
     256                                Layer lTo = (Layer)instance.getSelectedValue();
     257                                Layer lFrom = (Layer)model.get(instance.getSelectedIndex()+1);
    258258                                lTo.mergeFrom(lFrom);
    259                                 instance.setSelectedValue(lTo, true);
    260259                                mapView.removeLayer(lFrom);
     260                                updateButtonEnabled();
     261                                mapView.repaint();
    261262                        }
    262263                });
     
    277278                boolean enable = model.getSize() > 1;
    278279                enable = enable && sel < model.getSize()-1;
    279                 enable = enable && l.isMergable((Layer)model.get(sel+1));
     280                enable = enable && ((Layer)model.get(sel+1)).isMergable(l);
    280281                mergeButton.setEnabled(enable);
    281282                upButton.setEnabled(sel > 0);
Note: See TracChangeset for help on using the changeset viewer.