- #1649 Moving SWF files (and bundles) up and down
- Moving tags up and down
(context menuitem + ALT up/down shortcut)
This commit is contained in:
Jindra Petřík
2022-11-10 18:26:55 +01:00
parent e6bd00d2a0
commit c1a998b117
10 changed files with 269 additions and 21 deletions

View File

@@ -399,6 +399,63 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
private boolean clipboardCut = false;
private void handleTreeKeyReleased(KeyEvent e) {
AbstractTagTree tree = (AbstractTagTree) e.getSource();
if ((e.getKeyCode() == KeyEvent.VK_UP
|| e.getKeyCode() == KeyEvent.VK_DOWN)
&& e.isAltDown() && !e.isControlDown() && !e.isShiftDown()) {
TreePath paths[] = tree.getSelectionPaths();
if (paths == null || paths.length != 1) {
return;
}
TreeItem item = (TreeItem) paths[0].getLastPathComponent();
if (e.getKeyCode() == KeyEvent.VK_UP) {
contextPopupMenu.moveUpDown(item, true);
}
if (e.getKeyCode() == KeyEvent.VK_DOWN) {
contextPopupMenu.moveUpDown(item, false);
}
}
}
public void moveSwfListUpDown(TreeItem item, boolean up) {
SWFList swfList = null;
if (item instanceof SWF) {
SWF swf = (SWF) item;
if (swf.swfList != null && !swf.swfList.isBundle() && swf.swfList.size() == 1) {
swfList = swf.swfList;
} else {
return;
}
} else if (item instanceof SWFList) {
swfList = (SWFList) item;
} else {
return;
}
int index = swfs.indexOf(swfList);
List<List<String>> expandedTagTree = View.getExpandedNodes(tagTree);
List<List<String>> expandedTagListTree = View.getExpandedNodes(tagListTree);
if (up) {
if (index <= 0) {
return;
}
swfs.move(index, index - 1);
} else {
if (index < 0 || index >= swfs.size() - 1) {
return;
}
swfs.move(index, index + 2);
}
View.expandTreeNodes(tagTree, expandedTagTree);
View.expandTreeNodes(tagListTree, expandedTagListTree);
TreePath path = getCurrentTree().getModel().getTreePath(item);
getCurrentTree().setSelectionPath(path);
getCurrentTree().scrollPathToVisible(path);
repaintTree();
}
private void handleTreeKeyPressed(KeyEvent e) {
AbstractTagTree tree = (AbstractTagTree) e.getSource();
if ((e.getKeyCode() == 'C' || e.getKeyCode() == 'X') && (e.isControlDown())) {
@@ -943,6 +1000,11 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
showContentPanelCard(WELCOME_PANEL);
tagTree.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
handleTreeKeyReleased(e);
}
@Override
public void keyPressed(KeyEvent e) {
if ((e.getKeyCode() == 'F') && (e.isControlDown())) {
@@ -984,6 +1046,11 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
}
});
tagListTree.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
handleTreeKeyReleased(e);
}
@Override
public void keyPressed(KeyEvent e) {
handleTreeKeyPressed(e);