* fix FileChooser issues
@see https://www.filebot.net/forums/viewtopic.php?f=6&t=2165&p=12432#p12432
This commit is contained in:
parent
8f5bf9f49f
commit
2676762686
@ -75,11 +75,11 @@ public class UserFiles {
|
||||
private static final String KEY_OPEN_FOLDER = "open.folder";
|
||||
private static final String KEY_SAVE = "save.file";
|
||||
|
||||
protected static File getFileChooserDefaultFile(String name, File userValue) {
|
||||
protected static File getFileChooserDefaultFile(String key, File userValue) {
|
||||
if (userValue != null && userValue.getParentFile() != null)
|
||||
return userValue;
|
||||
|
||||
String path = Settings.forPackage(UserFiles.class).get(PREF_KEY_PREFIX + name);
|
||||
String path = Settings.forPackage(UserFiles.class).get(PREF_KEY_PREFIX + key);
|
||||
if (path == null || path.isEmpty())
|
||||
return userValue;
|
||||
|
||||
@ -103,7 +103,15 @@ public class UserFiles {
|
||||
chooser.setDialogTitle(title);
|
||||
chooser.setMultiSelectionEnabled(multiSelection);
|
||||
chooser.setFileSelectionMode(folderMode && filter == null ? JFileChooser.DIRECTORIES_ONLY : JFileChooser.FILES_AND_DIRECTORIES);
|
||||
chooser.setSelectedFile(defaultFile);
|
||||
|
||||
if (defaultFile != null) {
|
||||
if (defaultFile.exists()) {
|
||||
chooser.setSelectedFile(defaultFile);
|
||||
} else if (defaultFile.getParentFile().exists()) {
|
||||
chooser.setCurrentDirectory(defaultFile.getParentFile());
|
||||
}
|
||||
}
|
||||
|
||||
if (filter != null) {
|
||||
chooser.setFileFilter(new javax.swing.filechooser.FileNameExtensionFilter(filter.toString(), filter.extensions()));
|
||||
}
|
||||
@ -139,9 +147,7 @@ public class UserFiles {
|
||||
FileDialog fileDialog = createFileDialog(parent, title, FileDialog.LOAD, folderMode);
|
||||
fileDialog.setTitle(title);
|
||||
fileDialog.setMultipleMode(multiSelection);
|
||||
if (filter != null) {
|
||||
fileDialog.setFilenameFilter(filter);
|
||||
}
|
||||
|
||||
if (defaultFile != null) {
|
||||
if (folderMode && defaultFile.isDirectory()) {
|
||||
fileDialog.setDirectory(defaultFile.getPath());
|
||||
@ -153,6 +159,10 @@ public class UserFiles {
|
||||
}
|
||||
}
|
||||
|
||||
if (filter != null) {
|
||||
fileDialog.setFilenameFilter(filter);
|
||||
}
|
||||
|
||||
fileDialog.setVisible(true);
|
||||
return asList(fileDialog.getFiles());
|
||||
}
|
||||
|
@ -724,7 +724,7 @@ public final class FileUtilities {
|
||||
private final String[] extensions;
|
||||
|
||||
public ExtensionFileFilter(String... extensions) {
|
||||
this.extensions = extensions;
|
||||
this.extensions = extensions.clone();
|
||||
}
|
||||
|
||||
public ExtensionFileFilter(Collection<String> extensions) {
|
||||
@ -733,16 +733,16 @@ public final class FileUtilities {
|
||||
|
||||
@Override
|
||||
public boolean accept(File dir, String name) {
|
||||
return hasExtension(name, extensions);
|
||||
return accept(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean accept(File file) {
|
||||
return hasExtension(file, extensions);
|
||||
return accept(file.getName());
|
||||
}
|
||||
|
||||
public boolean accept(String name) {
|
||||
return hasExtension(name, extensions);
|
||||
return acceptAny() || hasExtension(name, extensions);
|
||||
}
|
||||
|
||||
public boolean acceptAny() {
|
||||
|
Loading…
Reference in New Issue
Block a user