add shortcuts for disable/enable segments #254

Add keyboard shortcut for "Include ONLY this segment in export", e.g. only currently selected segment, because some people often want to export only current segment and would like to not click a menu every time.
pull/982/head
Mikael Finstad 5 years ago
parent 04346f7e85
commit e28b5130eb
No known key found for this signature in database
GPG Key ID: 25AB36E3E81CBC26

@ -1076,10 +1076,13 @@ const App = memo(() => {
// If user has selected none to export, it makes no sense, so export all instead
const enabledSegments = enabledSegmentsRaw.length > 0 ? enabledSegmentsRaw : inverseOrNormalSegments;
const onExportSingleSegmentClick = useCallback((activeSeg) => setDisabledSegmentIds(Object.fromEntries(cutSegments.filter((s) => s.segId !== activeSeg.segId).map((s) => [s.segId, true]))), [cutSegments]);
const onExportSegmentEnabledToggle = useCallback((toggleSeg) => setDisabledSegmentIds((existing) => ({ ...existing, [toggleSeg.segId]: !existing[toggleSeg.segId] })), []);
const onExportSegmentDisableAll = useCallback(() => setDisabledSegmentIds(Object.fromEntries(cutSegments.map((s) => [s.segId, true]))), [cutSegments]);
const onExportSegmentEnableAll = useCallback(() => setDisabledSegmentIds({}), []);
const enableOnlySegment = useCallback((seg) => setDisabledSegmentIds(Object.fromEntries(cutSegments.filter((s) => s.segId !== seg.segId).map((s) => [s.segId, true]))), [cutSegments]);
const toggleSegmentEnabled = useCallback((seg) => setDisabledSegmentIds((existing) => ({ ...existing, [seg.segId]: !existing[seg.segId] })), []);
const disableAllSegments = useCallback(() => setDisabledSegmentIds(Object.fromEntries(cutSegments.map((s) => [s.segId, true]))), [cutSegments]);
const enableAllSegments = useCallback(() => setDisabledSegmentIds({}), []);
const enableOnlyCurrentSegment = useCallback(() => enableOnlySegment(currentCutSeg), [currentCutSeg, enableOnlySegment]);
const toggleCurrentSegmentEnabled = useCallback(() => toggleSegmentEnabled(currentCutSeg), [currentCutSeg, toggleSegmentEnabled]);
const filenamifyOrNot = useCallback((name) => (safeOutputFileName ? filenamify(name) : name).substr(0, maxLabelLength), [safeOutputFileName, maxLabelLength]);
@ -1715,6 +1718,10 @@ const App = memo(() => {
toggleCaptureFormat,
toggleStripAudio,
setStartTimeOffset: askSetStartTimeOffset,
disableAllSegments,
enableAllSegments,
enableOnlyCurrentSegment,
toggleCurrentSegmentEnabled,
};
function tryMainActions() {
@ -2310,10 +2317,10 @@ const App = memo(() => {
splitCurrentSegment={splitCurrentSegment}
enabledSegmentsRaw={enabledSegmentsRaw}
enabledSegments={enabledSegments}
onExportSingleSegmentClick={onExportSingleSegmentClick}
onExportSegmentEnabledToggle={onExportSegmentEnabledToggle}
onExportSegmentDisableAll={onExportSegmentDisableAll}
onExportSegmentEnableAll={onExportSegmentEnableAll}
onExportSingleSegmentClick={enableOnlySegment}
onExportSegmentEnabledToggle={toggleSegmentEnabled}
onExportSegmentDisableAll={disableAllSegments}
onExportSegmentEnableAll={enableAllSegments}
jumpSegStart={jumpSegStart}
jumpSegEnd={jumpSegEnd}
onViewSegmentTagsPress={onViewSegmentTagsPress}

@ -285,6 +285,22 @@ const KeyboardShortcuts = memo(({
name: t('Show sidebar'),
category: segmentsAndCutpointsCategory,
},
enableOnlyCurrentSegment: {
name: t('Include ONLY this segment in export'),
category: segmentsAndCutpointsCategory,
},
disableAllSegments: {
name: t('Exclude all segments from export'),
category: segmentsAndCutpointsCategory,
},
enableAllSegments: {
name: t('Include all segments in export'),
category: segmentsAndCutpointsCategory,
},
toggleCurrentSegmentEnabled: {
name: t('Toggle inclusion of this segment in export'),
category: segmentsAndCutpointsCategory,
},
// streamsCategory
toggleStreamsSelector: {

Loading…
Cancel
Save