engine: sequence parameters dialog migrates to the facade

- new facade API: video params ex (dimensions/rate/par/interlacing/
  preview format/divider), audio params, preview divider, and
  undoable-flagged setters mirroring the dialog's dual undo/no-undo
  modes; label setting gains node_set_label_ex
- the dialog's own SequenceParamCommand is gone; accept now issues
  facade calls (per-field commands, unchanged fields skipped)
- preset system stays UI-side by design: its flat XML schema never
  touches engine objects
- the auto-cache checkbox maps to the engine's existing stub (no undo
  noise)
This commit is contained in:
2026-07-20 12:42:54 +08:00
parent 456060ef3e
commit 0a25d43218
8 changed files with 652 additions and 130 deletions
+14 -3
View File
@@ -487,15 +487,26 @@ int oakengine_node_get_label(const OakEngineNode *self, char *buf,
}
int oakengine_node_set_label(OakEngineNode *self, const char *label)
{
return oakengine_node_set_label_ex(self, label, 1);
}
int oakengine_node_set_label_ex(OakEngineNode *self, const char *label,
int undoable)
{
set_error(QString());
if (!self) {
set_error(QStringLiteral("invalid node"));
return OAKENGINE_E_INVALID;
}
push_or_run(new olive::NodeRenameCommand(
impl(self), QString::fromUtf8(label ? label : "")),
QStringLiteral("Rename Node"));
olive::UndoCommand *command = new olive::NodeRenameCommand(
impl(self), QString::fromUtf8(label ? label : ""));
if (undoable) {
push_or_run(command, QStringLiteral("Rename Node"));
} else {
command->redo_now();
delete command;
}
return OAKENGINE_OK;
}