Fix duplicate paste position
This commit is contained in:
parent
7bb0363e8b
commit
e1a4816e10
@ -851,10 +851,18 @@ public class RocketActions {
|
|||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
List<RocketComponent> components = selectionModel.getSelectedComponents();
|
List<RocketComponent> components = selectionModel.getSelectedComponents();
|
||||||
|
List<RocketComponent> topComponents = new LinkedList<>(); // Components without a parent component in <components>
|
||||||
if (components != null) {
|
if (components != null) {
|
||||||
components.sort(Comparator.comparing(c -> c.getParent() != null ? c.getParent().getChildPosition(c) : 0));
|
components.sort(Comparator.comparing(c -> c.getParent() != null ? c.getParent().getChildPosition(c) : 0));
|
||||||
components = new ArrayList<>(components);
|
components = new ArrayList<>(components);
|
||||||
fillInMissingSelections(components);
|
fillInMissingSelections(components);
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (RocketComponent c: components) {
|
||||||
|
if (!RocketComponent.listContainsParent(components, c)) {
|
||||||
|
topComponents.add(c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Simulation[] sims = selectionModel.getSelectedSimulations();
|
Simulation[] sims = selectionModel.getSelectedSimulations();
|
||||||
|
|
||||||
@ -877,7 +885,8 @@ public class RocketActions {
|
|||||||
if (RocketComponent.listContainsParent(duplicateComponents, component)) {
|
if (RocketComponent.listContainsParent(duplicateComponents, component)) {
|
||||||
pos = getPastePosition(component, component.getParent());
|
pos = getPastePosition(component, component.getParent());
|
||||||
} else {
|
} else {
|
||||||
RocketComponent pasteParent = components.get(duplicateComponents.indexOf(component)).getParent();
|
int compIdx = duplicateComponents.indexOf(component);
|
||||||
|
RocketComponent pasteParent = topComponents.get(compIdx).getParent();
|
||||||
pos = getPastePosition(component, pasteParent);
|
pos = getPastePosition(component, pasteParent);
|
||||||
}
|
}
|
||||||
positions.add(pos);
|
positions.add(pos);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user