diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/bg/data/options-schema.json | 54 | ||||
| -rw-r--r-- | ext/bg/js/backend.js | 8 | ||||
| -rw-r--r-- | ext/bg/js/options.js | 17 | ||||
| -rw-r--r-- | ext/bg/js/search.js | 12 | ||||
| -rw-r--r-- | ext/bg/js/settings/clipboard-popups-controller.js | 10 | ||||
| -rw-r--r-- | ext/bg/settings.html | 2 | ||||
| -rw-r--r-- | ext/bg/settings2.html | 6 | 
7 files changed, 63 insertions, 46 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", |