Skip to content

Commit 86410ba

Browse files
author
stoecker
committed
fix #22879 - Cut keyboard shortcuts doesn't work after reverting order of relation members
git-svn-id: https://josm.openstreetmap.de/svn/trunk@19397 0c6e7542-c601-0410-84e7-c038aed88b3b
1 parent 16835bc commit 86410ba

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

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

+7-1
Original file line numberDiff line numberDiff line change
@@ -308,9 +308,15 @@ public void actionPerformed(ActionEvent e) {
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

+7-1
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@
1414
*/
1515
public 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
@@ -29,6 +32,9 @@ public void actionPerformed(ActionEvent e) {
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

+2-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ void testNoDialogActions() {
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);

0 commit comments

Comments
 (0)