mirror of
https://github.com/mitb-archive/filebot
synced 2024-12-23 16:28:51 -05:00
Improved UI
This commit is contained in:
parent
8c8695d528
commit
7e272915e5
@ -18,6 +18,7 @@ import java.beans.PropertyChangeListener;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CancellationException;
|
import java.util.concurrent.CancellationException;
|
||||||
@ -40,16 +41,6 @@ import javax.swing.ListModel;
|
|||||||
import javax.swing.SwingUtilities;
|
import javax.swing.SwingUtilities;
|
||||||
import javax.swing.border.LineBorder;
|
import javax.swing.border.LineBorder;
|
||||||
|
|
||||||
import net.filebot.ResourceManager;
|
|
||||||
import net.filebot.Settings;
|
|
||||||
import net.filebot.subtitle.SubtitleFormat;
|
|
||||||
import net.filebot.ui.subtitle.SubtitlePackage.Download.Phase;
|
|
||||||
import net.filebot.ui.transfer.DefaultTransferHandler;
|
|
||||||
import net.filebot.util.ExceptionUtilities;
|
|
||||||
import net.filebot.util.ui.ListView;
|
|
||||||
import net.filebot.util.ui.SwingUI;
|
|
||||||
import net.filebot.vfs.MemoryFile;
|
|
||||||
import net.miginfocom.swing.MigLayout;
|
|
||||||
import ca.odell.glazedlists.BasicEventList;
|
import ca.odell.glazedlists.BasicEventList;
|
||||||
import ca.odell.glazedlists.EventList;
|
import ca.odell.glazedlists.EventList;
|
||||||
import ca.odell.glazedlists.FilterList;
|
import ca.odell.glazedlists.FilterList;
|
||||||
@ -62,6 +53,17 @@ import ca.odell.glazedlists.matchers.MatcherEditor;
|
|||||||
import ca.odell.glazedlists.swing.DefaultEventListModel;
|
import ca.odell.glazedlists.swing.DefaultEventListModel;
|
||||||
import ca.odell.glazedlists.swing.DefaultEventSelectionModel;
|
import ca.odell.glazedlists.swing.DefaultEventSelectionModel;
|
||||||
import ca.odell.glazedlists.swing.TextComponentMatcherEditor;
|
import ca.odell.glazedlists.swing.TextComponentMatcherEditor;
|
||||||
|
import net.filebot.ResourceManager;
|
||||||
|
import net.filebot.Settings;
|
||||||
|
import net.filebot.UserFiles;
|
||||||
|
import net.filebot.subtitle.SubtitleFormat;
|
||||||
|
import net.filebot.ui.subtitle.SubtitlePackage.Download.Phase;
|
||||||
|
import net.filebot.ui.transfer.DefaultTransferHandler;
|
||||||
|
import net.filebot.util.ExceptionUtilities;
|
||||||
|
import net.filebot.util.ui.ListView;
|
||||||
|
import net.filebot.util.ui.SwingUI;
|
||||||
|
import net.filebot.vfs.MemoryFile;
|
||||||
|
import net.miginfocom.swing.MigLayout;
|
||||||
|
|
||||||
class SubtitleDownloadComponent extends JComponent {
|
class SubtitleDownloadComponent extends JComponent {
|
||||||
|
|
||||||
@ -300,7 +302,7 @@ class SubtitleDownloadComponent extends JComponent {
|
|||||||
// just use default values when we can't use a JFC with accessory component (also Swing OSX LaF doesn't seem to support JFileChooser::setAccessory)
|
// just use default values when we can't use a JFC with accessory component (also Swing OSX LaF doesn't seem to support JFileChooser::setAccessory)
|
||||||
if (Settings.isMacApp()) {
|
if (Settings.isMacApp()) {
|
||||||
// COCOA || AWT
|
// COCOA || AWT
|
||||||
selectedOutputFolder = showOpenDialogSelectFolder(null, "Export Subtitles to folder", new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "Export"));
|
selectedOutputFolder = showOpenDialogSelectFolder(null, "Export Subtitles to Folder (SubRip / UTF-8)", new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "Export"));
|
||||||
} else {
|
} else {
|
||||||
// Swing
|
// Swing
|
||||||
SubtitleFileChooser sfc = new SubtitleFileChooser();
|
SubtitleFileChooser sfc = new SubtitleFileChooser();
|
||||||
@ -314,6 +316,8 @@ class SubtitleDownloadComponent extends JComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (selectedOutputFolder != null) {
|
if (selectedOutputFolder != null) {
|
||||||
|
List<File> output = new ArrayList<File>();
|
||||||
|
|
||||||
for (Object object : selection) {
|
for (Object object : selection) {
|
||||||
MemoryFile file = (MemoryFile) object;
|
MemoryFile file = (MemoryFile) object;
|
||||||
|
|
||||||
@ -323,7 +327,11 @@ class SubtitleDownloadComponent extends JComponent {
|
|||||||
|
|
||||||
SubtitleFormat targetFormat = selectedFormat.getFilter().accept(file.getName()) ? null : selectedFormat; // check if format conversion is necessary
|
SubtitleFormat targetFormat = selectedFormat.getFilter().accept(file.getName()) ? null : selectedFormat; // check if format conversion is necessary
|
||||||
writeFile(exportSubtitles(file, targetFormat, selectedTimingOffset, selectedEncoding), destination);
|
writeFile(exportSubtitles(file, targetFormat, selectedTimingOffset, selectedEncoding), destination);
|
||||||
|
output.add(destination);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// reveal exported files
|
||||||
|
UserFiles.revealFiles(output);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.log(Level.WARNING, e.getMessage(), e);
|
log.log(Level.WARNING, e.getMessage(), e);
|
||||||
@ -439,38 +447,12 @@ class SubtitleDownloadComponent extends JComponent {
|
|||||||
list.setSelectedIndex(index);
|
list.setSelectedIndex(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Object[] selection = list.getSelectedValuesList().toArray();
|
Object[] selection = list.getSelectedValuesList().toArray();
|
||||||
|
|
||||||
if (selection.length > 0) {
|
if (selection.length > 0) {
|
||||||
JPopupMenu contextMenu = new JPopupMenu();
|
JPopupMenu contextMenu = new JPopupMenu();
|
||||||
|
contextMenu.add(newAction("Preview", ResourceManager.getIcon("action.find"), evt -> open(selection))); // Open
|
||||||
// Open
|
contextMenu.add(newAction("Save As...", ResourceManager.getIcon("action.save"), evt -> save(selection))); // Save As...
|
||||||
contextMenu.add(new AbstractAction("Preview", ResourceManager.getIcon("action.find")) {
|
contextMenu.add(newAction("Export...", ResourceManager.getIcon("action.export"), evt -> export(selection))); // Export...
|
||||||
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent evt) {
|
|
||||||
open(selection);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Save As...
|
|
||||||
contextMenu.add(new AbstractAction("Save As...", ResourceManager.getIcon("action.save")) {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent evt) {
|
|
||||||
save(selection);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Export...
|
|
||||||
contextMenu.add(new AbstractAction("Export...", ResourceManager.getIcon("action.export")) {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent evt) {
|
|
||||||
export(selection);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
contextMenu.show(e.getComponent(), e.getX(), e.getY());
|
contextMenu.show(e.getComponent(), e.getX(), e.getY());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user