diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml
index ade2f876..4cc1a631 100644
--- a/diylc/diylc-core/src/org/diylc/presenter/update.xml
+++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml
@@ -2856,11 +2856,15 @@
BUG_FIX
- Fix the issue with theme configuration that causes the app to fail to start and some components to fail to render
+ Choosing a default theme in the Config menut causes the app to fail to start and some components to fail to render
BUG_FIX
- Fix the issue tube socket pins that can be dragged independently from the socket
+ Fixed the issue with tube symbol mirroring
+
+
+ BUG_FIX
+ Fixed tube socket pins that can be dragged independently from the socket
https://github.com/bancika/diy-layout-creator/releases
diff --git a/diylc/diylc-library/lib/diylc-core.jar b/diylc/diylc-library/lib/diylc-core.jar
index bd2263ed..ffd1e76c 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/components/transform/TubeSymbolTransformer.java b/diylc/diylc-library/src/org/diylc/components/transform/TubeSymbolTransformer.java
index 1d92d0d4..76df2237 100644
--- a/diylc/diylc-library/src/org/diylc/components/transform/TubeSymbolTransformer.java
+++ b/diylc/diylc-library/src/org/diylc/components/transform/TubeSymbolTransformer.java
@@ -25,7 +25,8 @@ import java.awt.Point;
import java.awt.geom.AffineTransform;
import org.diylc.common.IComponentTransformer;
-import org.diylc.common.Orientation;
+import org.diylc.common.Orientation;
+import org.diylc.components.semiconductors.SymbolFlipping;
import org.diylc.components.tube.AbstractTubeSymbol;
import org.diylc.core.IDIYComponent;
@@ -70,55 +71,34 @@ public class TubeSymbolTransformer implements IComponentTransformer {
@Override
public void mirror(IDIYComponent> component, Point center, int direction) {
AbstractTubeSymbol tube = (AbstractTubeSymbol) component;
-
+
+ Orientation o = tube.getOrientation();
+ SymbolFlipping flip = tube.getFlip();
+
if (direction == IComponentTransformer.HORIZONTAL) {
- int dx = 2 * (center.x - tube.getControlPoint(0).x);
- int dy = 0;
-
- Orientation o = tube.getOrientation();
- switch (o) {
- case DEFAULT:
- o = Orientation._180;
- break;
- case _90:
- break;
- case _180:
- o = Orientation.DEFAULT;
- break;
- case _270:
- break;
- }
-
- for (int i = 0; i < tube.getControlPointCount(); i++) {
- Point p = tube.getControlPoint(i);
- tube.setControlPoint(new Point(p.x + dx, p.y + dy), i);
- }
-
- tube.setOrientation(o);
+ if (o == Orientation.DEFAULT || o == Orientation._180) {
+ if (flip == SymbolFlipping.NONE)
+ tube.setFlip(SymbolFlipping.X);
+ else if (flip == SymbolFlipping.X)
+ tube.setFlip(SymbolFlipping.NONE);
+ } else if (o == Orientation._90 || o == Orientation._270) {
+ if (flip == SymbolFlipping.NONE)
+ tube.setFlip(SymbolFlipping.Y);
+ else if (flip == SymbolFlipping.Y)
+ tube.setFlip(SymbolFlipping.NONE);
+ }
} else {
- int dx = 0;
- int dy = 2 * (center.y - tube.getControlPoint(0).y);
-
- Orientation o = tube.getOrientation();
- switch (o) {
- case DEFAULT:
- break;
- case _90:
- o = Orientation._270;
- break;
- case _180:
- break;
- case _270:
- o = Orientation._90;
- break;
+ if (o == Orientation.DEFAULT || o == Orientation._180) {
+ if (flip == SymbolFlipping.NONE)
+ tube.setFlip(SymbolFlipping.Y);
+ else if (flip == SymbolFlipping.Y)
+ tube.setFlip(SymbolFlipping.NONE);
+ } else if (o == Orientation._90 || o == Orientation._270) {
+ if (flip == SymbolFlipping.NONE)
+ tube.setFlip(SymbolFlipping.X);
+ else if (flip == SymbolFlipping.X)
+ tube.setFlip(SymbolFlipping.NONE);
}
-
- for (int i = 0; i < tube.getControlPointCount(); i++) {
- Point p = tube.getControlPoint(i);
- tube.setControlPoint(new Point(p.x + dx, p.y + dy), i);
- }
-
- tube.setOrientation(o);
}
}
}
diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar
index bd2263ed..ffd1e76c 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 dc68e914..447e9d01 100644
Binary files a/diylc/diylc-swing/library/main.jar and b/diylc/diylc-swing/library/main.jar differ