From c1c9130c4f66ed82dc2d35051fc12edb7f3b46b8 Mon Sep 17 00:00:00 2001 From: hneemann Date: Mon, 8 May 2017 10:07:39 +0200 Subject: [PATCH] fixed an issue concerning keeping the main file at "save as" operation. --- .../java/de/neemann/digital/gui/Main.java | 19 ++++++++++++++++++- .../gui/components/CircuitComponent.java | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/neemann/digital/gui/Main.java b/src/main/java/de/neemann/digital/gui/Main.java index 6c36d2caf..94f1c4e38 100644 --- a/src/main/java/de/neemann/digital/gui/Main.java +++ b/src/main/java/de/neemann/digital/gui/Main.java @@ -110,6 +110,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS private final ScheduledThreadPoolExecutor timerExecutor = new ScheduledThreadPoolExecutor(1); private final WindowPosManager windowPosManager = new WindowPosManager(); private final InsertHistory insertHistory; + private final boolean keepPrefMainFile; private ToolTipAction doStep; private ToolTipAction runToBreakAction; @@ -140,6 +141,8 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); setIconImages(IconCreator.createImages("icon32.png", "icon64.png", "icon128.png")); + keepPrefMainFile = builder.keepPrefMainFile; + if (builder.library != null) library = builder.library; else library = new ElementLibrary(); @@ -348,6 +351,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS .setLibrary(library) .setCircuit(new Circuit()) .setBaseFileName(getBaseFileName()) + .keepPrefMainFile() .build() .setVisible(true); } @@ -391,7 +395,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS saveAsHelper.checkOverwrite( file -> { if (library.isFileAccessible(file)) - saveFile(file, false); + saveFile(file, !keepPrefMainFile); else { Object[] options = {Lang.get("btn_saveAnyway"), Lang.get("btn_newName"), Lang.get("cancel")}; int res = JOptionPane.showOptionDialog(Main.this, @@ -548,6 +552,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS .setLibrary(library) .setCircuit(circuit) .setBaseFileName(getBaseFileName()) + .keepPrefMainFile() .build() .setVisible(true); } @@ -1201,6 +1206,7 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS private Circuit circuit; private boolean allowAllFileActions = true; private File baseFileName; + private boolean keepPrefMainFile; /** * @param fileToOpen the file to open @@ -1258,6 +1264,16 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS return this; } + /** + * Keeps the main file defined in the preferences + * + * @return this for chained calls + */ + public MainBuilder keepPrefMainFile() { + this.keepPrefMainFile = true; + return this; + } + /** * Creates a new Main instance * @@ -1273,5 +1289,6 @@ public final class Main extends JFrame implements ClosingWindowListener.ConfirmS public void openLater() { SwingUtilities.invokeLater(() -> build().setVisible(true)); } + } } diff --git a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java index 45c22b1ec..e51ab8a94 100644 --- a/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java +++ b/src/main/java/de/neemann/digital/gui/components/CircuitComponent.java @@ -612,6 +612,7 @@ public class CircuitComponent extends JComponent implements Circuit.ChangedListe .setFileToOpen(((ElementLibrary.ElementTypeDescriptionCustom) elementType).getFile()) .setLibrary(library) .denyMostFileActions() + .keepPrefMainFile() .openLater(); } }.setToolTip(Lang.get("attr_openCircuit_tt")));