fix(script): persist layer comments and unnamed marker parameters (#808)

This commit is contained in:
Nigel Ihza Firdausy committed 2026-10-11 21:29:04 +07:00
1 parent 9a7d3e7699
commit 47972e95a8
2 files changed
+26 -1

No files matched your search

+2 -1
View File
@@ -949,7 +949,7 @@ MarkerProperty.prototype = {
t = __num(t, "time");
if (!(mv instanceof MarkerValue)) throw __err("value must be a MarkerValue");
var p = this.__p({ time: t, duration: mv.duration || 0, comment: mv.comment, chapter: mv.chapter, url: mv.url, frameTarget: mv.frameTarget, protected: !!mv.protectedRegion, label: mv.label || 0 });
p.cuePoint = mv.cuePointName ? { name: mv.cuePointName, navigation: !mv.eventCuePoint, params: mv.__params } : null;
p.cuePoint = (mv.cuePointName || mv.__params.length) ? { name: mv.cuePointName, navigation: !mv.eventCuePoint, params: mv.__params } : null;
var l = this.__list(), at = -1;
for (var i = 0; i < l.length; i++) if (Math.abs(l[i].time - t) < 1e-6) at = i;
if (at >= 0) p.index = at;
@@ -1050,6 +1050,7 @@ Layer.prototype = {
__call("edit.label", this.__p({ label: n }));
},
get comment() { return this.__info().comment; },
set comment(v) { __call("layer.setComment", this.__p({ comment: String(v) })); },
get selected() { return this.__info().selected; },
set selected(v) {
var sel = this.containingComp.__info().selectedLayers;
+24
View File
@@ -730,3 +730,27 @@ fn import_options_sequence_picks_one_still_or_the_run() {
assert_eq!(kind_of(&s, "shot_[0001-0003].png"), FootageKind::Sequence);
let _ = std::fs::remove_dir_all(&dir);
}
#[test]
fn script_layer_comment_and_unnamed_marker_params_round_trip() {
let mut s = session();
let o = ok(
&mut s,
r#"
var c = app.project.items.addComp("Notes", 100, 100, 1, 5, 25);
var l = c.layers.addSolid([1, 0, 0], "Solid", 10, 10, 1);
l.comment = "Saved layer note";
var markers = l.property("ADBE Marker");
var plain = new MarkerValue("Plain");
plain.setParameters({ lml: "shot", index: "1" });
markers.setValueAtTime(1, plain);
var named = new MarkerValue("Named");
named.cuePointName = "cue";
named.setParameters({ lml: "shot", index: "2" });
markers.setValueAtTime(2, named);
[l.comment, markers.keyValue(1).getParameters().index,
markers.keyValue(1).cuePointName, markers.keyValue(2).getParameters().index]
"#,
);
assert_eq!(o.result, json!(["Saved layer note", "1", "", "2"]));
}