Ticket #22879: josmrelcut.diff

File josmrelcut.diff, 3.9 KB (added by anonymous, 11 months ago)

patch

  • src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java b/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
    index 45d3b58137..474360fab4 100644
    a b public class GenericRelationEditor extends RelationEditor implements CommandQueu  
    308308        key = Shortcut.getCopyKeyStroke();
    309309        if (key != null) {
    310310            // handle uncommon situation, that user has no keystroke assigned to copy
    311             registerCopyPasteAction(new CopyMembersAction(actionAccess),
     311            registerCopyPasteAction(new CopyMembersAction(actionAccess, true),
    312312                    "COPY_MEMBERS", key, getRootPane(), memberTable, selectionTable);
    313313        }
     314        key = Shortcut.getCutKeyStroke();
     315        if (key != null) {
     316                        // handle uncommon situation, that user has no keystroke assigned to cut
     317                        registerCopyPasteAction(new CopyMembersAction(actionAccess, false),
     318                                        "CUT_MEMBERS", key, getRootPane(), memberTable, selectionTable);
     319                }
    314320        tagEditorPanel.setNextFocusComponent(memberTable);
    315321        selectionTable.setFocusable(false);
    316322        memberTableModel.setSelectedMembers(selectedMembers);
  • src/org/openstreetmap/josm/gui/dialogs/relation/actions/CopyMembersAction.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CopyMembersAction.java b/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CopyMembersAction.java
    index bdbce29b48..791c4ba7b9 100644
    a b import org.openstreetmap.josm.gui.datatransfer.RelationMemberTransferable;  
    1414 */
    1515public class CopyMembersAction extends AddFromSelectionAction {
    1616    private static final long serialVersionUID = 1L;
     17    private boolean keepCopiedMembers = true;
    1718
    1819    /**
    1920     * Constructs a new {@code CopyMembersAction}.
    2021     * @param editorAccess An interface to access the relation editor contents.
     22     * @param keepCopiedMembers if true, copied members are kept in the table; otherwise they are removed (cut)
    2123     */
    22     public CopyMembersAction(IRelationEditorActionAccess editorAccess) {
     24    public CopyMembersAction(IRelationEditorActionAccess editorAccess, boolean keepCopiedMembers) {
    2325        super(editorAccess);
     26        this.keepCopiedMembers = keepCopiedMembers;
    2427    }
    2528
    2629    @Override
    public class CopyMembersAction extends AddFromSelectionAction {  
    2932
    3033        if (!members.isEmpty()) {
    3134            ClipboardUtils.copy(new RelationMemberTransferable(members));
     35            if (!this.keepCopiedMembers) {
     36                getMemberTableModel().remove(getMemberTableModel().getSelectedIndices());
     37            }
    3238        }
    3339    }
    3440
  • test/unit/org/openstreetmap/josm/gui/dialogs/relation/actions/RelationEditorActionsTest.java

    diff --git a/test/unit/org/openstreetmap/josm/gui/dialogs/relation/actions/RelationEditorActionsTest.java b/test/unit/org/openstreetmap/josm/gui/dialogs/relation/actions/RelationEditorActionsTest.java
    index ae6a7e687a..c915bee9cb 100644
    a b class RelationEditorActionsTest extends AbstractRelationEditorActionTest {  
    4848        new OKAction(relationEditorAccess).actionPerformed(null);
    4949        new CancelAction(relationEditorAccess).actionPerformed(null);
    5050
    51         new CopyMembersAction(relationEditorAccess).actionPerformed(null);
     51        new CopyMembersAction(relationEditorAccess, true).actionPerformed(null);
     52        new CopyMembersAction(relationEditorAccess, false).actionPerformed(null);
    5253        new PasteMembersAction(relationEditorAccess).actionPerformed(null);
    5354
    5455        new SelectAction(relationEditorAccess).actionPerformed(null);