WIP: Copy / Paste now accounts for position

This commit is contained in:
MatCat 2021-03-13 18:04:04 -08:00
parent 3c55bd3c19
commit 50320ff533
2 changed files with 20 additions and 1 deletions

View File

@ -155,8 +155,16 @@ function KeybindToString(binding) {
function GetCopyObject() {
if (logicEngine?.ActiveContainer?.Selected?.length > 0) {
let copyObject = {};
let copyObject = {Paste: true,LogicParts: Version};
copyObject.Elements = logicEngine.ActiveContainer.Selected;
let copyObjectString = JSON.stringify(copyObject);
copyObject = JSON.parse(copyObjectString);
for (let a = 0; a < copyObject.Elements.length; a++) {
console.log("Adaptering X: " + copyObject.Elements[a].X + " to " + (copyObject.Elements[a].X + logicEngine.Panning.OffsetX));
console.log("Adaptering Y: " + copyObject.Elements[a].Y + " to " + (copyObject.Elements[a].Y + logicEngine.Panning.OffsetY));
copyObject.Elements[a].X = copyObject.Elements[a].X + logicEngine.Panning.OffsetX;
copyObject.Elements[a].Y = copyObject.Elements[a].Y + logicEngine.Panning.OffsetY;
}
return copyObject;
} else {
return false;
@ -373,6 +381,8 @@ function loadActiveContainer(Elements) {
let newElement = new classRef(logicEngine.ActiveContainer,Elements[a],logicEngine,getElementInfo(Elements[a].Name).Args[0]);
logicEngine.ActiveContainer.AddElement(newElement);
newElement.X -= logicEngine.Panning.OffsetX;
newElement.Y -= logicEngine.Panning.OffsetY;
designatorMap.push({Old: Elements[a].Designator, New: newElement.Designator});
if (Elements[a].Outputs) {

View File

@ -45,6 +45,15 @@ document.addEventListener('paste', function(evt) {
if (evt.clipboardData.getData('logicparts/json')) {
//console.log(evt.clipboardData.getData('logicparts/json'));
loadActiveContainer(JSON.parse(evt.clipboardData.getData('logicparts/json')).Elements);
} else {
// Lets see if they pasted a proper LogicParts format atleast
if (evt.clipboardData.getData('text')) {
let jsonObj = JSON.parse(evt.clipboardData.getData('text'));
if (jsonObj?.LogicParts && jsonObj?.Paste) {
console.log("We got a paste of a general text object that is valid");
loadActiveContainer(jsonObj.Elements);
}
}
}
});