removing frame fixed

This commit is contained in:
honfika
2014-05-29 23:20:10 +02:00
parent 425a550709
commit c4df6c7ace
7 changed files with 34 additions and 35 deletions
@@ -1242,11 +1242,11 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec
if (!fn.scriptsNode) {
FrameNodeItem fni = (FrameNodeItem) d.getItem();
Tag par = fni.getParent();
Timelined parent = fni.getParent();
int frame = fni.getFrame() - 1; //Fix to zero based
int parentId = 0;
if (par != null) {
parentId = ((CharacterTag) par).getCharacterId();
if (parent instanceof CharacterTag) {
parentId = ((CharacterTag) parent).getCharacterId();
}
if (!frames.containsKey(parentId)) {
frames.put(parentId, new ArrayList<Integer>());
@@ -2252,9 +2252,14 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec
if (tag instanceof Tag) {
tagsToRemove.add((Tag) tag);
} else if (tag instanceof FrameNodeItem) {
FrameNodeItem frame = (FrameNodeItem) tag;
// todo: honfika: remove frame
//tagsToRemove.add(frame.getShowFrameTag());
FrameNodeItem frameNode = (FrameNodeItem) tag;
Frame frame = frameNode.getParent().getTimeline().frames.get(frameNode.getFrame() - 1);
if (frame.showFrameTag != null) {
tagsToRemove.add(frame.showFrameTag);
} else {
// this should be the last frame, so remove the inner tags
tagsToRemove.addAll(frame.innerTags);
}
}
}
@@ -476,7 +476,7 @@ public class PreviewPanel extends JSplitPane implements ActionListener {
if (tagObj instanceof FrameNodeItem) {
FrameNodeItem fn = (FrameNodeItem) tagObj;
swf = fn.getSwf();
if (fn.getParent() == null) {
if (fn.getParent() == swf) {
for (Tag t : swf.tags) {
if (t instanceof SetBackgroundColorTag) {
backgroundColor = ((SetBackgroundColorTag) t).backgroundColor.toColor();
@@ -530,15 +530,8 @@ public class PreviewPanel extends JSplitPane implements ActionListener {
if (tagObj instanceof FrameNodeItem) {
FrameNodeItem fn = (FrameNodeItem) tagObj;
Tag parent = fn.getParent();
List<ContainerItem> subs = new ArrayList<>();
if (parent == null) {
subs.addAll(swf.tags);
} else {
if (parent instanceof Container) {
subs = ((Container) parent).getSubItems();
}
}
Timelined parent = fn.getParent();
List<Tag> subs = parent.getTimeline().tags;
List<Integer> doneCharacters = new ArrayList<>();
int frameCnt = 1;
for (ContainerItem item : subs) {
@@ -93,7 +93,7 @@ public class TagTreeModel implements TreeModel {
private SWFNode createSwfNode(SWF swf) {
ClassesListTreeModel classTreeModel = new ClassesListTreeModel(swf);
SWFNode swfNode = new SWFNode(swf, swf.getShortFileName());
swfNode.list = createTagList(swf.tags, null, swf, swfNode, classTreeModel);
swfNode.list = createTagList(swf.tags, swf, swfNode, classTreeModel);
swfToSwfNode.put(swf, swfNode);
return swfNode;
}
@@ -102,7 +102,7 @@ public class TagTreeModel implements TreeModel {
return mainFrame.translate(key);
}
private List<TreeNode> createTagList(List<Tag> list, Tag parent, SWF swf, SWFNode swfNode, ClassesListTreeModel classTreeModel) {
private List<TreeNode> createTagList(List<Tag> list, SWF swf, SWFNode swfNode, ClassesListTreeModel classTreeModel) {
boolean hasAbc = swf.abcList != null && !swf.abcList.isEmpty();
List<TreeNode> ret = new ArrayList<>();
@@ -179,7 +179,7 @@ public class TagTreeModel implements TreeModel {
Timeline timeline = swf.getTimeline();
for (int i = 0; i < timeline.getFrameCount(); i++) {
frames.add(new FrameNode(new FrameNodeItem(swf, i + 1, parent, true), timeline.frames.get(i).innerTags, false));
frames.add(new FrameNode(new FrameNodeItem(swf, i + 1, swf, true), timeline.frames.get(i).innerTags, false));
}
for (int i = 0; i < sounds.size(); i++) {
@@ -193,8 +193,8 @@ public class TagTreeModel implements TreeModel {
}
for (TreeNode n : sprites) {
Tag tag = n.getItem() instanceof Tag ? (Tag) n.getItem() : null;
n.subNodes = createSubTagList(((DefineSpriteTag) n.getItem()).subTags, tag, swf, actionScriptTags);
Timelined timelined = n.getItem() instanceof Timelined ? (Timelined) n.getItem() : null;
n.subNodes = createSubTagList(((DefineSpriteTag) n.getItem()).subTags, timelined, swf, actionScriptTags);
}
StringNode textsNode = new StringNode(new StringItem(translate("node.texts"), FOLDER_TEXTS, swf));
@@ -286,7 +286,7 @@ public class TagTreeModel implements TreeModel {
return ret;
}
private List<TreeNode> createSubTagList(List<Tag> list, Tag parent, SWF swf, List<Tag> actionScriptTags) {
private List<TreeNode> createSubTagList(List<Tag> list, Timelined parent, SWF swf, List<Tag> actionScriptTags) {
List<TreeNode> ret = new ArrayList<>();
List<TreeNode> frames = new ArrayList<>();
List<TreeNode> others = new ArrayList<>();
@@ -304,11 +304,9 @@ public class TagTreeModel implements TreeModel {
}
}
if (parent instanceof Timelined) {
Timeline timeline = ((Timelined) parent).getTimeline();
for (int i = 0; i < timeline.getFrameCount(); i++) {
frames.add(new FrameNode(new FrameNodeItem(swf, i + 1, parent, true), timeline.frames.get(i).innerTags, false));
}
Timeline timeline = ((Timelined) parent).getTimeline();
for (int i = 0; i < timeline.getFrameCount(); i++) {
frames.add(new FrameNode(new FrameNodeItem(swf, i + 1, parent, true), timeline.frames.get(i).innerTags, false));
}
ret.addAll(frames);