Changeset 19397 in josm


Ignore:
Timestamp:
2025-05-04T12:21:01+02:00 (3 days ago)
Author:
stoecker
Message:

fix #22879 - Cut keyboard shortcuts doesn't work after reverting order of relation members

Location:
trunk
Files:
3 edited

Legend:

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

    r19279 r19397  
    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);
     313        }
     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);
    313319        }
    314320        tagEditorPanel.setNextFocusComponent(memberTable);
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/CopyMembersAction.java

    r14030 r19397  
    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
     
    3033        if (!members.isEmpty()) {
    3134            ClipboardUtils.copy(new RelationMemberTransferable(members));
     35            if (!this.keepCopiedMembers) {
     36                getMemberTableModel().remove(getMemberTableModel().getSelectedIndices());
     37            }
    3238        }
    3339    }
  • trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/actions/RelationEditorActionsTest.java

    r19014 r19397  
    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
Note: See TracChangeset for help on using the changeset viewer.