From 7186aa6dd03670ea7678545ff83e7c49b272390d Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sat, 1 Apr 2023 20:48:39 +0200 Subject: [PATCH] Ensure default directory is updated after file chooser update --- .../sf/openrocket/gui/configdialog/FreeformFinSetConfig.java | 2 ++ .../openrocket/gui/customexpression/CustomExpressionPanel.java | 2 ++ .../src/net/sf/openrocket/gui/dialogs/DecalNotFoundDialog.java | 1 + swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java | 3 +++ .../gui/dialogs/preferences/GeneralPreferencesPanel.java | 1 + .../gui/dialogs/preferences/GraphicsPreferencesPanel.java | 3 +++ swing/src/net/sf/openrocket/gui/main/ExportDecalDialog.java | 1 + swing/src/net/sf/openrocket/gui/preset/PresetEditorDialog.java | 3 +++ swing/src/net/sf/openrocket/utils/ComponentPresetEditor.java | 2 ++ 9 files changed, 18 insertions(+) diff --git a/swing/src/net/sf/openrocket/gui/configdialog/FreeformFinSetConfig.java b/swing/src/net/sf/openrocket/gui/configdialog/FreeformFinSetConfig.java index 9f898774c..cce14deba 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/FreeformFinSetConfig.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/FreeformFinSetConfig.java @@ -303,6 +303,7 @@ public class FreeformFinSetConfig extends FinSetConfig { } FreeformFinSetConfig.writeCSVFile(table, selectedFile); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory()); } } }); @@ -400,6 +401,7 @@ public class FreeformFinSetConfig extends FinSetConfig { trans.get("CustomFinImport.error.title"), JOptionPane.ERROR_MESSAGE); } finally { document.stopUndo(); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory()); } } } diff --git a/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java b/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java index 272044bc4..394daec86 100644 --- a/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java +++ b/swing/src/net/sf/openrocket/gui/customexpression/CustomExpressionPanel.java @@ -18,6 +18,7 @@ import javax.swing.JScrollPane; import javax.swing.SwingUtilities; import javax.swing.filechooser.FileNameExtensionFilter; +import net.sf.openrocket.gui.util.SwingPreferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -110,6 +111,7 @@ public class CustomExpressionPanel extends JPanel { log.info(Markers.USER_MARKER, "Error opening document to import expressions from."); } updateExpressions(); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(fc.getCurrentDirectory()); } } }); diff --git a/swing/src/net/sf/openrocket/gui/dialogs/DecalNotFoundDialog.java b/swing/src/net/sf/openrocket/gui/dialogs/DecalNotFoundDialog.java index e14c05a15..e726e0015 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/DecalNotFoundDialog.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/DecalNotFoundDialog.java @@ -43,6 +43,7 @@ public abstract class DecalNotFoundDialog { if (resultFileChooser == JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); decex.getDecal().setDecalFile(file); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory()); } } return (resultYesNo == JOptionPane.YES_OPTION) && (resultFileChooser == JFileChooser.APPROVE_OPTION); diff --git a/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java b/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java index 8ed3bf885..678e0edbc 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/EditDecalDialog.java @@ -20,6 +20,7 @@ import javax.swing.event.ChangeListener; import net.miginfocom.swing.MigLayout; import net.sf.openrocket.gui.util.GUIUtil; +import net.sf.openrocket.gui.util.SwingPreferences; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.startup.Application; import net.sf.openrocket.gui.widgets.SelectColorButton; @@ -75,6 +76,7 @@ public class EditDecalDialog extends JDialog { int action = fc.showOpenDialog(owner); if (action == JFileChooser.APPROVE_OPTION) { commandText.setText(fc.getSelectedFile().getAbsolutePath()); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(fc.getCurrentDirectory()); } } @@ -109,6 +111,7 @@ public class EditDecalDialog extends JDialog { int action = fc.showOpenDialog(owner); if (action == JFileChooser.APPROVE_OPTION) { commandText.setText(fc.getSelectedFile().getAbsolutePath()); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(fc.getCurrentDirectory()); } } diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java index cd2be571d..09e1ef7d1 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java @@ -40,6 +40,7 @@ import net.sf.openrocket.gui.util.PreferencesExporter; import net.sf.openrocket.gui.util.PreferencesImporter; import net.sf.openrocket.l10n.L10N; import net.sf.openrocket.logging.Markers; +import net.sf.openrocket.startup.Application; import net.sf.openrocket.startup.Preferences; import net.sf.openrocket.util.BuildProperties; import net.sf.openrocket.util.Named; diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java index b0b241b9b..3f16a27d3 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GraphicsPreferencesPanel.java @@ -29,6 +29,8 @@ import net.sf.openrocket.gui.adaptors.BooleanModel; import net.sf.openrocket.gui.components.StyledLabel; import net.sf.openrocket.gui.components.StyledLabel.Style; import net.sf.openrocket.gui.util.GUIUtil; +import net.sf.openrocket.gui.util.SwingPreferences; +import net.sf.openrocket.startup.Application; import net.sf.openrocket.startup.Preferences; import net.sf.openrocket.gui.widgets.SelectColorButton; @@ -119,6 +121,7 @@ public class GraphicsPreferencesPanel extends PreferencesPanel { String commandLine = fc.getSelectedFile().getAbsolutePath(); commandText.setText(commandLine); preferences.setDecalEditorPreference(false, commandLine); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(fc.getCurrentDirectory()); } } diff --git a/swing/src/net/sf/openrocket/gui/main/ExportDecalDialog.java b/swing/src/net/sf/openrocket/gui/main/ExportDecalDialog.java index 18e3c4ba1..932547cc5 100644 --- a/swing/src/net/sf/openrocket/gui/main/ExportDecalDialog.java +++ b/swing/src/net/sf/openrocket/gui/main/ExportDecalDialog.java @@ -90,6 +90,7 @@ public class ExportDecalDialog extends JDialog { export(selectedDecal, selectedFile); // If the user doesn't confirm over write, then leave this dialog open. ExportDecalDialog.this.dispose(); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory()); } } } diff --git a/swing/src/net/sf/openrocket/gui/preset/PresetEditorDialog.java b/swing/src/net/sf/openrocket/gui/preset/PresetEditorDialog.java index 3818ebe17..b10331a21 100644 --- a/swing/src/net/sf/openrocket/gui/preset/PresetEditorDialog.java +++ b/swing/src/net/sf/openrocket/gui/preset/PresetEditorDialog.java @@ -44,6 +44,7 @@ import javax.swing.border.EmptyBorder; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.text.JTextComponent; +import net.sf.openrocket.gui.util.SwingPreferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -389,6 +390,7 @@ public class PresetEditorDialog extends JDialog implements ItemListener { File file = imageChooser.getSelectedFile(); ncImage = scaleImage(new ImageIcon(file.getAbsolutePath()).getImage(), 155); ncImageBtn.setIcon(ncImage); + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(imageChooser.getCurrentDirectory()); } } }); @@ -1318,6 +1320,7 @@ public class PresetEditorDialog extends JDialog implements ItemListener { */ private JFileChooser createImageChooser() { final JFileChooser chooser = new JFileChooser(); + chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory()); ImagePreviewPanel preview = new ImagePreviewPanel(); chooser.setAccessory(preview); chooser.addPropertyChangeListener(preview); diff --git a/swing/src/net/sf/openrocket/utils/ComponentPresetEditor.java b/swing/src/net/sf/openrocket/utils/ComponentPresetEditor.java index a70cfc878..a1baf53f3 100644 --- a/swing/src/net/sf/openrocket/utils/ComponentPresetEditor.java +++ b/swing/src/net/sf/openrocket/utils/ComponentPresetEditor.java @@ -342,6 +342,8 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene log.info(Markers.USER_MARKER, "User decided not to open, option=" + option); return false; } + + ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory()); File file = chooser.getSelectedFile(); try {