Feature: add clipbord listening menu for mini page

This commit is contained in:
萌萌哒赫萝
2023-04-12 17:24:53 +08:00
parent b20c6d7a85
commit 04d67058e5
2 changed files with 47 additions and 2 deletions

View File

@@ -14,13 +14,17 @@ import picgoCoreIPC from '~/main/events/picgoCoreIPC'
import { PicGo as PicGoCore } from 'piclist'
import { T } from '~/main/i18n'
import { changeCurrentUploader } from '~/main/utils/handleUploaderConfig'
import db from '~/main/apis/core/datastore'
import clipboardListener from 'clipboard-event'
import clipboardPoll from '~/main/utils/clipboardPoll'
interface GuiMenuItem {
label: string
handle: (arg0: PicGoCore, arg1: GuiApi) => Promise<void>
}
const buildMiniPageMenu = () => {
const isListeningClipboard = db.get('settings.isListeningClipboard') || false
const ClipboardWatcher = process.platform === 'win32' ? clipboardListener : clipboardPoll
const submenu = buildPicBedListMenu()
const template = [
{
@@ -49,6 +53,29 @@ const buildMiniPageMenu = () => {
BrowserWindow.getFocusedWindow()!.hide()
}
},
{
label: T('START_WATCH_CLIPBOARD'),
click () {
db.set('settings.isListeningClipboard', true)
ClipboardWatcher.startListening()
ClipboardWatcher.on('change', () => {
picgo.log.info('clipboard changed')
uploadClipboardFiles()
})
buildMiniPageMenu()
},
enabled: !isListeningClipboard
},
{
label: T('STOP_WATCH_CLIPBOARD'),
click () {
db.set('settings.isListeningClipboard', false)
ClipboardWatcher.stopListening()
ClipboardWatcher.removeAllListeners()
buildMiniPageMenu()
},
enabled: isListeningClipboard
},
{
label: T('RELOAD_APP'),
click () {