fix: show one marker per batch, not one per sub-clip
Pending marker uses cursor position for the whole batch. DB markers deduplicated by start_time since all sub-clips share the same cursor. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -309,7 +309,14 @@ class ProcessedDB:
|
|||||||
" WHERE filename = ? ORDER BY start_time",
|
" WHERE filename = ? ORDER BY start_time",
|
||||||
(match,),
|
(match,),
|
||||||
).fetchall()
|
).fetchall()
|
||||||
return [(t, i + 1, p) for i, (t, p) in enumerate(rows)]
|
# Deduplicate by start_time — batch exports share the same cursor.
|
||||||
|
seen_times: dict[float, tuple[float, int, str]] = {}
|
||||||
|
n = 0
|
||||||
|
for t, p in rows:
|
||||||
|
if t not in seen_times:
|
||||||
|
n += 1
|
||||||
|
seen_times[t] = (t, n, p)
|
||||||
|
return list(seen_times.values())
|
||||||
|
|
||||||
def get_markers(self, filename: str) -> list[tuple[float, int, str]]:
|
def get_markers(self, filename: str) -> list[tuple[float, int, str]]:
|
||||||
"""Return [(start_time, marker_number, output_path), ...] for the best
|
"""Return [(start_time, marker_number, output_path), ...] for the best
|
||||||
@@ -1820,10 +1827,10 @@ class MainWindow(QMainWindow):
|
|||||||
self._btn_export.setEnabled(False)
|
self._btn_export.setEnabled(False)
|
||||||
self.statusBar().showMessage(f"Exporting {len(jobs)} clip(s)…")
|
self.statusBar().showMessage(f"Exporting {len(jobs)} clip(s)…")
|
||||||
|
|
||||||
# Show pending markers immediately.
|
# Show one pending marker at the cursor position for the whole batch.
|
||||||
|
first_out = jobs[0][1]
|
||||||
pending = list(self._timeline._markers)
|
pending = list(self._timeline._markers)
|
||||||
for start, out, _, _ in jobs:
|
pending.append((self._cursor, self._export_counter, first_out))
|
||||||
pending.append((start, self._export_counter, out))
|
|
||||||
self._timeline.set_markers(pending)
|
self._timeline.set_markers(pending)
|
||||||
|
|
||||||
self._export_worker = ExportWorker(
|
self._export_worker = ExportWorker(
|
||||||
|
|||||||
Reference in New Issue
Block a user