diff --git a/src/App.jsx b/src/App.jsx index 85ba2652..553cdf1c 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -606,8 +606,6 @@ const App = memo(() => { return newVal; }), [hideAllNotifications, setKeyframeCut]); - const toggleAutoMerge = useCallback(() => setAutoMerge(val => !val), [setAutoMerge]); - const togglePreserveMovData = useCallback(() => setPreserveMovData((val) => !val), [setPreserveMovData]); const toggleMovFastStart = useCallback(() => setMovFastStart((val) => !val), [setMovFastStart]); @@ -2260,7 +2258,7 @@ const App = memo(() => { - + { const { t } = useTranslation(); @@ -118,7 +118,7 @@ const ExportConfirm = memo(({

{t('Export options')}

    - {outSegments.length >= 2 &&
  • {t('Merge {{segments}} cut segments to one file?', { segments: outSegments.length })}
  • } + {outSegments.length >= 2 &&
  • {t('Merge {{segments}} cut segments to one file?', { segments: outSegments.length })}
  • }
  • {t('Output container format:')} {renderOutFmt({ height: 20, maxWidth: 150 })} diff --git a/src/components/MergeExportButton.jsx b/src/components/MergeExportButton.jsx index 7d4f0fc6..f4a0942a 100644 --- a/src/components/MergeExportButton.jsx +++ b/src/components/MergeExportButton.jsx @@ -6,19 +6,55 @@ import { MdCallSplit, MdCallMerge } from 'react-icons/md'; import { withBlur } from '../util'; -const MergeExportButton = memo(({ autoMerge, outSegments, toggleAutoMerge }) => { +const MergeExportButton = memo(({ autoMerge, outSegments, setAutoMerge, autoDeleteMergedSegments, setAutoDeleteMergedSegments }) => { const { t } = useTranslation(); const AutoMergeIcon = autoMerge ? MdCallMerge : MdCallSplit; + let effectiveMode; + let title; + let description; + if (autoMerge && autoDeleteMergedSegments) { + effectiveMode = 'merge'; + title = t('Merge cuts'); + description = t('Auto merge segments to one file after export'); + } else if (autoMerge) { + effectiveMode = 'merge+separate'; + title = t('Merge & Separate'); + description = t('Auto merge segments to one file after export, but keep segments too'); + } else { + effectiveMode = 'separate'; + title = t('Separate files'); + description = t('Export to separate files'); + } + + function onClick() { + switch (effectiveMode) { + case 'merge': { + setAutoDeleteMergedSegments(false); + break; + } + case 'merge+separate': { + setAutoMerge(false); + break; + } + case 'separate': { + setAutoMerge(true); + setAutoDeleteMergedSegments(true); + break; + } + default: + } + } + return ( ); });