diff --git a/js/globalfunctions.js b/js/globalfunctions.js index 54e1a1e..14e7b84 100644 --- a/js/globalfunctions.js +++ b/js/globalfunctions.js @@ -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) { diff --git a/js/main.js b/js/main.js index 282c4ab..b2113bc 100644 --- a/js/main.js +++ b/js/main.js @@ -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); + } + } } });