hlassiege/darylpublic Fork
⑂ 174b75a
Commits
⬇ Clone ▾
git clone https://git.rickub.com/hlassiege/daryl.git
git clone ssh://git@rickub.com/hlassiege/daryl.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

feat(web): add -1 s / +1 s buttons under the editing preview

hlassiege committed 2026-10-12T09:22:48+02:00 Browse files
174b75a parent: 5a5d914
modified web/src/i18n/locales/en/editing.ts +2 -0
@@ -290,6 +290,8 @@ export default {
290290 back5: "−5 s (J)",
291291 playPause: "Play / pause (Space)",
292292 fwd5: "+5 s (L)",
293+ back1: "−1 s (Shift+←)",
294+ fwd1: "+1 s (Shift+→)",
293295 report: "Discuss this frame",
294296 reportTitle: "Talk to Daryl about this frame (timecode and image attached), in a new conversation",
295297 },
@@ -290,6 +290,8 @@ export default {
290 back5: "−5 s (J)",290 back5: "−5 s (J)",
291 playPause: "Play / pause (Space)",291 playPause: "Play / pause (Space)",
292 fwd5: "+5 s (L)",292 fwd5: "+5 s (L)",
293+ back1: "−1 s (Shift+←)",
294+ fwd1: "+1 s (Shift+→)",
293 report: "Discuss this frame",295 report: "Discuss this frame",
294 reportTitle: "Talk to Daryl about this frame (timecode and image attached), in a new conversation",296 reportTitle: "Talk to Daryl about this frame (timecode and image attached), in a new conversation",
295 },297 },
modified web/src/i18n/locales/fr/editing.ts +2 -0
@@ -290,6 +290,8 @@ export default {
290290 back5: "−5 s (J)",
291291 playPause: "Lecture / pause (Espace)",
292292 fwd5: "+5 s (L)",
293+ back1: "−1 s (Maj+←)",
294+ fwd1: "+1 s (Maj+→)",
293295 report: "Discuter de cette image",
294296 reportTitle: "Parler à Daryl de cette image (timecode et image joints), dans une nouvelle discussion",
295297 },
@@ -290,6 +290,8 @@ export default {
290 back5: "−5 s (J)",290 back5: "−5 s (J)",
291 playPause: "Lecture / pause (Espace)",291 playPause: "Lecture / pause (Espace)",
292 fwd5: "+5 s (L)",292 fwd5: "+5 s (L)",
293+ back1: "−1 s (Maj+←)",
294+ fwd1: "+1 s (Maj+→)",
293 report: "Discuter de cette image",295 report: "Discuter de cette image",
294 reportTitle: "Parler à Daryl de cette image (timecode et image joints), dans une nouvelle discussion",296 reportTitle: "Parler à Daryl de cette image (timecode et image joints), dans une nouvelle discussion",
295 },297 },
modified web/src/project/steps/montage/Preview.vue +3 -0
@@ -53,6 +53,7 @@ onBeforeUnmount(() => { props.player.video.value = null; });
5353
5454 const t = computed(() => props.player.t.value);
5555 const playing = computed(() => props.player.playing.value);
56+const step = (s: number) => props.player.seek(Math.max(0, Math.min(t.value + s, props.player.total.value)));
5657
5758 // --- volume de l'A-roll : celui du clip sous la tête de lecture. Par Web Audio, pour pouvoir monter au-dessus de
5859 // 0 dB ; branché à la première lecture (le navigateur n'accepte le son qu'après un geste)
@@ -388,7 +389,9 @@ defineExpose({ capture });
388389 <div class="bar">
389390 <button class="btn ctl" :title="tr('editing.preview.start')" @click="player.seek(0)">⏮</button>
390391 <button class="btn ctl" :title="tr('editing.preview.back5')" @click="player.seek(t - 5)">−5 s</button>
392+ <button class="btn ctl" :title="tr('editing.preview.back1')" @click="step(-1)">−1 s</button>
391393 <button class="btn dark play" :title="tr('editing.preview.playPause')" @click="player.toggle()">{{ playing ? "❚❚" : "▶" }}</button>
394+ <button class="btn ctl" :title="tr('editing.preview.fwd1')" @click="step(1)">+1 s</button>
392395 <button class="btn ctl" :title="tr('editing.preview.fwd5')" @click="player.seek(t + 5)">+5 s</button>
393396 <span class="mono now">{{ tcd(t) }}</span><span class="mono dim">/ {{ mmss(player.total.value) }}</span>
394397 <span class="spacer" />
@@ -53,6 +53,7 @@ onBeforeUnmount(() => { props.player.video.value = null; });
53 53
54 const t = computed(() => props.player.t.value);54 const t = computed(() => props.player.t.value);
55 const playing = computed(() => props.player.playing.value);55 const playing = computed(() => props.player.playing.value);
56+const step = (s: number) => props.player.seek(Math.max(0, Math.min(t.value + s, props.player.total.value)));
56 57
57 // --- volume de l'A-roll : celui du clip sous la tête de lecture. Par Web Audio, pour pouvoir monter au-dessus de58 // --- volume de l'A-roll : celui du clip sous la tête de lecture. Par Web Audio, pour pouvoir monter au-dessus de
58 // 0 dB ; branché à la première lecture (le navigateur n'accepte le son qu'après un geste)59 // 0 dB ; branché à la première lecture (le navigateur n'accepte le son qu'après un geste)
@@ -388,7 +389,9 @@ defineExpose({ capture });
388 <div class="bar">389 <div class="bar">
389 <button class="btn ctl" :title="tr('editing.preview.start')" @click="player.seek(0)">⏮</button>390 <button class="btn ctl" :title="tr('editing.preview.start')" @click="player.seek(0)">⏮</button>
390 <button class="btn ctl" :title="tr('editing.preview.back5')" @click="player.seek(t - 5)">−5 s</button>391 <button class="btn ctl" :title="tr('editing.preview.back5')" @click="player.seek(t - 5)">−5 s</button>
392+ <button class="btn ctl" :title="tr('editing.preview.back1')" @click="step(-1)">−1 s</button>
391 <button class="btn dark play" :title="tr('editing.preview.playPause')" @click="player.toggle()">{{ playing ? "❚❚" : "▶" }}</button>393 <button class="btn dark play" :title="tr('editing.preview.playPause')" @click="player.toggle()">{{ playing ? "❚❚" : "▶" }}</button>
394+ <button class="btn ctl" :title="tr('editing.preview.fwd1')" @click="step(1)">+1 s</button>
392 <button class="btn ctl" :title="tr('editing.preview.fwd5')" @click="player.seek(t + 5)">+5 s</button>395 <button class="btn ctl" :title="tr('editing.preview.fwd5')" @click="player.seek(t + 5)">+5 s</button>
393 <span class="mono now">{{ tcd(t) }}</span><span class="mono dim">/ {{ mmss(player.total.value) }}</span>396 <span class="mono now">{{ tcd(t) }}</span><span class="mono dim">/ {{ mmss(player.total.value) }}</span>
394 <span class="spacer" />397 <span class="spacer" />