From b8c9bd94d6a57e003d6bbea1c9eba0b931c38e3e Mon Sep 17 00:00:00 2001 From: Sibo Van Gool Date: Mon, 6 Sep 2021 23:33:05 +0200 Subject: [PATCH 1/4] [fixes #899] Use only filename in save/export filename input --- .../document/OpenRocketDocument.java | 19 ++++++++++++++++++- .../gui/main/SaveAsFileChooser.java | 7 ++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/core/src/net/sf/openrocket/document/OpenRocketDocument.java b/core/src/net/sf/openrocket/document/OpenRocketDocument.java index eb0f26d7a..358aca2b4 100644 --- a/core/src/net/sf/openrocket/document/OpenRocketDocument.java +++ b/core/src/net/sf/openrocket/document/OpenRocketDocument.java @@ -34,7 +34,7 @@ import net.sf.openrocket.util.ArrayList; */ public class OpenRocketDocument implements ComponentChangeListener { private static final Logger log = LoggerFactory.getLogger(OpenRocketDocument.class); - + private final List file_extensions = Arrays.asList("ork", "rkt"); // Possible extensions of an OpenRocket document /** * The minimum number of undo levels that are stored. */ @@ -193,6 +193,23 @@ public class OpenRocketDocument implements ComponentChangeListener { public File getFile() { return file; } + + /** + * returns the File handler object for the document without the file extension (e.g. '.ork' removed) + * @return the File handler object for the document without the file extension + */ + public File getFileNoExtension() { + if (file == null) return null; + int index = file.getAbsolutePath().lastIndexOf('.'); + if (index > 0) { + String filename = file.getAbsolutePath().substring(0, index); + String extension = file.getAbsolutePath().substring(index + 1); + if (file_extensions.contains(extension)) { + return new File(filename); + } + } + return file; + } /** * set the file handler object for the document diff --git a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java index 36d84aa5d..d6bf1427b 100644 --- a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java +++ b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java @@ -3,6 +3,9 @@ package net.sf.openrocket.gui.main; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import javax.swing.JFileChooser; @@ -33,12 +36,11 @@ public class SaveAsFileChooser extends JFileChooser { this.setAcceptAllFileFilterUsed(true); - File defaultFilename = document.getFile(); + File defaultFilename = document.getFileNoExtension(); switch( type ) { default: case OPENROCKET: - defaultFilename = FileHelper.forceExtension(defaultFilename,"ork"); this.setDialogTitle(trans.get("saveAs.openrocket.title")); storageChooser = new StorageOptionChooser(document, document.getDefaultStorageOptions()); this.setAccessory(storageChooser); @@ -46,7 +48,6 @@ public class SaveAsFileChooser extends JFileChooser { this.setFileFilter(FileHelper.OPENROCKET_DESIGN_FILTER); break; case ROCKSIM: - defaultFilename = FileHelper.forceExtension(defaultFilename,"rkt"); this.setDialogTitle(trans.get("saveAs.rocksim.title")); storageChooser = null; this.addChoosableFileFilter(FileHelper.ROCKSIM_DESIGN_FILTER); From 8d196d86720258e75ec04fbbf7c3fb13c18776b8 Mon Sep 17 00:00:00 2001 From: Sibo Van Gool Date: Thu, 9 Sep 2021 01:09:10 +0200 Subject: [PATCH 2/4] [fixes #899] Show file extension in save text input --- core/src/net/sf/openrocket/document/OpenRocketDocument.java | 2 +- swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/net/sf/openrocket/document/OpenRocketDocument.java b/core/src/net/sf/openrocket/document/OpenRocketDocument.java index 358aca2b4..36181c8f1 100644 --- a/core/src/net/sf/openrocket/document/OpenRocketDocument.java +++ b/core/src/net/sf/openrocket/document/OpenRocketDocument.java @@ -34,7 +34,7 @@ import net.sf.openrocket.util.ArrayList; */ public class OpenRocketDocument implements ComponentChangeListener { private static final Logger log = LoggerFactory.getLogger(OpenRocketDocument.class); - private final List file_extensions = Arrays.asList("ork", "rkt"); // Possible extensions of an OpenRocket document + private final List file_extensions = Arrays.asList("ork", "ork.gz", "rkt", "rkt.gz"); // Possible extensions of an OpenRocket document /** * The minimum number of undo levels that are stored. */ diff --git a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java index d6bf1427b..aba5b860e 100644 --- a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java +++ b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java @@ -41,6 +41,7 @@ public class SaveAsFileChooser extends JFileChooser { switch( type ) { default: case OPENROCKET: + defaultFilename = FileHelper.forceExtension(defaultFilename,"ork"); this.setDialogTitle(trans.get("saveAs.openrocket.title")); storageChooser = new StorageOptionChooser(document, document.getDefaultStorageOptions()); this.setAccessory(storageChooser); @@ -48,6 +49,7 @@ public class SaveAsFileChooser extends JFileChooser { this.setFileFilter(FileHelper.OPENROCKET_DESIGN_FILTER); break; case ROCKSIM: + defaultFilename = FileHelper.forceExtension(defaultFilename,"rkt"); this.setDialogTitle(trans.get("saveAs.rocksim.title")); storageChooser = null; this.addChoosableFileFilter(FileHelper.ROCKSIM_DESIGN_FILTER); From 5296348a7d9326423f9156c3d8d14e2f36216f10 Mon Sep 17 00:00:00 2001 From: Sibo Van Gool Date: Thu, 9 Sep 2021 16:04:58 +0200 Subject: [PATCH 3/4] [fixes #899] Remove 'All Files' option in save/export dialog --- swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java index aba5b860e..844178f80 100644 --- a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java +++ b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java @@ -34,7 +34,7 @@ public class SaveAsFileChooser extends JFileChooser { this.document = document; this.type = type; - this.setAcceptAllFileFilterUsed(true); + this.setAcceptAllFileFilterUsed(false); File defaultFilename = document.getFileNoExtension(); From 2231c995c2b85234568b4bc88ecefda0bbec18e4 Mon Sep 17 00:00:00 2001 From: Sibo Van Gool Date: Fri, 10 Sep 2021 01:04:35 +0200 Subject: [PATCH 4/4] =?UTF-8?q?[fixes=20#899]=C2=A0Remove=20double=20overw?= =?UTF-8?q?rite=20popup=20in=20export=20dialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- swing/src/net/sf/openrocket/gui/main/BasicFrame.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java index 1818a533e..b39756247 100644 --- a/swing/src/net/sf/openrocket/gui/main/BasicFrame.java +++ b/swing/src/net/sf/openrocket/gui/main/BasicFrame.java @@ -1410,9 +1410,6 @@ public class BasicFrame extends JFrame { return false; } } - if (!FileHelper.confirmWrite(file, this)) { - return false; - } try { StorageOptions options = new StorageOptions();