From bfa41be2ec82e010d35bd4119e480d5e73fb2782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=8C=E8=90=8C=E5=93=92=E8=B5=AB=E8=90=9D?= Date: Mon, 10 Apr 2023 19:07:37 +0800 Subject: [PATCH] :hammer: Refactor: fix macos clipboard poll --- src/main/apis/app/system/index.ts | 24 ------------------------ src/main/utils/clipboardPoll.ts | 11 +++++++++-- 2 files changed, 9 insertions(+), 26 deletions(-) diff --git a/src/main/apis/app/system/index.ts b/src/main/apis/app/system/index.ts index 8a4eb25..df48265 100644 --- a/src/main/apis/app/system/index.ts +++ b/src/main/apis/app/system/index.ts @@ -67,9 +67,7 @@ export function setDockMenu () { } export function createMenu () { - const ClipboardWatcher = process.platform === 'darwin' ? clipboardPoll : clipboardListener const submenu = buildPicBedListMenu() - const isListeningClipboard = db.get('settings.isListeningClipboard') || false const appMenu = Menu.buildFromTemplate([ { label: 'PicList', @@ -85,28 +83,6 @@ export function createMenu () { } } }, - { - label: T('START_WATCH_CLIPBOARD'), - click () { - db.set('settings.isListeningClipboard', true) - ClipboardWatcher.startListening() - ClipboardWatcher.on('change', () => { - picgo.log.info('clipboard changed') - uploadClipboardFiles() - }) - createMenu() - }, - enabled: !isListeningClipboard - }, - { - label: T('STOP_WATCH_CLIPBOARD'), - click () { - db.set('settings.isListeningClipboard', false) - ClipboardWatcher.stopListening() - createMenu() - }, - enabled: isListeningClipboard - }, { label: T('RELOAD_APP'), click () { diff --git a/src/main/utils/clipboardPoll.ts b/src/main/utils/clipboardPoll.ts index 338bedc..cb9c5db 100644 --- a/src/main/utils/clipboardPoll.ts +++ b/src/main/utils/clipboardPoll.ts @@ -12,8 +12,13 @@ class ClipboardWatcher extends EventEmitter { } startListening (watchDelay = 500) { - if (this.timer) { - clearInterval(this.timer) + this.stopListening() + console.log('timer', this.timer) + + const image = clipboard.readImage() + if (!image.isEmpty()) { + const dataUrl = image.toDataURL() + this.lastImage = nativeImage.createFromDataURL(dataUrl) } this.timer = setInterval(() => { @@ -35,10 +40,12 @@ class ClipboardWatcher extends EventEmitter { this.lastImage = currentImage this.emit('change', currentImage) }, watchDelay) + console.log('start timer', this.timer) } stopListening () { if (this.timer) { + console.log('stop timer') clearInterval(this.timer) this.timer = null }