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