aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/bg/data/options-schema.json54
-rw-r--r--ext/bg/js/backend.js8
-rw-r--r--ext/bg/js/options.js17
-rw-r--r--ext/bg/js/search.js12
-rw-r--r--ext/bg/js/settings/clipboard-popups-controller.js10
-rw-r--r--ext/bg/settings.html2
-rw-r--r--ext/bg/settings2.html6
-rw-r--r--test/test-options-util.js12
8 files changed, 70 insertions, 51 deletions
diff --git a/ext/bg/data/options-schema.json b/ext/bg/data/options-schema.json
index b03f0234..f4f5d0ca 100644
--- a/ext/bg/data/options-schema.json
+++ b/ext/bg/data/options-schema.json
@@ -71,14 +71,14 @@
"parsing",
"anki",
"sentenceParsing",
- "inputs"
+ "inputs",
+ "clipboard"
],
"properties": {
"general": {
"type": "object",
"required": [
"enable",
- "enableClipboardPopups",
"resultOutputMode",
"debugInfo",
"maxResults",
@@ -104,7 +104,6 @@
"customPopupCss",
"customPopupOuterCss",
"enableWanakana",
- "enableClipboardMonitor",
"showPitchAccentDownstepNotation",
"showPitchAccentPositionNotation",
"showPitchAccentGraph",
@@ -112,21 +111,15 @@
"useSecurePopupFrameUrl",
"usePopupShadowDom",
"usePopupWindow",
- "maximumClipboardSearchLength",
"popupCurrentIndicatorMode",
"popupActionBarVisibility",
- "popupActionBarLocation",
- "autoSearchClipboardContent"
+ "popupActionBarLocation"
],
"properties": {
"enable": {
"type": "boolean",
"default": true
},
- "enableClipboardPopups": {
- "type": "boolean",
- "default": false
- },
"resultOutputMode": {
"type": "string",
"enum": ["group", "merge", "split"],
@@ -236,10 +229,6 @@
"type": "boolean",
"default": true
},
- "enableClipboardMonitor": {
- "type": "boolean",
- "default": false
- },
"showPitchAccentDownstepNotation": {
"type": "boolean",
"default": true
@@ -268,11 +257,6 @@
"type": "boolean",
"default": false
},
- "maximumClipboardSearchLength": {
- "type": "integer",
- "default": 1000,
- "minimum": 0
- },
"popupCurrentIndicatorMode": {
"type": "string",
"enum": ["none", "asterisk", "triangle", "bar-left", "bar-right", "dot-left", "dot-right"],
@@ -287,10 +271,6 @@
"type": "string",
"enum": ["left", "right", "top", "bottom"],
"default": "top"
- },
- "autoSearchClipboardContent": {
- "type": "boolean",
- "default": true
}
}
},
@@ -1053,6 +1033,34 @@
]
}
}
+ },
+ "clipboard": {
+ "type": "object",
+ "required": [
+ "enableBackgroundMonitor",
+ "enableSearchPageMonitor",
+ "autoSearchContent",
+ "maximumSearchLength"
+ ],
+ "properties": {
+ "enableBackgroundMonitor": {
+ "type": "boolean",
+ "default": false
+ },
+ "enableSearchPageMonitor": {
+ "type": "boolean",
+ "default": false
+ },
+ "autoSearchContent": {
+ "type": "boolean",
+ "default": true
+ },
+ "maximumSearchLength": {
+ "type": "integer",
+ "default": 1000,
+ "minimum": 0
+ }
+ }
}
}
}
diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js
index fb0596d5..9a8844c5 100644
--- a/ext/bg/js/backend.js
+++ b/ext/bg/js/backend.js
@@ -233,9 +233,9 @@ class Backend {
// Event handlers
async _onClipboardTextChange({text}) {
- const {general: {maximumClipboardSearchLength}} = this._getProfileOptions({current: true});
- if (text.length > maximumClipboardSearchLength) {
- text = text.substring(0, maximumClipboardSearchLength);
+ const {clipboard: {maximumSearchLength}} = this._getProfileOptions({current: true});
+ if (text.length > maximumSearchLength) {
+ text = text.substring(0, maximumSearchLength);
}
try {
const {tab, created} = await this._getOrCreateSearchPopup();
@@ -912,7 +912,7 @@ class Backend {
this._mecab.stopListener();
}
- if (options.general.enableClipboardPopups) {
+ if (options.clipboard.enableBackgroundMonitor) {
this._clipboardMonitor.start();
} else {
this._clipboardMonitor.stop();
diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js
index 14b858aa..02caa5a2 100644
--- a/ext/bg/js/options.js
+++ b/ext/bg/js/options.js
@@ -669,8 +669,10 @@ class OptionsUtil {
// Updated handlebars templates to include "stroke-count" definition.
// Updated global.useSettingsV2 to be true (opt-out).
// Added audio.customSourceType.
- // Added general.autoSearchClipboardContent.
- // Forced general.enableClipboardMonitor to false due to a bug which caused its value to not be read.
+ // Moved general.enableClipboardPopups => clipboard.enableBackgroundMonitor.
+ // Moved general.enableClipboardMonitor => clipboard.enableSearchPageMonitor. Forced value to false due to a bug which caused its value to not be read.
+ // Moved general.maximumClipboardSearchLength => clipboard.maximumSearchLength.
+ // Added clipboard.autoSearchContent.
await this._addFieldTemplatesToOptions(options, '/bg/data/anki-field-templates-upgrade-v8.handlebars');
options.global.useSettingsV2 = true;
for (const profile of options.profiles) {
@@ -730,8 +732,15 @@ class OptionsUtil {
windowState: 'normal'
};
profile.options.audio.customSourceType = 'audio';
- profile.options.general.autoSearchClipboardContent = true;
- profile.options.general.enableClipboardMonitor = false;
+ profile.options.clipboard = {
+ enableBackgroundMonitor: profile.options.general.enableClipboardPopups,
+ enableSearchPageMonitor: false,
+ autoSearchContent: true,
+ maximumSearchLength: profile.options.general.maximumClipboardSearchLength
+ };
+ delete profile.options.general.enableClipboardPopups;
+ delete profile.options.general.enableClipboardMonitor;
+ delete profile.options.general.maximumClipboardSearchLength;
}
return options;
}
diff --git a/ext/bg/js/search.js b/ext/bg/js/search.js
index c17ae1ac..27cba50f 100644
--- a/ext/bg/js/search.js
+++ b/ext/bg/js/search.js
@@ -126,7 +126,7 @@ class DisplaySearch extends Display {
}
_onDisplayOptionsUpdated({options}) {
- this._clipboardMonitorEnabled = options.general.enableClipboardMonitor;
+ this._clipboardMonitorEnabled = options.clipboard.enableSearchPageMonitor;
this._updateClipboardMonitorEnabled();
}
@@ -182,13 +182,13 @@ class DisplaySearch extends Display {
}
_onExternalSearchUpdate({text, animate=true}) {
- const {general: {maximumClipboardSearchLength, autoSearchClipboardContent}} = this.getOptions();
- if (text.length > maximumClipboardSearchLength) {
- text = text.substring(0, maximumClipboardSearchLength);
+ const {clipboard: {autoSearchContent, maximumSearchLength}} = this.getOptions();
+ if (text.length > maximumSearchLength) {
+ text = text.substring(0, maximumSearchLength);
}
this._queryInput.value = text;
this._updateSearchHeight(true);
- this._search(animate, false, autoSearchClipboardContent);
+ this._search(animate, false, autoSearchContent);
}
_onWanakanaEnableChange(e) {
@@ -303,7 +303,7 @@ class DisplaySearch extends Display {
await api.modifySettings([{
action: 'set',
- path: 'general.enableClipboardMonitor',
+ path: 'clipboard.enableSearchPageMonitor',
value,
scope: 'profile',
optionsContext: this.getOptionsContext()
diff --git a/ext/bg/js/settings/clipboard-popups-controller.js b/ext/bg/js/settings/clipboard-popups-controller.js
index 810b1bc6..fcff444c 100644
--- a/ext/bg/js/settings/clipboard-popups-controller.js
+++ b/ext/bg/js/settings/clipboard-popups-controller.js
@@ -18,11 +18,11 @@
class ClipboardPopupsController {
constructor(settingsController) {
this._settingsController = settingsController;
- this._checkbox = document.querySelector('#enable-clipboard-popups');
+ this._checkbox = document.querySelector('#clipboard-enable-background-monitor');
}
async prepare() {
- this._checkbox.addEventListener('change', this._onEnableClipboardPopupsChanged.bind(this), false);
+ this._checkbox.addEventListener('change', this._onEnableBackgroundMonitorChanged.bind(this), false);
this._settingsController.on('optionsChanged', this._onOptionsChanged.bind(this));
const options = await this._settingsController.getOptions();
@@ -32,10 +32,10 @@ class ClipboardPopupsController {
// Private
_onOptionsChanged({options}) {
- this._checkbox.checked = options.general.enableClipboardPopups;
+ this._checkbox.checked = options.clipboard.enableBackgroundMonitor;
}
- async _onEnableClipboardPopupsChanged(e) {
+ async _onEnableBackgroundMonitorChanged(e) {
const checkbox = e.currentTarget;
let value = checkbox.checked;
@@ -46,6 +46,6 @@ class ClipboardPopupsController {
checkbox.checked = value;
}
- await this._settingsController.setProfileSetting('general.enableClipboardPopups', value);
+ await this._settingsController.setProfileSetting('clipboard.enableBackgroundMonitor', value);
}
}
diff --git a/ext/bg/settings.html b/ext/bg/settings.html
index 71da3fb3..208ac27c 100644
--- a/ext/bg/settings.html
+++ b/ext/bg/settings.html
@@ -162,7 +162,7 @@
</div>
<div class="checkbox options-advanced ignore-form-changes" data-hide-for-browser="firefox-mobile">
- <label><input type="checkbox" id="enable-clipboard-popups"> Enable native popups when copying Japanese text</label>
+ <label><input type="checkbox" id="clipboard-enable-background-monitor"> Enable native popups when copying Japanese text</label>
</div>
<div class="checkbox options-advanced">
diff --git a/ext/bg/settings2.html b/ext/bg/settings2.html
index ba37c860..c8c35c3d 100644
--- a/ext/bg/settings2.html
+++ b/ext/bg/settings2.html
@@ -960,7 +960,7 @@
</div>
</div>
<div class="settings-item-right">
- <label class="toggle"><input type="checkbox" id="enable-clipboard-popups"><span class="toggle-body"><span class="toggle-track"></span><span class="toggle-knob"></span></span></label>
+ <label class="toggle"><input type="checkbox" id="clipboard-enable-background-monitor"><span class="toggle-body"><span class="toggle-track"></span><span class="toggle-knob"></span></span></label>
</div>
</div>
<div class="settings-item-children more" hidden>
@@ -988,7 +988,7 @@
<div class="settings-item-description">Limit the number of text characters used when searching clipboard content.</div>
</div>
<div class="settings-item-right">
- <input type="number" min="0" step="1" data-setting="general.maximumClipboardSearchLength">
+ <input type="number" min="0" step="1" data-setting="clipboard.maximumSearchLength">
</div>
</div></div>
<div class="settings-item"><div class="settings-item-inner settings-item-inner-wrappable">
@@ -997,7 +997,7 @@
<div class="settings-item-description">Change how the search page reacts to new text in the clipboard.</div>
</div>
<div class="settings-item-right">
- <select data-setting="general.autoSearchClipboardContent"
+ <select data-setting="clipboard.autoSearchContent"
data-transform='[
{
"step": "pre",
diff --git a/test/test-options-util.js b/test/test-options-util.js
index 1f4e3bfb..8b8d1ce7 100644
--- a/test/test-options-util.js
+++ b/test/test-options-util.js
@@ -259,7 +259,6 @@ function createProfileOptionsUpdatedTestData1() {
return {
general: {
enable: true,
- enableClipboardPopups: false,
resultOutputMode: 'group',
debugInfo: false,
maxResults: 32,
@@ -285,7 +284,6 @@ function createProfileOptionsUpdatedTestData1() {
customPopupCss: '',
customPopupOuterCss: '',
enableWanakana: true,
- enableClipboardMonitor: false,
showPitchAccentDownstepNotation: true,
showPitchAccentPositionNotation: true,
showPitchAccentGraph: false,
@@ -293,11 +291,9 @@ function createProfileOptionsUpdatedTestData1() {
useSecurePopupFrameUrl: true,
usePopupShadowDom: true,
usePopupWindow: false,
- maximumClipboardSearchLength: 1000,
popupCurrentIndicatorMode: 'triangle',
popupActionBarVisibility: 'auto',
- popupActionBarLocation: 'top',
- autoSearchClipboardContent: true
+ popupActionBarLocation: 'top'
},
audio: {
enabled: true,
@@ -469,6 +465,12 @@ function createProfileOptionsUpdatedTestData1() {
useTop: false,
windowType: 'popup',
windowState: 'normal'
+ },
+ clipboard: {
+ enableBackgroundMonitor: false,
+ enableSearchPageMonitor: false,
+ autoSearchContent: true,
+ maximumSearchLength: 1000
}
};
}