diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-09-09 12:54:59 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-09 12:54:59 -0400 |
commit | e3a767876944467b09086501a8b2ef308716090a (patch) | |
tree | ccaca3fac375d975354648d227299e6b162a3db6 /ext/mixed | |
parent | 2aa86cc5f8cda022076f7fa047f17fdcca4a0f5e (diff) |
Anki screenshot refactor (#791)
* Use more consistent style for injectScreenshot
* Move screenshot generation into AnkiNoteBuilder/Backend
* Get optionsContext before await
Diffstat (limited to 'ext/mixed')
-rw-r--r-- | ext/mixed/js/api.js | 4 | ||||
-rw-r--r-- | ext/mixed/js/display.js | 44 |
2 files changed, 5 insertions, 43 deletions
diff --git a/ext/mixed/js/api.js b/ext/mixed/js/api.js index 63b3a3c0..701caba8 100644 --- a/ext/mixed/js/api.js +++ b/ext/mixed/js/api.js @@ -77,8 +77,8 @@ const api = (() => { return this._invoke('kanjiFind', {text, optionsContext}); } - definitionAdd(definition, mode, context, details, optionsContext) { - return this._invoke('definitionAdd', {definition, mode, context, details, optionsContext}); + definitionAdd(definition, mode, context, ownerFrameId, optionsContext) { + return this._invoke('definitionAdd', {definition, mode, context, ownerFrameId, optionsContext}); } definitionsAddable(definitions, modes, context, optionsContext) { diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 2bb85f1f..70b3895a 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -1047,18 +1047,10 @@ class Display extends EventDispatcher { try { this.setSpinnerVisible(true); - const details = {}; - if (this._noteUsesScreenshot(mode)) { - try { - const screenshot = await this._getScreenshot(); - details.screenshot = screenshot; - } catch (e) { - // NOP - } - } - + const ownerFrameId = this._ownerFrameId; + const optionsContext = this.getOptionsContext(); const noteContext = await this._getNoteContext(); - const noteId = await api.definitionAdd(definition, mode, noteContext, details, this.getOptionsContext()); + const noteId = await api.definitionAdd(definition, mode, noteContext, ownerFrameId, optionsContext); if (noteId) { const index = this._definitions.indexOf(definition); const adderButton = this._adderButtonFind(index, mode); @@ -1136,36 +1128,6 @@ class Display extends EventDispatcher { } } - _noteUsesScreenshot(mode) { - const optionsAnki = this._options.anki; - const fields = (mode === 'kanji' ? optionsAnki.kanji : optionsAnki.terms).fields; - for (const fieldValue of Object.values(fields)) { - if (fieldValue.includes('{screenshot}')) { - return true; - } - } - return false; - } - - async _getScreenshot() { - const ownerFrameId = this._ownerFrameId; - let token = null; - try { - if (ownerFrameId !== null) { - token = await api.crossFrame.invoke(ownerFrameId, 'setAllVisibleOverride', {value: false, priority: 0, awaitFrame: true}); - } - - const {format, quality} = this._options.anki.screenshot; - const dataUrl = await api.screenshotGet({format, quality}); - - return {dataUrl, format}; - } finally { - if (token !== null) { - await api.crossFrame.invoke(ownerFrameId, 'clearAllVisibleOverride', {token}); - } - } - } - _getFirstExpressionIndex() { return this._options.general.resultOutputMode === 'merge' ? 0 : -1; } |