From 4fb7e6675941e6ccfa615b7123a487a375830132 Mon Sep 17 00:00:00 2001 From: digital-garbage <133010426+digital-garbage@users.noreply.github.com> Date: Wed, 17 Jun 2026 13:48:51 +0300 Subject: [PATCH] Movie Editor: remove 'Convert to video/scene' buttons from the UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The convert verbs don't fit the revamped plan/result direction and need a rethink (see deferred notes). Remove the toolbar buttons now and the two inspector hints that pointed at them, so nothing references a control that's gone. The convertToVideo/convertToScene store functions are left intact and callable — only the UI entry points are removed; the rework comes later. Co-Authored-By: Claude Opus 4.8 --- movie_editor/frontend/inspector.js | 4 ++-- movie_editor/frontend/timeline.js | 37 ------------------------------ 2 files changed, 2 insertions(+), 39 deletions(-) diff --git a/movie_editor/frontend/inspector.js b/movie_editor/frontend/inspector.js index adf137c9..3fc86544 100644 --- a/movie_editor/frontend/inspector.js +++ b/movie_editor/frontend/inspector.js @@ -209,7 +209,7 @@ function renderVideoClip(st, scene) { title.textContent = "Video clip"; - body.append(el("div", "insp-hint", "Imported or converted video — plays as-is. Not included in Generate or the global prompt montage. Use Convert to scene on the timeline toolbar to unlock editing.")); + body.append(el("div", "insp-hint", "Imported or converted video — plays as-is. Not included in Generate or the global prompt montage.")); const ref = scene.source?.media_ref; const asset = ref ? (st.mediaBin || []).find((m) => m.id === ref) : null; body.append(field("Source", el("span", null, asset?.name || ref || "From last render"))); @@ -282,7 +282,7 @@ (lenDrift ? `Rendered ≈ ${shownDur.toFixed(2)}s · plan ${planDur.toFixed(2)}s — Regenerate to apply` : `Duration ≈ ${planDur.toFixed(2)}s`) - + ` · trim on timeline · Convert to video on the timeline toolbar · generation splits: global prompt or Outgoing seam below`)); + + ` · trim on timeline · generation splits: global prompt or Outgoing seam below`)); renderOutgoingSeam(st, scene); diff --git a/movie_editor/frontend/timeline.js b/movie_editor/frontend/timeline.js index fcb10f92..9e43108d 100644 --- a/movie_editor/frontend/timeline.js +++ b/movie_editor/frontend/timeline.js @@ -342,30 +342,6 @@ }); } - function toolbarConvertButton(st) { - const id = st.selectedSceneId; - if (!id) return null; - const sc = S.scene(id); - if (!sc) return null; - if (S.isVideoClip(sc)) { - const btn = el("button", "btn ghost tiny", "Convert to scene"); - btn.dataset.convertClip = "1"; - btn.title = sc.scene_archive - ? "Restore prompt, source, guides, and settings from before this was locked as video" - : "Make this a generative v2v scene (prompt + Generate)"; - btn.onclick = () => S.convertToScene(sc.id); - return btn; - } - if (S.isGenerativeScene(sc)) { - const btn = el("button", "btn ghost tiny", "Convert to video"); - btn.dataset.convertClip = "1"; - btn.title = "Lock as a plain video clip — skipped by Generate; settings saved for Convert back to scene"; - btn.onclick = () => S.convertToVideo(sc.id); - return btn; - } - return null; - } - function exportSaveTitles(hasSel, saveable, saveableN, selN) { const multi = selN > 1; const exportTitle = !hasSel @@ -440,17 +416,6 @@ const sepTrack = sc && S.separatedTrackForScene ? S.separatedTrackForScene(sc.id) : null; rmSep.disabled = !sepTrack; } - const oldConv = bar.querySelector("[data-convert-clip]"); - const freshConv = toolbarConvertButton(st); - if (oldConv) { - if (freshConv) oldConv.replaceWith(freshConv); - else oldConv.remove(); - } else if (freshConv) { - const anchor = bar.querySelector("[data-separate-audio]") || bar.querySelector("[data-remove-sep-audio]") || bar.querySelector("[data-save-mediabin]") || bar.querySelector("[data-export-scene]"); - if (anchor?.nextSibling) bar.insertBefore(freshConv, anchor.nextSibling); - else if (anchor) anchor.after(freshConv); - else bar.append(freshConv); - } const oldRating = bar.querySelector(".tl-rating-block"); const freshRating = toolbarRatingBlock(st, st.project); if (oldRating) oldRating.replaceWith(freshRating); @@ -1772,8 +1737,6 @@ rmSepAud.disabled = !sepTrack; rmSepAud.onclick = () => { if (sepTrack) S.removeAudioTrack(sepTrack.id); }; bar.append(split); bar.append(del); bar.append(selBadge); bar.append(exp); bar.append(saveBin); bar.append(sepAud); bar.append(rmSepAud); - const conv = toolbarConvertButton(st); - if (conv) bar.append(conv); bar.append(toolbarRatingBlock(st, p)); const spacer = el("div", "tl-spacer"); bar.append(spacer);