Added Remembering script+folder scroll/caret position when switching between items, saving for pinned items

This commit is contained in:
Jindra Petřík
2023-01-29 21:45:21 +01:00
parent e123bc699f
commit 07df4a8640
11 changed files with 605 additions and 10 deletions

View File

@@ -182,6 +182,8 @@ public class ActionPanel extends JPanel implements SearchListener<ScriptSearchRe
private CancellableWorker setSourceWorker;
private List<Runnable> scriptListeners = new ArrayList<>();
private boolean scriptLoaded = true;
public void addScriptListener(Runnable listener) {
scriptListeners.add(listener);
@@ -190,6 +192,20 @@ public class ActionPanel extends JPanel implements SearchListener<ScriptSearchRe
public void removeScriptListener(Runnable listener) {
scriptListeners.remove(listener);
}
public void runWhenLoaded(Runnable l) {
if (scriptLoaded) {
l.run();
} else {
addScriptListener(new Runnable() {
@Override
public void run() {
l.run();
removeScriptListener(this);
}
});
}
}
private void fireScript() {
List<Runnable> list = new ArrayList<>(scriptListeners);
@@ -462,6 +478,8 @@ public class ActionPanel extends JPanel implements SearchListener<ScriptSearchRe
public void setSource(final ASMSource src, final boolean useCache) {
View.checkAccess();
scriptLoaded = false;
if (setSourceWorker != null) {
setSourceWorker.cancel(true);
@@ -570,6 +588,7 @@ public class ActionPanel extends JPanel implements SearchListener<ScriptSearchRe
setHex(getExportMode(), asm.getScriptName(), actions);
setDecompiledText(asm.getScriptName(), decompiledText.text);
scriptLoaded = true;
fireScript();
}