diff --git a/CHANGELOG.md b/CHANGELOG.md index b4d2ec232..18368d4dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ All notable changes to this project will be documented in this file. - AS3 direct editation - proper use conver/coerce instruction - AS3 direct editation - use coerce_f for float values - [#2645] Windows MSI installer - Cannot change install directory +- Long delay before switching critical status bar titles + (Causing many actions to look slow - for example Debug listening) ### Changed - Icon of Debug listen action from ear to phone receiver diff --git a/src/com/jpexs/decompiler/flash/gui/DebuggerSession.java b/src/com/jpexs/decompiler/flash/gui/DebuggerSession.java index f0393e15f..770433bbf 100644 --- a/src/com/jpexs/decompiler/flash/gui/DebuggerSession.java +++ b/src/com/jpexs/decompiler/flash/gui/DebuggerSession.java @@ -158,7 +158,7 @@ public class DebuggerSession { toAddBPointMap = breakpoints; this.handler = handler; - Main.startWork(AppStrings.translate("work.debugging"), null); + Main.startWork(AppStrings.translate("work.debugging"), null, true); synchronized (this) { paused = false; diff --git a/src/com/jpexs/decompiler/flash/gui/Main.java b/src/com/jpexs/decompiler/flash/gui/Main.java index 09fb9fd9e..791a757b3 100644 --- a/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/src/com/jpexs/decompiler/flash/gui/Main.java @@ -523,7 +523,7 @@ public class Main { }; mainFrame.getMenu().updateComponents(); - Main.startWork(title + "...", runWorker); + Main.startWork(title + "...", runWorker, true); runWorker.execute(); } @@ -588,7 +588,7 @@ public class Main { @Override public void handleEvent(String event, Object data) { if (event.equals("inject_debuginfo")) { - startWork(AppStrings.translate("work.injecting_debuginfo") + "..." + (String) data, swfPrepareWorker); + startWork(AppStrings.translate("work.injecting_debuginfo") + "..." + (String) data, swfPrepareWorker, false); } } }; @@ -675,7 +675,7 @@ public class Main { @Override public void handleEvent(String event, Object data) { if (event.equals("generate_swd")) { - startWork(AppStrings.translate("work.generating_swd") + "..." + (String) data, swfPrepareWorker); + startWork(AppStrings.translate("work.generating_swd") + "..." + (String) data, swfPrepareWorker, false); } } }); @@ -950,7 +950,7 @@ public class Main { Main.stopWork(); Main.startWork(AppStrings.translate("work.debugging.start") + "...", null, true); Main.startDebugger(); - Main.startWork(AppStrings.translate("work.debugging.listening"), null); + Main.startWork(AppStrings.translate("work.debugging.listening"), null, true); mainFrame.getMenu().hilightPath("/debugging"); } @@ -1021,7 +1021,7 @@ public class Main { } }; - Main.startWork(AppStrings.translate("work.debugging.instrumenting"), instrumentWorker); + Main.startWork(AppStrings.translate("work.debugging.instrumenting"), instrumentWorker, true); instrumentWorker.execute(); } } @@ -1223,7 +1223,7 @@ public class Main { } public static void continueWork(String name, final int percent) { - startWork(name, percent, mainFrame.getPanel().getCurrentWorker()); + startWork(name, percent, mainFrame.getPanel().getCurrentWorker(), false); } private static long lastTimeStartWork = 0L; @@ -1251,23 +1251,15 @@ public class Main { } }, 5000, 5000); } - - public static void startWork(String name, CancellableWorker worker) { - startWork(name, -1, worker, false); + + public static void startWork(String name, CancellableWorker worker, boolean highPriority) { + startWork(name, -1, worker, highPriority); } - - public static void startWork(String name, CancellableWorker worker, boolean force) { - startWork(name, -1, worker, force); - } - - public static void startWork(final String name, final int percent, final CancellableWorker worker) { - startWork(name, percent, worker, false); - } - - public static void startWork(final String name, final int percent, final CancellableWorker worker, boolean force) { + + public static void startWork(final String name, final int percent, final CancellableWorker worker, boolean highPriority) { working = true; long nowTime = System.currentTimeMillis(); - if (!force && mainFrame != null && nowTime < lastTimeStartWork + 1000) { + if (!highPriority && mainFrame != null && nowTime < lastTimeStartWork + 1000) { mainFrame.getPanel().setWorkStatusHidden(name, worker); return; } @@ -1366,7 +1358,7 @@ public class Main { dummySwf.addTag(doABC2Tag); doABC2Tag.setTimelined(dummySwf); dummySwf.clearModified(); - startWork(AppStrings.translate("work.reading.abc"), this); + startWork(AppStrings.translate("work.reading.abc"), this, true); ABC abc = new ABC(new ABCInputStream(new MemoryInputStream(Helper.readStream(is))), dummySwf, doABC2Tag, file, fileTitle); doABC2Tag.setABC(abc); return abc; @@ -1396,13 +1388,13 @@ public class Main { SWF swf = new SWF(stream, null, streamEntry.getKey(), new ProgressListener() { @Override public void progress(int p) { - startWork(AppStrings.translate("work.reading.swf"), p, worker); + startWork(AppStrings.translate("work.reading.swf"), p, worker, false); } @Override public void status(String status) { if ("renaming.identifiers".equals(status)) { - startWork(AppStrings.translate("work.renaming.identifiers"), worker); + startWork(AppStrings.translate("work.renaming.identifiers"), worker, true); } } }, Configuration.parallelSpeedUp.get(), charset); @@ -1438,7 +1430,7 @@ public class Main { dummySwf.addTag(doABC2Tag); doABC2Tag.setTimelined(dummySwf); dummySwf.clearModified(); - startWork(AppStrings.translate("work.reading.abc"), this); + startWork(AppStrings.translate("work.reading.abc"), this, true); ABC abc = new ABC(new ABCInputStream(new MemoryInputStream(Helper.readStream(is))), dummySwf, doABC2Tag, file, fileTitle); doABC2Tag.setABC(abc); return abc; @@ -1492,13 +1484,13 @@ public class Main { SWF swf = new SWF(is, file, fileTitle, new ProgressListener() { @Override public void progress(int p) { - startWork(AppStrings.translate("work.reading.swf"), p, worker); + startWork(AppStrings.translate("work.reading.swf"), p, worker, false); } @Override public void status(String status) { if ("renaming.identifiers".equals(status)) { - startWork(AppStrings.translate("work.renaming.identifiers"), worker); + startWork(AppStrings.translate("work.renaming.identifiers"), worker, true); } } }, Configuration.parallelSpeedUp.get(), false, true, new UrlResolver() { @@ -1779,13 +1771,13 @@ public class Main { continueWork(AppStrings.translate("work.deobfuscating") + "..." + (String) data); } if (event.equals("deobfuscate_pcode")) { - startWork(AppStrings.translate("work.deobfuscating_pcode") + "..." + (String) data, deobfuscatePCodeWorker); + startWork(AppStrings.translate("work.deobfuscating_pcode") + "..." + (String) data, deobfuscatePCodeWorker, false); } if (event.equals("rename")) { continueWork(AppStrings.translate("work.renaming") + "..." + (String) data); } if (event.equals("importing_as")) { - startWork(AppStrings.translate("work.importing_as") + "..." + (String) data, importWorker); + startWork(AppStrings.translate("work.importing_as") + "..." + (String) data, importWorker,false); } if (event.equals("uninitializedClassFields")) { continueWork(AppStrings.translate("work.decompiling") + "..." + (String) data); @@ -1986,7 +1978,7 @@ public class Main { //Logger.getLogger(Main.class.getName()).log(Level.FINE, "Loading source info {0}", sourceInfo.getFile()); OpenableList openables = null; try { - Main.startWork(AppStrings.translate("work.reading.swf") + "...", null); + Main.startWork(AppStrings.translate("work.reading.swf") + "...", null, true); try { openables = parseOpenable(sourceInfo); } catch (ExecutionException ex) { @@ -2029,7 +2021,7 @@ public class Main { try { View.execInEventDispatch(() -> { ensureMainFrame(); - Main.startWork(AppStrings.translate("work.creatingwindow") + "...", null); + Main.startWork(AppStrings.translate("work.creatingwindow") + "...", null, true); if (openables1.isEmpty()) { return; } @@ -2077,7 +2069,7 @@ public class Main { View.execInEventDispatch(() -> { if (mainFrame == null) { ensureMainFrame(); - Main.startWork(AppStrings.translate("work.creatingwindow") + "...", null); + Main.startWork(AppStrings.translate("work.creatingwindow") + "...", null, true); } loadingDialog.setVisible(false); diff --git a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java index 586d65652..afc470896 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/MainFrameMenu.java @@ -1775,7 +1775,7 @@ public abstract class MainFrameMenu implements MenuBuilder { DebuggerCommands cmd = Main.getCurrentDebugSession().getCommands(); mainFrame.getPanel().clearDebuggerColors(); - Main.startWork(AppStrings.translate("work.debugging") + "...", null); + Main.startWork(AppStrings.translate("work.debugging") + "...", null, true); cmd.stepOver(); } catch (IOException ex) { @@ -1789,7 +1789,7 @@ public abstract class MainFrameMenu implements MenuBuilder { try { DebuggerCommands cmd = Main.getCurrentDebugSession().getCommands(); mainFrame.getPanel().clearDebuggerColors(); - Main.startWork(AppStrings.translate("work.debugging") + "...", null); + Main.startWork(AppStrings.translate("work.debugging") + "...", null, true); cmd.stepInto(); } catch (IOException ex) { @@ -1804,7 +1804,7 @@ public abstract class MainFrameMenu implements MenuBuilder { try { DebuggerCommands cmd = Main.getCurrentDebugSession().getCommands(); mainFrame.getPanel().clearDebuggerColors(); - Main.startWork(AppStrings.translate("work.debugging") + "...", null); + Main.startWork(AppStrings.translate("work.debugging") + "...", null, true); cmd.stepOut(); } catch (IOException ex) { Main.getCurrentDebugSession().disconnect(); @@ -1818,7 +1818,7 @@ public abstract class MainFrameMenu implements MenuBuilder { try { DebuggerCommands cmd = Main.getCurrentDebugSession().getCommands(); mainFrame.getPanel().clearDebuggerColors(); - Main.startWork(AppStrings.translate("work.debugging") + "...", null); + Main.startWork(AppStrings.translate("work.debugging") + "...", null, true); cmd.sendContinue(); } catch (IOException ex) { Main.getCurrentDebugSession().disconnect(); diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index 6c0973547..93792001c 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -3465,7 +3465,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.renaming.identifiers") + "...", this); + Main.startWork(translate("work.renaming.identifiers") + "...", this, true); } @Override @@ -3514,7 +3514,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.renaming") + "...", this); + Main.startWork(translate("work.renaming") + "...", this, true); } @Override @@ -3542,7 +3542,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.renaming") + "...", this); + Main.startWork(translate("work.renaming") + "...", this, true); } @Override @@ -3636,7 +3636,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override public void status(String status) { - Main.startWork(translate("work.exporting.flashDevelop") + "..." + status, w); + Main.startWork(translate("work.exporting.flashDevelop") + "..." + status, w, false); } }; EventListener evl = swf.getExportEventListener(); @@ -3653,7 +3653,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.exporting.flashDevelop") + "...", this); + Main.startWork(translate("work.exporting.flashDevelop") + "...", this, true); } @Override @@ -3709,7 +3709,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override public void status(String status) { - Main.startWork(translate("work.exporting.idea") + "..." + status, w); + Main.startWork(translate("work.exporting.idea") + "..." + status, w, false); } }; EventListener evl = swf.getExportEventListener(); @@ -3726,7 +3726,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.exporting.idea") + "...", this); + Main.startWork(translate("work.exporting.idea") + "...", this, true); } @Override @@ -3782,7 +3782,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override public void status(String status) { - Main.startWork(translate("work.exporting.vsCode") + "..." + status, w); + Main.startWork(translate("work.exporting.vsCode") + "..." + status, w, false); } }; EventListener evl = swf.getExportEventListener(); @@ -3799,7 +3799,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.exporting.vsCode") + "...", this); + Main.startWork(translate("work.exporting.vsCode") + "...", this, true); } @Override @@ -3942,7 +3942,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override public void status(String status) { - Main.startWork(translate("work.exporting.fla") + "..." + status, w); + Main.startWork(translate("work.exporting.fla") + "..." + status, w, false); } }; @@ -3963,7 +3963,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.exporting.fla") + "...", this); + Main.startWork(translate("work.exporting.fla") + "...", this, true); } @Override @@ -4025,7 +4025,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.importing") + "...", this); + Main.startWork(translate("work.importing") + "...", this, true); } @Override @@ -4085,7 +4085,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.importing") + "...", this); + Main.startWork(translate("work.importing") + "...", this, true); } @Override @@ -4144,7 +4144,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.importing") + "...", this); + Main.startWork(translate("work.importing") + "...", this, true); } @Override @@ -4204,7 +4204,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.importing") + "...", this); + Main.startWork(translate("work.importing") + "...", this, true); } @Override @@ -4262,7 +4262,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.importing") + "...", this); + Main.startWork(translate("work.importing") + "...", this, true); } @Override @@ -4451,7 +4451,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { Main.importWorker = this; - Main.startWork(translate("work.importing_as") + "...", this); + Main.startWork(translate("work.importing_as") + "...", this, true); } @Override @@ -4544,7 +4544,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.exporting") + "...", this); + Main.startWork(translate("work.exporting") + "...", this, true); } @Override @@ -4586,7 +4586,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se SWF swf = (SWF) item; final String selFile = selectExportDir("exportjava"); if (selFile != null) { - Main.startWork(translate("work.exporting") + "...", null); + Main.startWork(translate("work.exporting") + "...", null, true); try { new SwfJavaExporter().exportJavaCode(swf, selFile); @@ -4669,7 +4669,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se AbortRetryIgnoreHandler handler = new GuiAbortRetryIgnoreHandler(); for (SWF openable : usedOpenables) { if (selFile != null) { - Main.startWork(translate("work.exporting") + "...", null); + Main.startWork(translate("work.exporting") + "...", null, true); String selFile2; if (usedOpenables.size() > 1) { @@ -4784,7 +4784,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.renaming.identifiers") + "...", this); + Main.startWork(translate("work.renaming.identifiers") + "...", this, true); } @Override @@ -4895,7 +4895,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { Main.deobfuscatePCodeWorker = this; - Main.startWork(translate("work.deobfuscating") + "...", this); + Main.startWork(translate("work.deobfuscating") + "...", this, true); } @Override @@ -5641,7 +5641,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(translate("work.exporting") + "...", this); + Main.startWork(translate("work.exporting") + "...", this, true); } @Override @@ -6124,7 +6124,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se @Override protected void onStart() { - Main.startWork(AppStrings.translate("work.reading.swf") + "...", this); + Main.startWork(AppStrings.translate("work.reading.swf") + "...", this, true); } @Override diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java index 4c605fe4e..d287d3220 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java @@ -249,12 +249,12 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener tempFiles = new ArrayList<>(); @@ -3193,8 +3198,7 @@ public class TagTreeContextMenu extends JPopupMenu { public void workerCancelled() { Main.stopWork(); } - }; - Main.startWork(AppStrings.translate("work.prepareDebug"), prepareDebugWorker); + }; prepareDebugWorker.execute(); }