From 91942d46331354145bcfaaae923315f583f869db Mon Sep 17 00:00:00 2001 From: pipipi-pikachu <1171051090@qq.com> Date: Fri, 29 Jan 2021 17:54:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E6=8D=B7=E9=94=AE=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/configs/hotkey.ts | 4 ++++ src/hooks/useCopyAndPasteElement.ts | 6 ++++++ src/views/Editor/useHotkey.ts | 31 +++++++++++++++++++++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/configs/hotkey.ts b/src/configs/hotkey.ts index 3b0fe9a5..5dc35705 100644 --- a/src/configs/hotkey.ts +++ b/src/configs/hotkey.ts @@ -7,6 +7,10 @@ export enum KEYS { G = 'G', L = 'L', F = 'F', + D = 'D', + MINUS = '-', + EQUAL = '=', + DIGIT_0 = '0', DELETE = 'DELETE', UP = 'ARROWUP', DOWN = 'ARROWDOWN', diff --git a/src/hooks/useCopyAndPasteElement.ts b/src/hooks/useCopyAndPasteElement.ts index e14f8980..f366c99e 100644 --- a/src/hooks/useCopyAndPasteElement.ts +++ b/src/hooks/useCopyAndPasteElement.ts @@ -39,9 +39,15 @@ export default () => { }).catch(err => message.warning(err)) } + const quickCopyElement = () => { + copyElement() + pasteElement() + } + return { copyElement, cutElement, pasteElement, + quickCopyElement, } } \ No newline at end of file diff --git a/src/views/Editor/useHotkey.ts b/src/views/Editor/useHotkey.ts index c3cbee40..282b17c3 100644 --- a/src/views/Editor/useHotkey.ts +++ b/src/views/Editor/useHotkey.ts @@ -11,6 +11,7 @@ import useSelectAllElement from '@/hooks/useSelectAllElement' import useMoveElement from '@/hooks/useMoveElement' import useHistorySnapshot from '@/hooks/useHistorySnapshot' import useScreening from '@/hooks/useScreening' +import useScaleCanvas from '@/hooks/useScaleCanvas' export default () => { const store = useStore() @@ -29,16 +30,18 @@ export default () => { createSlide, deleteSlide, cutSlide, + copyAndPasteSlide, } = useSlideHandler() const { combineElements, uncombineElements } = useCombineElement() const { deleteElement } = useDeleteElement() const { lockElement } = useLockElement() - const { copyElement, cutElement } = useCopyAndPasteElement() + const { copyElement, cutElement, quickCopyElement } = useCopyAndPasteElement() const { selectAllElement } = useSelectAllElement() const { moveElement } = useMoveElement() const { redo, undo } = useHistorySnapshot() const { enterScreening } = useScreening() + const { scaleCanvas, setCanvasPercentage } = useScaleCanvas() const copy = () => { if(activeElementIdList.value.length) copyElement() @@ -46,11 +49,15 @@ export default () => { } const cut = () => { - if(disableHotkeys.value) return if(activeElementIdList.value.length) cutElement() else if(thumbnailsFocus.value) cutSlide() } + const quickCopy = () => { + if(activeElementIdList.value.length) quickCopyElement() + else if(thumbnailsFocus.value) copyAndPasteSlide() + } + const selectAll = () => { if(!editorAreaFocus.value) return selectAllElement() @@ -111,6 +118,11 @@ export default () => { e.preventDefault() cut() } + if(ctrlKey && key === KEYS.D) { + if(disableHotkeys.value) return + e.preventDefault() + quickCopy() + } if(ctrlKey && key === KEYS.Z) { if(disableHotkeys.value) return e.preventDefault() @@ -171,6 +183,21 @@ export default () => { e.preventDefault() create() } + if(key === KEYS.MINUS) { + if(disableHotkeys.value) return + e.preventDefault() + scaleCanvas('-') + } + if(key === KEYS.EQUAL) { + if(disableHotkeys.value) return + e.preventDefault() + scaleCanvas('+') + } + if(key === KEYS.DIGIT_0) { + if(disableHotkeys.value) return + e.preventDefault() + setCanvasPercentage(90) + } } const keyupListener = () => {