From 0c454f0d1f75f3cc4c68c1b775bc98d2d15917cc Mon Sep 17 00:00:00 2001 From: nietowl Date: Mon, 14 Sep 2026 14:29:37 +0530 Subject: [PATCH] Add clear-all-zooms action for the editor timeline. Lets users remove every zoom region in one click or with Ctrl+Shift+Backspace (fixes #548). --- src/components/video-editor/SettingsPanel.tsx | 15 +++++++++++++++ .../video-editor/hooks/useZoomRegionCommands.ts | 6 ++++++ .../video-editor/layout/EditorPreviewPanel.tsx | 12 ++++++++++++ .../video-editor/layout/EditorTimelinePanel.tsx | 1 + .../layout/useEditorSettingsPanelProps.ts | 2 ++ .../video-editor/timeline/TimelineEditor.tsx | 4 ++++ .../timeline/hooks/useTimelineEditorRuntime.ts | 9 +++++++++ .../hooks/useTimelineKeyboardShortcuts.ts | 12 ++++++++++++ src/i18n/locales/en/settings.json | 1 + src/i18n/locales/en/timeline.json | 3 ++- src/lib/shortcuts.ts | 5 +++++ 11 files changed, 69 insertions(+), 1 deletion(-) diff --git a/src/components/video-editor/SettingsPanel.tsx b/src/components/video-editor/SettingsPanel.tsx index 586e09d2a..eb172ef57 100644 --- a/src/components/video-editor/SettingsPanel.tsx +++ b/src/components/video-editor/SettingsPanel.tsx @@ -519,6 +519,8 @@ interface SettingsPanelProps { selectedZoomMode?: ZoomMode | null; onZoomModeChange?: (mode: ZoomMode) => void; onZoomDelete?: (id: string) => void; + onClearAllZooms?: () => void; + hasZoomRegions?: boolean; selectedClipId?: string | null; selectedClipSpeed?: number | null; selectedClipMuted?: boolean | null; @@ -979,6 +981,8 @@ export function SettingsPanel({ selectedZoomMode, onZoomModeChange, onZoomDelete, + onClearAllZooms, + hasZoomRegions = false, selectedClipId, selectedClipSpeed, selectedClipMuted, @@ -3800,6 +3804,17 @@ export function SettingsPanel({ {tSettings("zoom.deleteZoom", "Delete Zoom")} )} + {activeEffectSection === "zoom" && hasZoomRegions && ( + + )} {activeEffectSection === "audio" && selectedAudioId && ( +