diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-04-01 12:09:40 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-04-01 12:09:40 -0700 | 
| commit | 681470db67fc4fa706e2d29ee5beb54859fe5567 (patch) | |
| tree | 9e818516591765b38fbcb304479886b8b6c6f04d | |
| parent | f7e47d1dbd1f9a7d42af2cecc4de8d078b062a89 (diff) | |
| parent | 4eb3e2f06cd83ef0721557f8559fc0a6d70ad4f5 (diff) | |
Merge branch 'master' into firefox-amo
| -rw-r--r-- | ext/bg/js/options.js | 2 | ||||
| -rw-r--r-- | ext/bg/js/util.js | 3 | ||||
| -rw-r--r-- | ext/bg/options.html | 13 | ||||
| -rw-r--r-- | ext/fg/js/display-frame.js | 22 | ||||
| -rw-r--r-- | ext/fg/js/driver.js | 4 | ||||
| -rw-r--r-- | ext/manifest.json | 5 | ||||
| -rw-r--r-- | ext/mixed/js/display.js | 2 | 
7 files changed, 44 insertions, 7 deletions
| diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index 2089cc53..75f39d24 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -26,6 +26,7 @@ function formRead() {          const optionsNew = $.extend(true, {}, optionsOld);          optionsNew.general.audioPlayback = $('#audio-playback-buttons').prop('checked'); +        optionsNew.general.audioVolume = $('#audio-playback-volume').val();          optionsNew.general.groupResults = $('#group-terms-results').prop('checked');          optionsNew.general.softKatakana = $('#soft-katakana-search').prop('checked');          optionsNew.general.showAdvanced = $('#show-advanced-options').prop('checked'); @@ -111,6 +112,7 @@ $(document).ready(() => {      optionsLoad().then(options => {          $('#audio-playback-buttons').prop('checked', options.general.audioPlayback); +        $('#audio-playback-volume').val(options.general.audioVolume);          $('#group-terms-results').prop('checked', options.general.groupResults);          $('#soft-katakana-search').prop('checked', options.general.softKatakana);          $('#show-advanced-options').prop('checked', options.general.showAdvanced); diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js index d1099262..78258c97 100644 --- a/ext/bg/js/util.js +++ b/ext/bg/js/util.js @@ -85,6 +85,7 @@ function optionsSetDefaults(options) {          general: {              enable: true,              audioPlayback: true, +            audioVolume: 100,              groupResults: true,              softKatakana: true,              maxResults: 32, @@ -375,7 +376,7 @@ function dictTermsGroup(definitions, dictionaries) {              expression: firstDef.expression,              reading: firstDef.reading,              reasons: firstDef.reasons, -            score: groupDefs.reduce((x, y) => x.score > y.score ? x.score : y.score, Number.MIN_SAFE_INTEGER), +            score: groupDefs.reduce((p, v) => v.score > p ? v.score : p, Number.MIN_SAFE_INTEGER),              source: firstDef.source          });      } diff --git a/ext/bg/options.html b/ext/bg/options.html index 3e457d2d..c483c656 100644 --- a/ext/bg/options.html +++ b/ext/bg/options.html @@ -26,10 +26,6 @@                  <h3>General Options</h3>                  <div class="checkbox"> -                    <label><input type="checkbox" id="audio-playback-buttons"> Audio playback buttons</label> -                </div> - -                <div class="checkbox">                      <label><input type="checkbox" id="group-terms-results"> Group term results</label>                  </div> @@ -41,6 +37,15 @@                      <label><input type="checkbox" id="soft-katakana-search"> Soft Katakana search</label>                  </div> +                <div class="checkbox"> +                    <label><input type="checkbox" id="audio-playback-buttons"> Audio playback buttons</label> +                </div> + +                <div class="form-group options-advanced"> +                    <label for="audio-playback-volume">Audio playback volume (percent)</label> +                    <input type="number" min="0" max="100" id="audio-playback-volume" class="form-control"> +                </div> +                  <div class="form-group options-advanced">                      <label for="max-displayed-results">Maximum displayed results</label>                      <input type="number" min="1" id="max-displayed-results" class="form-control"> diff --git a/ext/fg/js/display-frame.js b/ext/fg/js/display-frame.js index 59032d0c..9fd09e74 100644 --- a/ext/fg/js/display-frame.js +++ b/ext/fg/js/display-frame.js @@ -51,6 +51,10 @@ window.displayFrame = new class extends Display {          window.parent.postMessage('popupClose', '*');      } +    selectionCopy() { +        window.parent.postMessage('selectionCopy', '*'); +    } +      showOrphaned() {          $('#content').hide();          $('#orphan').show(); @@ -77,4 +81,22 @@ window.displayFrame = new class extends Display {              handler(params);          }      } + +    onKeyDown(e) { +        const handlers = { +            67: /* c */ () => { +                if (e.ctrlKey && window.getSelection().toString() === '') { +                    this.selectionCopy(); +                    return true; +                } +            } +        }; + +        const handler = handlers[e.keyCode]; +        if (handler && handler()) { +            e.preventDefault(); +        } else { +            super.onKeyDown(e); +        } +    }  }; diff --git a/ext/fg/js/driver.js b/ext/fg/js/driver.js index 5191f18d..d4cb1532 100644 --- a/ext/fg/js/driver.js +++ b/ext/fg/js/driver.js @@ -106,6 +106,10 @@ window.driver = new class {          const handlers = {              popupClose: () => {                  this.searchClear(); +            }, + +            selectionCopy: () => { +                document.execCommand('copy');              }          }; diff --git a/ext/manifest.json b/ext/manifest.json index c3f103ed..480dd176 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -1,7 +1,7 @@  {      "manifest_version": 2,      "name": "Yomichan", -    "version": "1.1.9", +    "version": "1.1.10",      "description": "Japanese dictionary with Anki integration",      "icons": {"16": "mixed/img/icon16.png", "48": "mixed/img/icon48.png", "128": "mixed/img/icon128.png"}, @@ -29,7 +29,8 @@      },      "permissions": [          "<all_urls>", -        "storage" +        "storage", +        "clipboardWrite"      ],      "commands": {          "toggle": { diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index 9738319a..36609525 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -343,6 +343,7 @@ class Display {              let audio = this.audioCache[url];              if (audio) {                  audio.currentTime = 0; +                audio.volume = this.options.general.audioVolume / 100.0;                  audio.play();              } else {                  audio = new Audio(url); @@ -352,6 +353,7 @@ class Display {                      }                      this.audioCache[url] = audio; +                    audio.volume = this.options.general.audioVolume / 100.0;                      audio.play();                  };              } |