mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-26 22:41:59 -04:00
Merge branch 'master' into undo
This commit is contained in:
commit
a0cbecfa55
@ -53,6 +53,8 @@ If you want to send a bug report or feature request please use the GitHub
|
||||
[issue tracker](https://github.com/hneemann/Digital/issues/new).
|
||||
This helps me to improve Digital, so do not hesitate.
|
||||
|
||||
You can also send a private message to [digital-simulator@web.de](mailto:digital-simulator@web.de).
|
||||
|
||||
## Motivation ##
|
||||
|
||||
Below I would like to explain briefly the reasons which led me to start a new development:
|
||||
|
@ -252,6 +252,13 @@ public final class Keys {
|
||||
public static final Key<Language> SETTINGS_LANGUAGE
|
||||
= new Key<>("Language", new Language());
|
||||
|
||||
|
||||
/**
|
||||
* Default state of the tree view
|
||||
*/
|
||||
public static final Key<Boolean> SETTINGS_DEFAULT_TREESELECT
|
||||
= new Key<>("defTreeSelect", false);
|
||||
|
||||
/**
|
||||
* The GUI expression string representation
|
||||
*/
|
||||
|
@ -309,6 +309,8 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
|
||||
}
|
||||
revalidate();
|
||||
});
|
||||
if (Settings.getInstance().get(Keys.SETTINGS_DEFAULT_TREESELECT))
|
||||
treeCheckBox.doClick();
|
||||
|
||||
toolBar.add(viewHelp.createJButtonNoText());
|
||||
toolBar.add(zoomIn.createJButtonNoText());
|
||||
@ -511,11 +513,13 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS
|
||||
ToolTipAction editSettings = new ToolTipAction(Lang.get("menu_editSettings")) {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
Language oldLang = Settings.getInstance().get(Keys.SETTINGS_LANGUAGE);
|
||||
final Language oldLang = Settings.getInstance().get(Keys.SETTINGS_LANGUAGE);
|
||||
final boolean oldIeeeShapes = Settings.getInstance().get(Keys.SETTINGS_IEEE_SHAPES);
|
||||
if (new AttributeDialog(Main.this, Settings.SETTINGS_KEYS, Settings.getInstance().getAttributes()).showDialog()) {
|
||||
FormatToExpression.setDefaultFormat(Settings.getInstance().get(Keys.SETTINGS_EXPRESSION_FORMAT));
|
||||
final Language newLang = Settings.getInstance().getAttributes().get(Keys.SETTINGS_LANGUAGE);
|
||||
if (!newLang.equals(oldLang)) {
|
||||
final boolean newIeeeShapes = Settings.getInstance().get(Keys.SETTINGS_IEEE_SHAPES);
|
||||
if (!newLang.equals(oldLang) || (oldIeeeShapes != newIeeeShapes)) {
|
||||
Lang.setLanguage(newLang);
|
||||
JOptionPane.showMessageDialog(Main.this, Lang.get("msg_restartNeeded"));
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ public final class Settings implements AttributeListener {
|
||||
INT_LIST.add(Keys.SETTINGS_IEEE_SHAPES);
|
||||
INT_LIST.add(Keys.SETTINGS_LANGUAGE);
|
||||
INT_LIST.add(Keys.SETTINGS_EXPRESSION_FORMAT);
|
||||
INT_LIST.add(Keys.SETTINGS_DEFAULT_TREESELECT);
|
||||
INT_LIST.add(Keys.SETTINGS_ATF1502_FITTER);
|
||||
}
|
||||
|
||||
|
@ -22,10 +22,7 @@ import de.neemann.digital.gui.components.modification.ModifyAttributes;
|
||||
import de.neemann.digital.gui.sync.NoSync;
|
||||
import de.neemann.digital.gui.sync.Sync;
|
||||
import de.neemann.digital.lang.Lang;
|
||||
import de.neemann.gui.ErrorMessage;
|
||||
import de.neemann.gui.IconCreator;
|
||||
import de.neemann.gui.LineBreaker;
|
||||
import de.neemann.gui.ToolTipAction;
|
||||
import de.neemann.gui.*;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@ -64,6 +61,8 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
private static final int MOUSE_BORDER_SMALL = 10;
|
||||
private static final int MOUSE_BORDER_LARGE = 50;
|
||||
|
||||
private static final int DRAG_DISTANCE = (int) (SIZE2 * Screen.getInstance().getScaling());
|
||||
|
||||
private final Main parent;
|
||||
private final ElementLibrary library;
|
||||
private final HashSet<Drawable> highLighted;
|
||||
@ -547,11 +546,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
buffer = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().createCompatibleImage(getWidth(), getHeight());
|
||||
|
||||
Graphics2D gr2 = buffer.createGraphics();
|
||||
if (antiAlias) {
|
||||
gr2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
gr2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
||||
gr2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
|
||||
}
|
||||
enableAntiAlias(gr2);
|
||||
gr2.setColor(Color.WHITE);
|
||||
gr2.fillRect(0, 0, getWidth(), getHeight());
|
||||
gr2.transform(transform);
|
||||
@ -576,11 +571,20 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
Graphics2D gr2 = (Graphics2D) g;
|
||||
AffineTransform oldTrans = gr2.getTransform();
|
||||
gr2.transform(transform);
|
||||
enableAntiAlias(gr2);
|
||||
GraphicSwing gr = new GraphicSwing(gr2, (int) (2 / transform.getScaleX()));
|
||||
activeMouseController.drawTo(gr);
|
||||
gr2.setTransform(oldTrans);
|
||||
}
|
||||
|
||||
private void enableAntiAlias(Graphics2D gr2) {
|
||||
if (antiAlias) {
|
||||
gr2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
gr2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
|
||||
gr2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void circuitHasChanged() {
|
||||
hasChanged = true;
|
||||
@ -799,7 +803,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe
|
||||
|
||||
private boolean wasMoved(MouseEvent e) {
|
||||
Vector d = new Vector(e.getX(), e.getY()).sub(pos);
|
||||
return Math.abs(d.x) > SIZE2 || Math.abs(d.y) > SIZE2;
|
||||
return Math.abs(d.x) > DRAG_DISTANCE || Math.abs(d.y) > DRAG_DISTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -45,7 +45,6 @@ public class SelectTree extends JTree {
|
||||
if (path != null && path.getPathCount() > 0) {
|
||||
LibraryNode node = (LibraryNode) path.getLastPathComponent();
|
||||
if (node.isLeaf() && node.isUnique()) {
|
||||
clearSelection();
|
||||
try {
|
||||
ElementTypeDescription d = node.getDescription();
|
||||
component.setPartToInsert(new VisualElement(d.getName()).setShapeFactory(shapeFactory));
|
||||
|
@ -641,6 +641,8 @@ Sind evtl. die Namen der Variablen nicht eindeutig?</string>
|
||||
Pinzuordnung bei der Programmierung eines CPLD verwendet.</string>
|
||||
<string name="key_pinCount">Pinanzahl DIL</string>
|
||||
<string name="key_pinCount_tt">Anzahl der Pins des DILs. Wird hier eine 0 eingetragen, wird die Anzahl automatisch bestimmt.</string>
|
||||
<string name="key_defTreeSelect">Baumansicht beim Start aktivieren.</string>
|
||||
<string name="key_defTreeSelect_tt">Wenn gesetzt, wird die Baumansicht beim Start automatisch aktiviert.</string>
|
||||
|
||||
<string name="lib_Logic">Logisch</string>
|
||||
<string name="lib_arithmetic">Arithmetik</string>
|
||||
@ -827,7 +829,7 @@ Die Icons stammen aus dem Tango Desktop Project.</string>
|
||||
<string name="msg_missingShape_N">Es fehlt ein Diagramm für {0}</string>
|
||||
<string name="msg_pins">Pinbelegung</string>
|
||||
<string name="msg_pinMap_pin_N_is_N">Pin {0}: {1}</string>
|
||||
<string name="msg_restartNeeded">Die Änderung der Sprache erfordert einen Neustart!</string>
|
||||
<string name="msg_restartNeeded">Die Änderung der Einstellung erfordert einen Neustart!</string>
|
||||
<string name="msg_noRomFound">Kein ROM im Model gefunden! Ein ROM muss als Programmspeicher gewählt werden!</string>
|
||||
<string name="msg_moreThenOneRomFound">Mehr als einen Programmspeicher gefunden. Es darf nur einen Programmspeicher geben.</string>
|
||||
<string name="msg_enterAnExpression">Geben Sie einen Ausdruck ein:</string>
|
||||
|
@ -631,7 +631,8 @@ The names of the variables may not be unique.</string>
|
||||
the pin assignment when programming a CPLD.</string>
|
||||
<string name="key_pinCount">Number of DIL pins</string>
|
||||
<string name="key_pinCount_tt">Number of pins. A zero means that the number od pins is determined automatically.</string>
|
||||
|
||||
<string name="key_defTreeSelect">Component tree view is visible at startup.</string>
|
||||
<string name="key_defTreeSelect_tt">If set, the component tree view is enabled at startup.</string>
|
||||
|
||||
<string name="lib_Logic">Logic</string>
|
||||
<string name="lib_arithmetic">Arithmetic</string>
|
||||
@ -817,7 +818,7 @@ The icons are taken from the Tango Desktop Project.</string>
|
||||
<string name="msg_missingShape_N">Shape {0} is missing</string>
|
||||
<string name="msg_pins">Pin assignment</string>
|
||||
<string name="msg_pinMap_pin_N_is_N">Pin {0}: {1}</string>
|
||||
<string name="msg_restartNeeded">To change the GUI language a restart is required!</string>
|
||||
<string name="msg_restartNeeded">A restart is required for the changes to take effect!</string>
|
||||
<string name="msg_noRomFound">No ROM found! ROM needs to be set to be program memory.</string>
|
||||
<string name="msg_moreThenOneRomFound">More then one ROM found! Only one ROM must be set to be program memory.</string>
|
||||
<string name="msg_remoteUnknownCommand">Command {0} unknown!</string>
|
||||
|
Loading…
x
Reference in New Issue
Block a user