diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index d8381726..84b2c212 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3763,13 +3763,17 @@ 22 1 - 2022-03-03 00:00:00.000 CET + 2022-03-07 00:00:00.000 CET BUG_FIX Fixed backwards compatibility issue with older files failing to open because of an issue with 'Tape Measure' component serialization + + BUG_FIX + Fixed the issue with 'Add Flexible Leads' functionality placing the flexible leads wrong on leaded components (e.g. resistors, capacitors...) + BUG_FIX Fixed display issue with Trace layer showing up as Wiring in the menu diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar index eaf5ff75..b1cc83c0 100644 Binary files a/diylc/diylc-library/lib/diylc-core.jar and b/diylc/diylc-library/lib/diylc-core.jar differ diff --git a/diylc/diylc-library/src/org/diylc/editor/FlexibleLeadsEditor.java b/diylc/diylc-library/src/org/diylc/editor/FlexibleLeadsEditor.java index 8f757808..308ab4b1 100644 --- a/diylc/diylc-library/src/org/diylc/editor/FlexibleLeadsEditor.java +++ b/diylc/diylc-library/src/org/diylc/editor/FlexibleLeadsEditor.java @@ -55,8 +55,8 @@ public class FlexibleLeadsEditor implements IProjectEditor { if (l == null) return; - Point2D p1 = leaded.getControlPoint(0); - Point2D p2 = leaded.getControlPoint(1); + Point2D p1 = (Point2D) leaded.getControlPoint(0).clone(); + Point2D p2 = (Point2D) leaded.getControlPoint(1).clone(); double d = p1.distance(p2); double len = l.convertToPixels() + 2; @@ -86,8 +86,8 @@ public class FlexibleLeadsEditor implements IProjectEditor { // w1.setPointCount(PointCount.THREE); w1.setControlPoint(p1, 0); for (int i = 1; i < w1.getControlPointCount() - 1; i++) { - double r = (len + diff) / (w1.getControlPointCount() - 1) * (w1.getControlPointCount() - i - 1); - w1.setControlPoint(new Point2D.Double((int)Math.round(centerX - Math.cos(theta) * r), (int)Math.round(centerY - Math.sin(theta) * r)), i); + double r = diff * i / (w1.getControlPointCount() - 1); + w1.setControlPoint(new Point2D.Double((int)Math.round(p1.getX() + Math.cos(theta) * r), (int)Math.round(p1.getY() + Math.sin(theta) * r)), i); } w1.setControlPoint(newP1, w1.getControlPointCount() - 1); newSelection.add(w1); @@ -99,8 +99,8 @@ public class FlexibleLeadsEditor implements IProjectEditor { // w2.setPointCount(PointCount.THREE); w2.setControlPoint(p2, 0); for (int i = 1; i < w2.getControlPointCount() - 1; i++) { - double r = (len + diff) / (w2.getControlPointCount() - 1) * (w2.getControlPointCount() - i - 1); - w2.setControlPoint(new Point2D.Double((int)Math.round(centerX + Math.cos(theta) * r), (int)Math.round(centerY + Math.sin(theta) * r)), i); + double r = diff * i / (w2.getControlPointCount() - 1); + w2.setControlPoint(new Point2D.Double((int)Math.round(p2.getX() - Math.cos(theta) * r), (int)Math.round(p2.getY() - Math.sin(theta) * r)), i); } w2.setControlPoint(newP2, w2.getControlPointCount() - 1); newSelection.add(w2); diff --git a/diylc/diylc-swing/RegressionTestRunner.launch b/diylc/diylc-swing/RegressionTestRunner.launch index 8855cd25..96798e66 100644 --- a/diylc/diylc-swing/RegressionTestRunner.launch +++ b/diylc/diylc-swing/RegressionTestRunner.launch @@ -9,6 +9,6 @@ - + diff --git a/diylc/diylc-swing/build.xml b/diylc/diylc-swing/build.xml index a3122139..2e687946 100644 --- a/diylc/diylc-swing/build.xml +++ b/diylc/diylc-swing/build.xml @@ -10,7 +10,7 @@ - + diff --git a/diylc/diylc-swing/dict.txt b/diylc/diylc-swing/dict.txt index 9d7a1bf2..e795f990 100644 --- a/diylc/diylc-swing/dict.txt +++ b/diylc/diylc-swing/dict.txt @@ -26,6 +26,8 @@ A-O-I REGULATOR AWG And C-B-E BJT +C1 +C2 Check Trace Proximity D-G-S JFET D-G-S MOSFET diff --git a/diylc/diylc-swing/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml b/diylc/diylc-swing/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml index 5465356e..2e1a4d7c 100644 --- a/diylc/diylc-swing/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml +++ b/diylc/diylc-swing/flatpak/com.diy_fever.DIYLayoutCreator.metainfo.xml @@ -37,6 +37,16 @@ nbenitezl_AT_gmail.com + + +
    +
  • [Bug Fix] Fixed backwards compatibility issue with older files failing to open because of an issue with 'Tape Measure' component serialization
  • +
  • [Bug Fix] Fixed the issue with 'Add Flexible Leads' functionality placing the flexible leads wrong on leaded components (e.g. resistors, capacitors...)
  • +
  • [Bug Fix] Fixed display issue with Trace layer showing up as Wiring in the menu
  • +
+
+ https://github.com/bancika/diy-layout-creator/releases/tag/v4.22.1 +
    diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index eaf5ff75..b1cc83c0 100644 Binary files a/diylc/diylc-swing/lib/diylc-core.jar and b/diylc/diylc-swing/lib/diylc-core.jar differ diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 3e2e31c8..0441a101 100644 Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ diff --git a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index 8d702fc3..d5ac50fe 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java @@ -471,8 +471,6 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { public void zoom(int direction) { Point mousePosBefore = canvasPanel.getMousePosition(true); Point locationBefore = canvasPanel.getLocation(); - int relativeX = (int) (mousePosBefore.getX() + locationBefore.getX()); - int relativeY = (int) (mousePosBefore.getY() + locationBefore.getY()); // change zoom level double oldZoom = plugInPort.getZoomLevel(); @@ -504,6 +502,8 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { if (selectionBounds == null) { // center to cursor + int relativeX = (int) (mousePosBefore.getX() + locationBefore.getX()); + int relativeY = (int) (mousePosBefore.getY() + locationBefore.getY()); Point desiredPos = new Point((int) (1d * mousePosBefore.getX() / oldZoom * newZoom), (int) (1d * mousePosBefore.getY() / oldZoom * newZoom)); int newHorizontalPos = (int) (desiredPos.getX() - relativeX);