From 51e39ee26eee1ab41345601cdb9708d65d47f672 Mon Sep 17 00:00:00 2001 From: Collin Smith Date: Fri, 16 Jul 2021 11:22:38 -0700 Subject: [PATCH] Added cli argument to pass initial file to MPQ Viewer --- .../main/java/com/riiablo/mpq/MPQViewer.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tools/mpq-viewer/src/main/java/com/riiablo/mpq/MPQViewer.java b/tools/mpq-viewer/src/main/java/com/riiablo/mpq/MPQViewer.java index cec03f4d..2ff48d5c 100644 --- a/tools/mpq-viewer/src/main/java/com/riiablo/mpq/MPQViewer.java +++ b/tools/mpq-viewer/src/main/java/com/riiablo/mpq/MPQViewer.java @@ -29,6 +29,9 @@ import java.util.Comparator; import java.util.EnumMap; import java.util.Objects; import java.util.SortedMap; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; import org.apache.commons.collections4.Trie; import org.apache.commons.collections4.trie.PatriciaTrie; import org.apache.commons.io.FilenameUtils; @@ -108,6 +111,8 @@ public class MPQViewer { } private static class Client extends Tool { + String initialFile; + Preferences prefs; Stage stage; VisTable root; @@ -127,6 +132,7 @@ public class MPQViewer { MenuItem address_copy; MenuItem address_copyFixed; MenuItem address_paste; + ClickListener address_paste_clickListener; VisTextField fileTreeFilter; Trie fileTreeNodes; @@ -225,6 +231,24 @@ public class MPQViewer { ShapeRenderer shapes; Texture DEFAULT_PALETTE; + @Override + protected void createCliOptions(Options options) { + super.createCliOptions(options); + options.addOption(Option + .builder("f") + .longOpt("file") + .desc("initial file to open") + .hasArg() + .argName("path") + .build()); + } + + @Override + protected void handleCliOptions(String cmd, Options options, CommandLine cli) { + super.handleCliOptions(cmd, options, cli); + initialFile = cli.getOptionValue("file"); + } + @Override public void create() { Gdx.app.setLogLevel(Logger.DEBUG); @@ -893,7 +917,7 @@ public class MPQViewer { }); }}); addItem(address_paste = new MenuItem("Paste") {{ - addListener(new ClickListener() { + addListener(address_paste_clickListener = new ClickListener() { @Override public void clicked(InputEvent event, float x, float y) { if (Riiablo.mpqs == null) { @@ -986,6 +1010,12 @@ public class MPQViewer { if (home != null && !home.isEmpty()) { loadMPQs(Gdx.files.absolute(home)); } + + if (initialFile != null) { + Gdx.app.debug(TAG, "setting clipboard contents to " + initialFile); + Gdx.app.getClipboard().setContents(initialFile); + address_paste_clickListener.clicked(null, -1, -1); + } } @Override