Added Remembering breakpoints

Added #2131 Breakpoint list dialog
Fixed AS1/2 Debugger - script was cleared on stop button
This commit is contained in:
Jindra Petřík
2023-11-25 22:25:04 +01:00
parent a74196ddf4
commit 8ceb44f25e
18 changed files with 658 additions and 190 deletions

View File

@@ -215,6 +215,7 @@ import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.CancellationException;
import java.util.concurrent.Future;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -3459,6 +3460,8 @@ public final class SWF implements SWFContainerItem, Timelined, Openable {
return list;
} catch (InterruptedException ex) {
throw ex;
} catch (CancellationException ex) {
throw ex;
} catch (Exception ex) {
logger.log(Level.SEVERE, null, ex);
return new ActionList(src.getSwf().getCharset());

View File

@@ -66,9 +66,7 @@ public final class Configuration {
public static final Level logLevel;
public static boolean showStat;
public static final String ABC_DEPS_SEPARATOR = "{*sep*}";
@ConfigurationDefaultBoolean(true)
@ConfigurationCategory("ui")
public static ConfigurationItem<Boolean> openMultipleFiles = null;

View File

@@ -20,12 +20,13 @@ package com.jpexs.decompiler.flash.configuration;
*
* @author JPEXS
*/
public class CustomConfigurationKeys {
public class CustomConfigurationKeys {
public static final String KEY_LAST_SELECTED_PATH_RESOURCES = "lastSelectedPath.resources";
public static final String KEY_LAST_SELECTED_PATH_TAGLIST = "lastSelectedPath.taglist";
public static final String KEY_CHARSET = "charset";
public static final String KEY_LIBRARY = "library";
public static final String KEY_LOADED_IMPORT_ASSETS = "loadedImportAssets";
public static final String KEY_ABC_DEPENDENCIES = "abcDependencies";
public static final String KEY_BREAKPOINTS = "breakpoints";
}

View File

@@ -17,8 +17,11 @@
package com.jpexs.decompiler.flash.configuration;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
/**
*
@@ -29,7 +32,22 @@ public class SwfSpecificCustomConfiguration implements Serializable {
private static final long serialVersionUID = 0x2acb421da57f5eb4L;
private Map<String, String> customData = new HashMap<>();
public static final String LIST_SEPARATOR = "{*sep*}";
public List<String> getCustomDataAsList(String key) {
String data = getCustomData(key, "");
String[] parts = (data + LIST_SEPARATOR).split(Pattern.quote(LIST_SEPARATOR));
List<String> result = new ArrayList<>();
for (String part : parts) {
if (!part.isEmpty()) {
result.add(part);
}
}
return result;
}
public String getCustomData(String key, String defaultValue) {
if (customData.containsKey(key)) {
return customData.get(key);
@@ -41,4 +59,8 @@ public class SwfSpecificCustomConfiguration implements Serializable {
public void setCustomData(String key, String value) {
customData.put(key, value);
}
public void setCustomData(String key, Iterable<? extends CharSequence> value) {
customData.put(key, String.join(LIST_SEPARATOR, value));
}
}