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);