mirror of
https://github.com/pipipi-pikachu/PPTist.git
synced 2025-04-15 02:20:00 +08:00
perf: 调整放映快捷键
This commit is contained in:
parent
12f56370b4
commit
400f0efee6
@ -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' },
|
||||||
|
@ -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
|
||||||
|
@ -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,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user