Ticket #2607: split.diff

File split.diff, 1.8 KB (added by Teemu Koskinen <teemu.koskinen@…>, 17 years ago)
  • src/org/openstreetmap/josm/actions/SplitWayAction.java

     
    266266        // now copy all relations to new way also
    267267        for (Relation r : Main.ds.relations) {
    268268            if (r.deleted || r.incomplete) continue;
     269            Relation c = null;
     270            int i = 0;
     271
    269272            for (RelationMember rm : r.members) {
    270273                if (rm.member instanceof Way) {
    271274                    if (rm.member == selectedWay)
    272275                    {
    273                         Relation c = new Relation(r);
     276                        if (c == null)
     277                            c = new Relation(r);
     278
    274279                        for(Way wayToAdd : newWays)
    275280                        {
    276281                            RelationMember em = new RelationMember();
     
    278283                            em.role = rm.role;
    279284                            if(em.role.length() > 0)
    280285                                warnme = true;
    281                             c.members.add(em);
     286
     287                            i++;
     288                            c.members.add(i, em);
    282289                        }
    283                         commandList.add(new ChangeCommand(r, c));
    284                         break;
    285290                    }
    286291                }
     292                i++;
    287293            }
     294
     295            if (c != null)
     296                commandList.add(new ChangeCommand(r, c));
    288297        }
    289298        if(warnme)
    290299            JOptionPane.showMessageDialog(Main.parent, tr("A role based relation membership was copied to all new ways.\nYou should verify this and correct it when necessary."));