From 47972e95a8dae9279f60ee660d899a58df564b1f Mon Sep 17 00:00:00 2001 From: Nigel Ihza Firdausy <106657905+Ni-zav@users.noreply.github.com> Date: Sun, 11 Oct 2026 21:29:04 +0700 Subject: [PATCH] fix(script): persist layer comments and unnamed marker parameters (#808) --- crates/script/src/prelude.js | 3 ++- crates/script/src/tests.rs | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/crates/script/src/prelude.js b/crates/script/src/prelude.js index f50a968c..ccf63669 100644 --- a/crates/script/src/prelude.js +++ b/crates/script/src/prelude.js @@ -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; diff --git a/crates/script/src/tests.rs b/crates/script/src/tests.rs index b50a7bfb..ee3d3217 100644 --- a/crates/script/src/tests.rs +++ b/crates/script/src/tests.rs @@ -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"])); +}