mirror of
https://github.com/mitb-archive/filebot
synced 2025-03-09 22:09:47 -04:00
Refactor Presets and enable keyboard shortcuts for Presets 1..9 via number keys
This commit is contained in:
parent
ab2aeee4f1
commit
08c6382839
@ -24,9 +24,11 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.CancellationException;
|
import java.util.concurrent.CancellationException;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
@ -242,7 +244,7 @@ public class RenamePanel extends JComponent {
|
|||||||
filesList.getButtonPanel().add(createImageButton(openHistoryAction), "gap indent");
|
filesList.getButtonPanel().add(createImageButton(openHistoryAction), "gap indent");
|
||||||
|
|
||||||
// create macros popup
|
// create macros popup
|
||||||
JButton presetsButton = createImageButton(new ShowPresetsPopupAction("Presets", ResourceManager.getIcon("action.script")));
|
JButton presetsButton = createImageButton(new ShowPresetsPopupAction());
|
||||||
filesList.getButtonPanel().add(presetsButton, "gap 0");
|
filesList.getButtonPanel().add(presetsButton, "gap 0");
|
||||||
|
|
||||||
// show popup on actionPerformed only when names list is empty
|
// show popup on actionPerformed only when names list is empty
|
||||||
@ -346,18 +348,21 @@ public class RenamePanel extends JComponent {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
// map 1..9 number keys to presets
|
// map 1..9 number keys to presets
|
||||||
try {
|
IntStream.rangeClosed(1, 9).forEach(i -> {
|
||||||
Preset[] presets = persistentPresets.values().toArray(new Preset[0]);
|
installAction(this, WHEN_IN_FOCUSED_WINDOW, getKeyStroke(Character.forDigit(i, 10), 0), newAction("Preset " + i, evt -> {
|
||||||
|
try {
|
||||||
|
Optional<Preset> preset = persistentPresets.values().stream().skip(i - 1).findFirst();
|
||||||
|
|
||||||
for (int i = 0; i < presets.length && i < 9; i++) {
|
if (preset.isPresent()) {
|
||||||
Preset preset = presets[i];
|
new ApplyPresetAction(preset.get()).actionPerformed(evt);
|
||||||
int key = Character.forDigit(i + 1, 10);
|
} else {
|
||||||
|
new ShowPresetsPopupAction().actionPerformed(evt);
|
||||||
installAction(this, WHEN_IN_FOCUSED_WINDOW, getKeyStroke(key, 0), newAction(preset.getName(), new ApplyPresetAction(preset)::actionPerformed));
|
}
|
||||||
}
|
} catch (Exception e) {
|
||||||
} catch (Exception e) {
|
debug.log(Level.WARNING, e, e::getMessage);
|
||||||
debug.log(Level.WARNING, e::toString);
|
}
|
||||||
}
|
}));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isMatchModeStrict() {
|
private boolean isMatchModeStrict() {
|
||||||
@ -643,7 +648,6 @@ public class RenamePanel extends JComponent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
// display popup below component
|
|
||||||
JComponent source = (JComponent) e.getSource();
|
JComponent source = (JComponent) e.getSource();
|
||||||
source.getComponentPopupMenu().show(source, -3, source.getHeight() + 4);
|
source.getComponentPopupMenu().show(source, -3, source.getHeight() + 4);
|
||||||
}
|
}
|
||||||
@ -651,14 +655,13 @@ public class RenamePanel extends JComponent {
|
|||||||
|
|
||||||
private class ShowPresetsPopupAction extends AbstractAction {
|
private class ShowPresetsPopupAction extends AbstractAction {
|
||||||
|
|
||||||
public ShowPresetsPopupAction(String name, Icon icon) {
|
public ShowPresetsPopupAction() {
|
||||||
super(name, icon);
|
super("Presets", ResourceManager.getIcon("action.script"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
// display popup below component
|
JComponent source = (JComponent) evt.getSource();
|
||||||
JComponent source = (JComponent) e.getSource();
|
|
||||||
createPresetsPopup().show(source, -3, source.getHeight() + 4);
|
createPresetsPopup().show(source, -3, source.getHeight() + 4);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user