* use ALT+DELETE keybinding to only delete items from one of the stacks, rather then a line from both
This commit is contained in:
parent
a96a205393
commit
da56397ce9
|
@ -50,7 +50,9 @@ public class FileBotList<E> extends JComponent {
|
||||||
getRemoveAction().setEnabled(false);
|
getRemoveAction().setEnabled(false);
|
||||||
|
|
||||||
TunedUtilities.installAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), removeHook);
|
TunedUtilities.installAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), removeHook);
|
||||||
|
TunedUtilities.installAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, KeyEvent.ALT_DOWN_MASK), removeHook);
|
||||||
TunedUtilities.installAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), removeHook);
|
TunedUtilities.installAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), removeHook);
|
||||||
|
TunedUtilities.installAction(this, KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, KeyEvent.ALT_DOWN_MASK), removeHook);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,7 @@ import net.sourceforge.filebot.web.SortOrder;
|
||||||
import net.sourceforge.tuned.PreferencesMap.PreferencesEntry;
|
import net.sourceforge.tuned.PreferencesMap.PreferencesEntry;
|
||||||
import net.sourceforge.tuned.ui.ActionPopup;
|
import net.sourceforge.tuned.ui.ActionPopup;
|
||||||
import net.sourceforge.tuned.ui.LoadingOverlayPane;
|
import net.sourceforge.tuned.ui.LoadingOverlayPane;
|
||||||
|
import ca.odell.glazedlists.EventList;
|
||||||
import ca.odell.glazedlists.ListSelection;
|
import ca.odell.glazedlists.ListSelection;
|
||||||
import ca.odell.glazedlists.swing.EventSelectionModel;
|
import ca.odell.glazedlists.swing.EventSelectionModel;
|
||||||
|
|
||||||
|
@ -140,18 +141,23 @@ public class RenamePanel extends JComponent {
|
||||||
JList list = ((RenameList) e.getSource()).getListComponent();
|
JList list = ((RenameList) e.getSource()).getListComponent();
|
||||||
int index = list.getSelectedIndex();
|
int index = list.getSelectedIndex();
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
if (isShiftDown(e)) {
|
if (isShiftOrAltDown(e)) {
|
||||||
((RenameList) e.getSource()).remove(index);
|
EventList eventList = ((RenameList) e.getSource()).getModel();
|
||||||
|
if (index < eventList.size()) {
|
||||||
|
((RenameList) e.getSource()).getModel().remove(index);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
renameModel.matches().remove(index);
|
renameModel.matches().remove(index);
|
||||||
}
|
}
|
||||||
int maxIndex = list.getModel().getSize() - 1;
|
int maxIndex = ((RenameList) e.getSource()).getModel().size() - 1;
|
||||||
if (index > maxIndex) {
|
if (index > maxIndex) {
|
||||||
index = maxIndex;
|
index = maxIndex;
|
||||||
}
|
}
|
||||||
|
if (index >= 0) {
|
||||||
list.setSelectedIndex(index);
|
list.setSelectedIndex(index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
namesList.setRemoveAction(removeAction);
|
namesList.setRemoveAction(removeAction);
|
||||||
filesList.setRemoveAction(removeAction);
|
filesList.setRemoveAction(removeAction);
|
||||||
|
@ -396,7 +402,7 @@ public class RenamePanel extends JComponent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent evt) {
|
public void actionPerformed(ActionEvent evt) {
|
||||||
if ((evt.getModifiers() & ActionEvent.SHIFT_MASK) != 0) {
|
if (isShiftOrAltDown(evt)) {
|
||||||
renameModel.files().clear();
|
renameModel.files().clear();
|
||||||
} else {
|
} else {
|
||||||
renameModel.clear();
|
renameModel.clear();
|
||||||
|
@ -524,7 +530,7 @@ public class RenamePanel extends JComponent {
|
||||||
private final List<File> remainingFiles = new LinkedList<File>(renameModel.files());
|
private final List<File> remainingFiles = new LinkedList<File>(renameModel.files());
|
||||||
private final SortOrder order = SortOrder.forName(persistentPreferredEpisodeOrder.getValue());
|
private final SortOrder order = SortOrder.forName(persistentPreferredEpisodeOrder.getValue());
|
||||||
private final Locale locale = new Locale(persistentPreferredLanguage.getValue());
|
private final Locale locale = new Locale(persistentPreferredLanguage.getValue());
|
||||||
private final boolean autodetection = !isShiftDown(evt); // skip name auto-detection if SHIFT is pressed
|
private final boolean autodetection = !isShiftOrAltDown(evt); // skip name auto-detection if SHIFT is pressed
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -79,8 +79,8 @@ public final class TunedUtilities {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static boolean isShiftDown(ActionEvent evt) {
|
public static boolean isShiftOrAltDown(ActionEvent evt) {
|
||||||
return checkModifiers(evt.getModifiers(), ActionEvent.SHIFT_MASK);
|
return checkModifiers(evt.getModifiers(), ActionEvent.SHIFT_MASK) || checkModifiers(evt.getModifiers(), ActionEvent.ALT_MASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue