* allow users to force "Select Folders" and "Select Files" in Rename panel via SHIFT+CLICK "Load" for users that have trouble with file chooser (JavaFX doesn't support Folder & Files file chooser) and especially if Drag-n-Drop doesn't work for some reason
This commit is contained in:
parent
1c8046916a
commit
fa22890573
|
@ -9,6 +9,7 @@ import java.awt.Desktop;
|
||||||
import java.awt.Dialog;
|
import java.awt.Dialog;
|
||||||
import java.awt.FileDialog;
|
import java.awt.FileDialog;
|
||||||
import java.awt.Frame;
|
import java.awt.Frame;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -48,25 +49,25 @@ public class UserFiles {
|
||||||
defaultFileChooser = fileChooser;
|
defaultFileChooser = fileChooser;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, Object parent) {
|
public static List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, ActionEvent evt) {
|
||||||
String defaultFileKey = (folderMode && filter == null) ? KEY_OPEN_FOLDER : KEY_OPEN_FILE;
|
String defaultFileKey = ((folderMode && filter == null) || !(folderMode && filter != null && isShiftOrAltDown(evt))) ? KEY_OPEN_FOLDER : KEY_OPEN_FILE;
|
||||||
List<File> files = defaultFileChooser.showLoadDialogSelectFiles(folderMode, multiSelection, getFileChooserDefaultFile(defaultFileKey, defaultFile), filter, title, parent);
|
List<File> files = defaultFileChooser.showLoadDialogSelectFiles(defaultFileKey == KEY_OPEN_FOLDER, multiSelection, getFileChooserDefaultFile(defaultFileKey, defaultFile), filter, title, evt);
|
||||||
if (files.size() > 0) {
|
if (files.size() > 0) {
|
||||||
setFileChooserDefaultFile(defaultFileKey, files.get(0));
|
setFileChooserDefaultFile(defaultFileKey, files.get(0));
|
||||||
}
|
}
|
||||||
return files;
|
return files;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, Object parent) {
|
public static File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, ActionEvent evt) {
|
||||||
File file = defaultFileChooser.showSaveDialogSelectFile(folderMode, getFileChooserDefaultFile(KEY_SAVE, defaultFile), title, parent);
|
File file = defaultFileChooser.showSaveDialogSelectFile(folderMode, getFileChooserDefaultFile(KEY_SAVE, defaultFile), title, evt);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
setFileChooserDefaultFile(KEY_SAVE, file);
|
setFileChooserDefaultFile(KEY_SAVE, file);
|
||||||
}
|
}
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static File showOpenDialogSelectFolder(File defaultFile, String title, Object parent) {
|
public static File showOpenDialogSelectFolder(File defaultFile, String title, ActionEvent evt) {
|
||||||
List<File> folder = defaultFileChooser.showLoadDialogSelectFiles(true, false, defaultFile, null, title, parent);
|
List<File> folder = defaultFileChooser.showLoadDialogSelectFiles(true, false, defaultFile, null, title, evt);
|
||||||
return folder.size() > 0 ? folder.get(0) : null;
|
return folder.size() > 0 ? folder.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +99,7 @@ public class UserFiles {
|
||||||
Swing {
|
Swing {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, Object parent) {
|
public List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, ActionEvent evt) {
|
||||||
JFileChooser chooser = new JFileChooser();
|
JFileChooser chooser = new JFileChooser();
|
||||||
chooser.setDialogTitle(title);
|
chooser.setDialogTitle(title);
|
||||||
chooser.setMultiSelectionEnabled(multiSelection);
|
chooser.setMultiSelectionEnabled(multiSelection);
|
||||||
|
@ -116,7 +117,7 @@ public class UserFiles {
|
||||||
chooser.setFileFilter(new javax.swing.filechooser.FileNameExtensionFilter(filter.toString(), filter.extensions()));
|
chooser.setFileFilter(new javax.swing.filechooser.FileNameExtensionFilter(filter.toString(), filter.extensions()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chooser.showOpenDialog(getWindow(parent)) == JFileChooser.APPROVE_OPTION) {
|
if (chooser.showOpenDialog(getWindow(evt.getSource())) == JFileChooser.APPROVE_OPTION) {
|
||||||
if (chooser.getSelectedFiles().length > 0)
|
if (chooser.getSelectedFiles().length > 0)
|
||||||
return asList(chooser.getSelectedFiles());
|
return asList(chooser.getSelectedFiles());
|
||||||
if (chooser.getSelectedFile() != null)
|
if (chooser.getSelectedFile() != null)
|
||||||
|
@ -126,14 +127,14 @@ public class UserFiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, Object parent) {
|
public File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, ActionEvent evt) {
|
||||||
JFileChooser chooser = new JFileChooser();
|
JFileChooser chooser = new JFileChooser();
|
||||||
chooser.setDialogTitle(title);
|
chooser.setDialogTitle(title);
|
||||||
chooser.setMultiSelectionEnabled(false);
|
chooser.setMultiSelectionEnabled(false);
|
||||||
chooser.setFileSelectionMode(folderMode ? JFileChooser.DIRECTORIES_ONLY : JFileChooser.FILES_AND_DIRECTORIES);
|
chooser.setFileSelectionMode(folderMode ? JFileChooser.DIRECTORIES_ONLY : JFileChooser.FILES_AND_DIRECTORIES);
|
||||||
chooser.setSelectedFile(defaultFile);
|
chooser.setSelectedFile(defaultFile);
|
||||||
|
|
||||||
if (chooser.showSaveDialog(getWindow(parent)) != JFileChooser.APPROVE_OPTION) {
|
if (chooser.showSaveDialog(getWindow(evt.getSource())) != JFileChooser.APPROVE_OPTION) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return chooser.getSelectedFile();
|
return chooser.getSelectedFile();
|
||||||
|
@ -143,8 +144,8 @@ public class UserFiles {
|
||||||
AWT {
|
AWT {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, Object parent) {
|
public List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, ActionEvent evt) {
|
||||||
FileDialog fileDialog = createFileDialog(parent, title, FileDialog.LOAD, folderMode);
|
FileDialog fileDialog = createFileDialog(evt, title, FileDialog.LOAD, folderMode);
|
||||||
fileDialog.setTitle(title);
|
fileDialog.setTitle(title);
|
||||||
fileDialog.setMultipleMode(multiSelection);
|
fileDialog.setMultipleMode(multiSelection);
|
||||||
|
|
||||||
|
@ -166,8 +167,8 @@ public class UserFiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, Object parent) {
|
public File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, ActionEvent evt) {
|
||||||
FileDialog fileDialog = createFileDialog(getWindow(parent), title, FileDialog.SAVE, folderMode);
|
FileDialog fileDialog = createFileDialog(evt, title, FileDialog.SAVE, folderMode);
|
||||||
fileDialog.setTitle(title);
|
fileDialog.setTitle(title);
|
||||||
fileDialog.setMultipleMode(false);
|
fileDialog.setMultipleMode(false);
|
||||||
if (defaultFile != null) {
|
if (defaultFile != null) {
|
||||||
|
@ -182,15 +183,15 @@ public class UserFiles {
|
||||||
return files.length > 0 ? files[0] : null;
|
return files.length > 0 ? files[0] : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FileDialog createFileDialog(Object parent, String title, int mode, boolean fileDialogForDirectories) {
|
public FileDialog createFileDialog(ActionEvent evt, String title, int mode, boolean fileDialogForDirectories) {
|
||||||
// By default, the AWT File Dialog lets you choose a file. Under certain circumstances, however, it may be proper for you to choose a directory instead. If that is the case, set this property to allow for directory selection in a file dialog.
|
// By default, the AWT File Dialog lets you choose a file. Under certain circumstances, however, it may be proper for you to choose a directory instead. If that is the case, set this property to allow for directory selection in a file dialog.
|
||||||
System.setProperty("apple.awt.fileDialogForDirectories", String.valueOf(fileDialogForDirectories));
|
System.setProperty("apple.awt.fileDialogForDirectories", String.valueOf(fileDialogForDirectories));
|
||||||
|
|
||||||
if (parent instanceof Frame) {
|
if (evt.getSource() instanceof Frame) {
|
||||||
return new FileDialog((Frame) parent, title, mode);
|
return new FileDialog((Frame) evt.getSource(), title, mode);
|
||||||
}
|
}
|
||||||
if (parent instanceof Dialog) {
|
if (evt.getSource() instanceof Dialog) {
|
||||||
return new FileDialog((Dialog) parent, title, mode);
|
return new FileDialog((Dialog) evt.getSource(), title, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
Frame[] frames = Frame.getFrames();
|
Frame[] frames = Frame.getFrames();
|
||||||
|
@ -203,7 +204,7 @@ public class UserFiles {
|
||||||
private final String KEY_NSOPENPANEL_BROKEN = "NSOPENPANEL_BROKEN";
|
private final String KEY_NSOPENPANEL_BROKEN = "NSOPENPANEL_BROKEN";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, Object parent) {
|
public List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, ActionEvent evt) {
|
||||||
// directly use NSOpenPanel for via Objective-C bridge for FILES_AND_DIRECTORIES mode
|
// directly use NSOpenPanel for via Objective-C bridge for FILES_AND_DIRECTORIES mode
|
||||||
if (folderMode && filter != null) {
|
if (folderMode && filter != null) {
|
||||||
// NSOpenPanel causes deadlocks on some machines
|
// NSOpenPanel causes deadlocks on some machines
|
||||||
|
@ -227,21 +228,20 @@ public class UserFiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
// default to AWT implementation
|
// default to AWT implementation
|
||||||
return AWT.showLoadDialogSelectFiles(folderMode, multiSelection, defaultFile, filter, title, parent);
|
return AWT.showLoadDialogSelectFiles(folderMode, multiSelection, defaultFile, filter, title, evt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, Object parent) {
|
public File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, ActionEvent evt) {
|
||||||
// default to AWT implementation
|
// default to AWT implementation
|
||||||
return AWT.showSaveDialogSelectFile(folderMode, defaultFile, title, parent);
|
return AWT.showSaveDialogSelectFile(folderMode, defaultFile, title, evt);
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
JavaFX {
|
JavaFX {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<File> showLoadDialogSelectFiles(final boolean folderMode, final boolean multiSelection, final File defaultFile, final ExtensionFileFilter filter, final String title, final Object parent) {
|
public List<File> showLoadDialogSelectFiles(final boolean folderMode, final boolean multiSelection, final File defaultFile, final ExtensionFileFilter filter, final String title, final ActionEvent evt) {
|
||||||
return runAndWait(new Callable<List<File>>() {
|
return runAndWait(new Callable<List<File>>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -294,7 +294,7 @@ public class UserFiles {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public File showSaveDialogSelectFile(final boolean folderMode, final File defaultFile, final String title, final Object parent) {
|
public File showSaveDialogSelectFile(final boolean folderMode, final File defaultFile, final String title, final ActionEvent evt) {
|
||||||
return runAndWait(new Callable<File>() {
|
return runAndWait(new Callable<File>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -329,9 +329,9 @@ public class UserFiles {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public abstract List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, Object parent);
|
public abstract List<File> showLoadDialogSelectFiles(boolean folderMode, boolean multiSelection, File defaultFile, ExtensionFileFilter filter, String title, ActionEvent evt);
|
||||||
|
|
||||||
public abstract File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, Object parent);
|
public abstract File showSaveDialogSelectFile(boolean folderMode, File defaultFile, String title, ActionEvent evt);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.awt.Graphics2D;
|
||||||
import java.awt.RenderingHints;
|
import java.awt.RenderingHints;
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
import java.awt.datatransfer.Transferable;
|
import java.awt.datatransfer.Transferable;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.geom.RoundRectangle2D;
|
import java.awt.geom.RoundRectangle2D;
|
||||||
|
@ -324,7 +325,7 @@ public class DropToUnlock extends JList<File> {
|
||||||
if (index >= 0 && list.getCellBounds(index, index).contains(evt.getPoint())) {
|
if (index >= 0 && list.getCellBounds(index, index).contains(evt.getPoint())) {
|
||||||
File folder = list.getModel().getElementAt(index);
|
File folder = list.getModel().getElementAt(index);
|
||||||
if (isLockedFolder(folder)) {
|
if (isLockedFolder(folder)) {
|
||||||
if (null != showOpenDialogSelectFolder(folder, "Grant Permission", getWindow(list))) {
|
if (null != showOpenDialogSelectFolder(folder, "Grant Permission", new ActionEvent(list, ActionEvent.ACTION_PERFORMED, "Grant"))) {
|
||||||
list.updateLockStatus(folder);
|
list.updateLockStatus(folder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ class ExtractTool extends Tool<TableModel> {
|
||||||
if (archives.isEmpty())
|
if (archives.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
File selectedFile = showOpenDialogSelectFolder(archives.get(0).getParentFile(), "Extract to ...", evt.getSource());
|
File selectedFile = showOpenDialogSelectFolder(archives.get(0).getParentFile(), "Extract to ...", evt);
|
||||||
if (selectedFile == null)
|
if (selectedFile == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -355,7 +355,7 @@ class BindingDialog extends JDialog {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
ExtensionFileFilter mediaFiles = combineFilter(VIDEO_FILES, AUDIO_FILES, SUBTITLE_FILES);
|
ExtensionFileFilter mediaFiles = combineFilter(VIDEO_FILES, AUDIO_FILES, SUBTITLE_FILES);
|
||||||
List<File> file = showLoadDialogSelectFiles(false, false, getMediaFile(), mediaFiles, (String) getValue(NAME), evt.getSource());
|
List<File> file = showLoadDialogSelectFiles(false, false, getMediaFile(), mediaFiles, (String) getValue(NAME), evt);
|
||||||
|
|
||||||
if (file.size() > 0) {
|
if (file.size() > 0) {
|
||||||
// update text field
|
// update text field
|
||||||
|
|
|
@ -682,7 +682,7 @@ public class FormatDialog extends JDialog {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
File selectedFolder = UserFiles.showOpenDialogSelectFolder(absoluteFolder, "Select Folder", evt.getSource());
|
File selectedFolder = UserFiles.showOpenDialogSelectFolder(absoluteFolder, "Select Folder", evt);
|
||||||
if (selectedFolder != null) {
|
if (selectedFolder != null) {
|
||||||
editor.setText(normalizePathSeparators(selectedFolder.getAbsolutePath()) + "/" + relativeFormat);
|
editor.setText(normalizePathSeparators(selectedFolder.getAbsolutePath()) + "/" + relativeFormat);
|
||||||
}
|
}
|
||||||
|
|
|
@ -520,7 +520,7 @@ class HistoryDialog extends JDialog {
|
||||||
|
|
||||||
// change directory option
|
// change directory option
|
||||||
if (selectedOption == Option.ChangeDirectory) {
|
if (selectedOption == Option.ChangeDirectory) {
|
||||||
directory = showOpenDialogSelectFolder(directory, selectedOption.toString(), evt.getSource());
|
directory = showOpenDialogSelectFolder(directory, selectedOption.toString(), evt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -158,7 +158,7 @@ class NamesListTransferablePolicy extends FileTransferablePolicy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getFileFilterExtensions() {
|
public List<String> getFileFilterExtensions() {
|
||||||
return asList(combineFilter(LIST_FILES, TORRENT_FILES, VERIFICATION_FILES).extensions());
|
return asList(combineFilter(VIDEO_FILES, SUBTITLE_FILES, AUDIO_FILES, LIST_FILES, TORRENT_FILES, VERIFICATION_FILES).extensions());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ import net.filebot.ResourceManager;
|
||||||
import net.filebot.ui.FileBotList;
|
import net.filebot.ui.FileBotList;
|
||||||
import net.filebot.ui.transfer.LoadAction;
|
import net.filebot.ui.transfer.LoadAction;
|
||||||
import net.filebot.ui.transfer.TransferablePolicy;
|
import net.filebot.ui.transfer.TransferablePolicy;
|
||||||
|
import net.filebot.util.ui.ActionPopup;
|
||||||
import net.miginfocom.swing.MigLayout;
|
import net.miginfocom.swing.MigLayout;
|
||||||
import ca.odell.glazedlists.EventList;
|
import ca.odell.glazedlists.EventList;
|
||||||
|
|
||||||
|
@ -79,10 +80,9 @@ class RenameList<E> extends FileBotList<E> {
|
||||||
getRemoveAction().setEnabled(true);
|
getRemoveAction().setEnabled(true);
|
||||||
|
|
||||||
buttonPanel = new JPanel(new MigLayout("insets 1.2mm, nogrid, fill", "align center"));
|
buttonPanel = new JPanel(new MigLayout("insets 1.2mm, nogrid, fill", "align center"));
|
||||||
|
|
||||||
buttonPanel.add(new JButton(downAction), "gap 10px");
|
buttonPanel.add(new JButton(downAction), "gap 10px");
|
||||||
buttonPanel.add(new JButton(upAction), "gap 0");
|
buttonPanel.add(new JButton(upAction), "gap 0");
|
||||||
buttonPanel.add(new JButton(loadAction), "gap 10px");
|
buttonPanel.add(createLoadButton(), "gap 10px");
|
||||||
|
|
||||||
add(buttonPanel, BorderLayout.SOUTH);
|
add(buttonPanel, BorderLayout.SOUTH);
|
||||||
|
|
||||||
|
@ -99,6 +99,28 @@ class RenameList<E> extends FileBotList<E> {
|
||||||
loadAction.putValue(LoadAction.TRANSFERABLE_POLICY, transferablePolicy);
|
loadAction.putValue(LoadAction.TRANSFERABLE_POLICY, transferablePolicy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private JButton createLoadButton() {
|
||||||
|
ActionPopup actionPopup = new ActionPopup("Load Files", ResourceManager.getIcon("action.load"));
|
||||||
|
actionPopup.add(new AbstractAction("Select Folders", ResourceManager.getIcon("tree.closed")) {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent evt) {
|
||||||
|
loadAction.actionPerformed(new ActionEvent(evt.getSource(), evt.getID(), evt.getActionCommand(), 0));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
actionPopup.add(new AbstractAction("Select Files", ResourceManager.getIcon("file.unknown")) {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent evt) {
|
||||||
|
loadAction.actionPerformed(new ActionEvent(evt.getSource(), evt.getID(), evt.getActionCommand(), ActionEvent.SHIFT_MASK));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
JButton b = new JButton(loadAction);
|
||||||
|
b.setComponentPopupMenu(actionPopup);
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
|
||||||
private final LoadAction loadAction = new LoadAction(null);
|
private final LoadAction loadAction = new LoadAction(null);
|
||||||
|
|
||||||
private final AbstractAction upAction = new AbstractAction(null, ResourceManager.getIcon("action.up")) {
|
private final AbstractAction upAction = new AbstractAction(null, ResourceManager.getIcon("action.up")) {
|
||||||
|
|
|
@ -276,7 +276,7 @@ class SubtitleDownloadComponent extends JComponent {
|
||||||
private void save(Object[] selection) {
|
private void save(Object[] selection) {
|
||||||
try {
|
try {
|
||||||
// multiple files
|
// multiple files
|
||||||
File outputFolder = showOpenDialogSelectFolder(null, "Save Subtitles", this);
|
File outputFolder = showOpenDialogSelectFolder(null, "Save Subtitles", new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "Save"));
|
||||||
if (outputFolder != null) {
|
if (outputFolder != null) {
|
||||||
for (Object object : selection) {
|
for (Object object : selection) {
|
||||||
MemoryFile file = (MemoryFile) object;
|
MemoryFile file = (MemoryFile) object;
|
||||||
|
@ -290,7 +290,6 @@ class SubtitleDownloadComponent extends JComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void export(Object[] selection) {
|
private void export(Object[] selection) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
File selectedOutputFolder = null;
|
File selectedOutputFolder = null;
|
||||||
|
|
||||||
|
@ -302,7 +301,7 @@ class SubtitleDownloadComponent extends JComponent {
|
||||||
// just use default values when we can't use a JFC with accessory component
|
// just use default values when we can't use a JFC with accessory component
|
||||||
if (Settings.isMacSandbox()) {
|
if (Settings.isMacSandbox()) {
|
||||||
// AWT
|
// AWT
|
||||||
selectedOutputFolder = showOpenDialogSelectFolder(null, "Export Subtitles", this);
|
selectedOutputFolder = showOpenDialogSelectFolder(null, "Export Subtitles", new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "Export"));
|
||||||
} else {
|
} else {
|
||||||
// Swing
|
// Swing
|
||||||
SubtitleFileChooser sfc = new SubtitleFileChooser();
|
SubtitleFileChooser sfc = new SubtitleFileChooser();
|
||||||
|
|
|
@ -130,7 +130,7 @@ abstract class SubtitleDropTarget extends JButton {
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
// collect media file extensions (video and subtitle files)
|
// collect media file extensions (video and subtitle files)
|
||||||
List<File> files = showLoadDialogSelectFiles(true, true, null, combineFilter(VIDEO_FILES, SUBTITLE_FILES), "Select Video Folder", evt.getSource());
|
List<File> files = showLoadDialogSelectFiles(true, true, null, combineFilter(VIDEO_FILES, SUBTITLE_FILES), "Select Video Folder", evt);
|
||||||
|
|
||||||
if (files.size() > 0) {
|
if (files.size() > 0) {
|
||||||
if (getDropAction(files) != DropAction.Cancel) {
|
if (getDropAction(files) != DropAction.Cancel) {
|
||||||
|
|
|
@ -226,7 +226,7 @@ public class SubtitleUploadDialog extends JDialog {
|
||||||
SubtitleMappingTableModel model = (SubtitleMappingTableModel) table.getModel();
|
SubtitleMappingTableModel model = (SubtitleMappingTableModel) table.getModel();
|
||||||
SubtitleMapping mapping = model.getData()[table.convertRowIndexToModel(row)];
|
SubtitleMapping mapping = model.getData()[table.convertRowIndexToModel(row)];
|
||||||
|
|
||||||
List<File> files = showLoadDialogSelectFiles(false, false, mapping.getSubtitle().getParentFile(), VIDEO_FILES, "Select Video File", getWindow(SubtitleUploadDialog.this));
|
List<File> files = showLoadDialogSelectFiles(false, false, mapping.getSubtitle().getParentFile(), VIDEO_FILES, "Select Video File", new ActionEvent(table, ActionEvent.ACTION_PERFORMED, "Select"));
|
||||||
if (files.size() > 0) {
|
if (files.size() > 0) {
|
||||||
mapping.setVideo(files.get(0));
|
mapping.setVideo(files.get(0));
|
||||||
mapping.setState(SubtitleMapping.Status.CheckPending);
|
mapping.setState(SubtitleMapping.Status.CheckPending);
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class LoadAction extends AbstractAction {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<File> files = showLoadDialogSelectFiles(true, true, getDefaultFile(), getFileFilter(transferablePolicy), (String) getValue(Action.NAME), evt.getSource());
|
List<File> files = showLoadDialogSelectFiles(true, true, getDefaultFile(), getFileFilter(transferablePolicy), (String) getValue(Action.NAME), evt);
|
||||||
if (files.isEmpty()) {
|
if (files.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class SaveAction extends AbstractAction {
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
try {
|
try {
|
||||||
if (canExport()) {
|
if (canExport()) {
|
||||||
File file = showSaveDialogSelectFile(false, getDefaultFile(), (String) getValue(Action.NAME), evt.getSource());
|
File file = showSaveDialogSelectFile(false, getDefaultFile(), (String) getValue(Action.NAME), evt);
|
||||||
|
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
export(file);
|
export(file);
|
||||||
|
|
Loading…
Reference in New Issue