| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| (Empty) | |
| 1 /* | |
|
Wladimir Palant
2012/11/06 15:48:03
The name for this file should be more descriptive
| |
| 2 * This Source Code is subject to the terms of the Mozilla Public License | |
| 3 * version 2.0 (the "License"). You can obtain a copy of the License at | |
| 4 * http://mozilla.org/MPL/2.0/. | |
| 5 */ | |
| 6 | |
| 7 let {Prefs} = require("prefs"); | |
| 8 | |
| 9 let TypoActions = | |
| 10 { | |
| 11 init: function() | |
| 12 { | |
| 13 let enabled = Prefs.correctTypos; | |
| 14 E("typo_enable").checked = enabled; | |
| 15 E("typo_whitelist_container").style.visibility = (enabled) ? "visible" : "hi dden"; | |
| 16 | |
| 17 TypoActions.updateList(); | |
| 18 }, | |
| 19 | |
| 20 onPrefChange: function(name) | |
| 21 { | |
| 22 if (name == "whitelist") | |
| 23 TypoActions.updateList(); | |
| 24 }, | |
| 25 | |
| 26 toggleEnable: function(checked) | |
|
Wladimir Palant
2012/11/09 08:26:15
This function doesn't toggle, it just sets a varia
| |
| 27 { | |
| 28 E("typo_whitelist_container").style.visibility = (checked) ? "visible" : "hi dden"; | |
|
Wladimir Palant
2012/11/09 08:26:15
Please don't assume that the pref can only change
| |
| 29 Prefs.correctTypos = checked; | |
| 30 }, | |
| 31 | |
| 32 onItemSelected: function(list) | |
| 33 { | |
| 34 let button = E(list.getAttribute("_removeButton")); | |
| 35 let items = list.selectedItems; | |
| 36 button.disabled = (items.length == 0 || (items.length == 1 && !items[0].valu e)); | |
| 37 }, | |
| 38 | |
| 39 removeRule: function(btn, pref) | |
| 40 { | |
| 41 let list = E(btn.getAttribute("_list")); | |
| 42 let items = list.selectedItems; | |
| 43 | |
| 44 let {onWhitelistEntryRemoved} = require("typoRules"); | |
| 45 | |
| 46 for (let i = items.length - 1; i >= 0; i--) | |
| 47 { | |
| 48 let searchString = items[i].getAttribute("value"); | |
| 49 delete Prefs[pref][searchString]; | |
| 50 | |
| 51 if (pref == "whitelist") | |
| 52 onWhitelistEntryRemoved(searchString); | |
| 53 } | |
| 54 Prefs[pref] = JSON.parse(JSON.stringify(Prefs[pref])); | |
| 55 }, | |
| 56 | |
| 57 updateList: function() | |
| 58 { | |
| 59 let whitelistElement = E("typo_whitelist"); | |
| 60 | |
| 61 // Remove existing list entries | |
| 62 for (let i = whitelistElement.getRowCount() - 1; i >= 0; i--) | |
| 63 whitelistElement.removeItemAt(i); | |
| 64 | |
| 65 // Build a list of exceptions and sort it alphabetically | |
| 66 let whitelist = Object.keys(Prefs.whitelist); | |
| 67 whitelist.sort(); | |
| 68 | |
| 69 // Add the rules to the list | |
| 70 if (whitelist.length > 0) | |
| 71 { | |
| 72 for (let i = 0; i < whitelist.length; i++) | |
| 73 { | |
| 74 let option = document.createElement("listitem"); | |
| 75 option.setAttribute("value", whitelist[i]); | |
| 76 option.setAttribute("label", whitelist[i]); | |
| 77 | |
| 78 whitelistElement.appendChild(option); | |
| 79 } | |
| 80 } | |
| 81 else | |
| 82 { | |
| 83 let option = document.createElement("listitem"); | |
| 84 option.setAttribute("class", "auto-entry"); | |
| 85 option.setAttribute("label", whitelistElement.getAttribute("_emptyLabel")) ; | |
| 86 | |
| 87 whitelistElement.appendChild(option); | |
| 88 } | |
| 89 } | |
| 90 }; | |
| 91 | |
| 92 Prefs.addListener(TypoActions.onPrefChange); | |
| 93 window.addEventListener("unload", function() Prefs.removeListener(TypoActions.on PrefChange), false); | |
|
Wladimir Palant
2012/11/09 08:26:15
These two lines should be in the init() function.
| |
| OLD | NEW |