diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json index dfc553ed..b03f0234 100644 --- a/ext/bg/data/options-schema.json +++ b/ext/bg/data/options-schema.json @@ -115,7 +115,8 @@ "maximumClipboardSearchLength", "popupCurrentIndicatorMode", "popupActionBarVisibility", - "popupActionBarLocation" + "popupActionBarLocation", + "autoSearchClipboardContent" ], "properties": { "enable": { @@ -286,6 +287,10 @@ "type": "string", "enum": ["left", "right", "top", "bottom"], "default": "top" + }, + "autoSearchClipboardContent": { + "type": "boolean", + "default": true } } }, diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index 10919ae3..1417c975 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -668,6 +668,8 @@ class OptionsUtil { // Added popupWindow. // Updated handlebars templates to include "stroke-count" definition. // Updated global.useSettingsV2 to be true (opt-out). + // Added audio.customSourceType. + // Added general.autoSearchClipboardContent. await this._addFieldTemplatesToOptions(options, '/bg/data/anki-field-templates-upgrade-v8.handlebars'); options.global.useSettingsV2 = true; for (const profile of options.profiles) { @@ -727,6 +729,7 @@ class OptionsUtil { windowState: 'normal' }; profile.options.audio.customSourceType = 'audio'; + profile.options.general.autoSearchClipboardContent = true; } return options; } diff --git a/ext/bg/js/search.js b/ext/bg/js/search.js index 69edfabd..0fcbcd13 100644 --- a/ext/bg/js/search.js +++ b/ext/bg/js/search.js @@ -130,7 +130,7 @@ class DisplaySearch extends Display { case 'terms': case 'kanji': animate = !!content.animate; - valid = content.definitions.length > 0; + valid = (typeof source === 'string' && source.length > 0); this.blurElement(this._queryInput); break; case 'clear': @@ -159,12 +159,12 @@ class DisplaySearch extends Display { e.preventDefault(); e.stopImmediatePropagation(); this.blurElement(e.currentTarget); - this._search(true, true); + this._search(true, true, true); } _onSearch(e) { e.preventDefault(); - this._search(true, true); + this._search(true, true, true); } _onCopy() { @@ -173,12 +173,12 @@ class DisplaySearch extends Display { } _onExternalSearchUpdate({text, animate=true}) { - const {general: {maximumClipboardSearchLength}} = this.getOptions(); + const {general: {maximumClipboardSearchLength, autoSearchClipboardContent}} = this.getOptions(); if (text.length > maximumClipboardSearchLength) { text = text.substring(0, maximumClipboardSearchLength); } this._queryInput.value = text; - this._search(animate, false); + this._search(animate, false, autoSearchClipboardContent); } _onWanakanaEnableChange(e) { @@ -323,7 +323,7 @@ class DisplaySearch extends Display { }); } - _search(animate, history) { + _search(animate, history, lookup) { const query = this._queryInput.value; const depth = this.depth; const url = window.location.href; @@ -346,6 +346,7 @@ class DisplaySearch extends Display { animate } }; + if (!lookup) { details.params.lookup = 'false'; } this.setContent(details); } diff --git a/ext/bg/settings2.html b/ext/bg/settings2.html index 98274277..ba37c860 100644 --- a/ext/bg/settings2.html +++ b/ext/bg/settings2.html @@ -991,6 +991,29 @@ +