From 5762e24df69347a164c7fd9229a195b1e2db32d9 Mon Sep 17 00:00:00 2001 From: rdavidek Date: Sat, 24 Jan 2026 14:32:12 +0100 Subject: [PATCH] export config filename --- .../cz/kamma/kfmanager/ui/SettingsDialog.java | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java b/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java index d56cbf4..4d2ac71 100644 --- a/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java +++ b/src/main/java/cz/kamma/kfmanager/ui/SettingsDialog.java @@ -6,6 +6,8 @@ import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.io.File; +import java.net.InetAddress; +import java.net.UnknownHostException; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; @@ -706,17 +708,37 @@ public class SettingsDialog extends JDialog { gbc.gridwidth = 2; // Span across the rest JButton browseBtn = new JButton("Browse..."); browseBtn.addActionListener(e -> { + String hostname = "localhost"; + try { + hostname = InetAddress.getLocalHost().getHostName(); + } catch (Exception ex) { + // ignore + } + String defaultFileName = "kfmanager-" + hostname + ".backup"; + JFileChooser chooser = new JFileChooser(); String currentPath = pathField.getText(); + + File lastDir = null; + String lastDirPath = config.getLastFileChooserDirectory(); + if (lastDirPath != null && !lastDirPath.isEmpty()) { + lastDir = new File(lastDirPath); + } + if (lastDir == null || !lastDir.exists()) { + lastDir = new File(System.getProperty("user.home")); + } + if (!currentPath.isEmpty()) { File f = new File(currentPath); if (f.exists()) { chooser.setSelectedFile(f); } else { - chooser.setSelectedFile(new File(f.getParentFile(), "kfmanager.backup")); + File parent = f.getParentFile(); + if (parent == null) parent = lastDir; + chooser.setSelectedFile(new File(parent, defaultFileName)); } } else { - chooser.setSelectedFile(new File("kfmanager.backup")); + chooser.setSelectedFile(new File(lastDir, defaultFileName)); } if (FileChooserUtils.showOpenDialog(this, chooser, config) == JFileChooser.APPROVE_OPTION) { String path = chooser.getSelectedFile().getAbsolutePath();