perf: 调整放映快捷键

This commit is contained in:
pipipi-pikachu 2022-05-18 21:00:32 +08:00
parent 12f56370b4
commit 400f0efee6
4 changed files with 29 additions and 15 deletions

View File

@ -24,6 +24,7 @@ export const enum KEYS {
ESC = 'ESCAPE', ESC = 'ESCAPE',
PAGEUP = 'PAGEUP', PAGEUP = 'PAGEUP',
PAGEDOWN = 'PAGEDOWN', PAGEDOWN = 'PAGEDOWN',
F5 = 'F5',
} }
export const HOTKEY_DOC = [ export const HOTKEY_DOC = [
@ -44,7 +45,8 @@ export const HOTKEY_DOC = [
{ {
type: '幻灯片放映', type: '幻灯片放映',
children: [ children: [
{ label: '开始放映幻灯片', value: 'Ctrl + F' }, { label: '从头开始放映幻灯片', value: 'F5' },
{ label: '从当前开始放映幻灯片', value: 'Shift + F5' },
{ label: '切换上一页', value: '↑ / ← / PgUp' }, { label: '切换上一页', value: '↑ / ← / PgUp' },
{ label: '切换下一页', value: '↓ / → / PgDown' }, { label: '切换下一页', value: '↓ / → / PgDown' },
{ label: '切换下一页', value: 'Enter / Space' }, { label: '切换下一页', value: 'Enter / Space' },

View File

@ -48,7 +48,7 @@ export default () => {
const { moveElement } = useMoveElement() const { moveElement } = useMoveElement()
const { orderElement } = useOrderElement() const { orderElement } = useOrderElement()
const { redo, undo } = useHistorySnapshot() const { redo, undo } = useHistorySnapshot()
const { enterScreening } = useScreening() const { enterScreening, enterScreeningFromStart } = useScreening()
const { scaleCanvas, resetCanvas } = useScaleCanvas() const { scaleCanvas, resetCanvas } = useScaleCanvas()
const copy = () => { const copy = () => {
@ -134,10 +134,16 @@ export default () => {
if (shiftKey && !shiftKeyState.value) keyboardStore.setShiftKeyState(true) if (shiftKey && !shiftKeyState.value) keyboardStore.setShiftKeyState(true)
if (!disableHotkeys.value && key === KEYS.SPACE) keyboardStore.setSpaceKeyState(true) if (!disableHotkeys.value && key === KEYS.SPACE) keyboardStore.setSpaceKeyState(true)
if (ctrlOrMetaKeyActive && key === KEYS.F) { if (shiftKey && key === KEYS.F5) {
e.preventDefault() e.preventDefault()
enterScreening() enterScreening()
keyboardStore.setCtrlKeyState(false) keyboardStore.setShiftKeyState(false)
return
}
if (key === KEYS.F5) {
e.preventDefault()
enterScreeningFromStart()
return
} }
if (!editorAreaFocus.value && !thumbnailsFocus.value) return if (!editorAreaFocus.value && !thumbnailsFocus.value) return

View File

@ -91,7 +91,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, provide, ref, watch, watchEffect } from 'vue' import { defineComponent, onMounted, provide, ref, watch, watchEffect } from 'vue'
import { throttle } from 'lodash' import { throttle } from 'lodash'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store' import { useMainStore, useSlidesStore, useKeyboardStore } from '@/store'
@ -189,9 +189,15 @@ export default defineComponent({
const { selectAllElement } = useSelectAllElement() const { selectAllElement } = useSelectAllElement()
const { deleteAllElements } = useDeleteElement() const { deleteAllElements } = useDeleteElement()
const { pasteElement } = useCopyAndPasteElement() const { pasteElement } = useCopyAndPasteElement()
const { enterScreening } = useScreening() const { enterScreeningFromStart } = useScreening()
const { updateSlideIndex } = useSlideHandler() const { updateSlideIndex } = useSlideHandler()
//
// 退
onMounted(() => {
if (activeElementIdList.value.length) mainStore.setActiveElementIdList([])
})
// //
const handleClickBlankArea = (e: MouseEvent) => { const handleClickBlankArea = (e: MouseEvent) => {
mainStore.setActiveElementIdList([]) mainStore.setActiveElementIdList([])
@ -269,9 +275,9 @@ export default defineComponent({
}, },
{ divider: true }, { divider: true },
{ {
text: '从当前页演示', text: '幻灯片放映',
subText: 'Ctrl+F', subText: 'F5',
handler: enterScreening, handler: enterScreeningFromStart,
}, },
] ]
} }

View File

@ -169,7 +169,7 @@ export default defineComponent({
slidesStore.updateSlideIndex(newIndex) slidesStore.updateSlideIndex(newIndex)
} }
const { enterScreening } = useScreening() const { enterScreening, enterScreeningFromStart } = useScreening()
const contextmenusThumbnails = (): ContextmenuItem[] => { const contextmenusThumbnails = (): ContextmenuItem[] => {
return [ return [
@ -189,9 +189,9 @@ export default defineComponent({
handler: createSlide, handler: createSlide,
}, },
{ {
text: '开始演示', text: '幻灯片放映',
subText: 'Ctrl + F', subText: 'F5',
handler: enterScreening, handler: enterScreeningFromStart,
}, },
] ]
} }
@ -236,8 +236,8 @@ export default defineComponent({
}, },
{ divider: true }, { divider: true },
{ {
text: '从当前页演示', text: '从当前放映',
subText: 'Ctrl + F', subText: 'Shift + F5',
handler: enterScreening, handler: enterScreening,
}, },
] ]