Left: | ||
Right: |
OLD | NEW |
---|---|
(Empty) | |
1 /* | |
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 TypoActions.updateState(); | |
14 TypoActions.updateList(); | |
15 | |
16 Prefs.addListener(TypoActions.onPrefChange); | |
17 window.addEventListener("unload", function() Prefs.removeListener(TypoAction s.onPrefChange), false); | |
18 }, | |
19 | |
20 onPrefChange: function(name) | |
21 { | |
22 if (name == "whitelist") | |
23 TypoActions.updateList(); | |
24 else if (name == "correctTypos") | |
25 TypoActions.updateState(); | |
26 else if (name == "whitelist") | |
27 TypoActions.updateList(); | |
Wladimir Palant
2012/11/09 13:20:51
Are you making extra sure to handle the whitelist
| |
28 }, | |
29 | |
30 setEnabled: function(checked) | |
31 { | |
32 Prefs.correctTypos = checked; | |
33 }, | |
34 | |
35 onItemSelected: function(list) | |
36 { | |
37 let button = E(list.getAttribute("_removeButton")); | |
38 let items = list.selectedItems; | |
39 button.disabled = (items.length == 0 || (items.length == 1 && !items[0].valu e)); | |
40 }, | |
41 | |
42 removeRule: function(btn, pref) | |
43 { | |
44 let list = E(btn.getAttribute("_list")); | |
45 let items = list.selectedItems; | |
46 | |
47 let {onWhitelistEntryRemoved} = require("typoRules"); | |
48 | |
49 for (let i = items.length - 1; i >= 0; i--) | |
50 { | |
51 let searchString = items[i].getAttribute("value"); | |
52 delete Prefs[pref][searchString]; | |
53 | |
54 if (pref == "whitelist") | |
55 onWhitelistEntryRemoved(searchString); | |
56 } | |
57 Prefs[pref] = JSON.parse(JSON.stringify(Prefs[pref])); | |
58 }, | |
59 | |
60 updateList: function() | |
61 { | |
62 let whitelistElement = E("typo_whitelist"); | |
63 | |
64 // Remove existing list entries | |
65 for (let i = whitelistElement.getRowCount() - 1; i >= 0; i--) | |
66 whitelistElement.removeItemAt(i); | |
67 | |
68 // Build a list of exceptions and sort it alphabetically | |
69 let whitelist = Object.keys(Prefs.whitelist); | |
70 whitelist.sort(); | |
71 | |
72 // Add the rules to the list | |
73 if (whitelist.length > 0) | |
74 { | |
75 for (let i = 0; i < whitelist.length; i++) | |
76 { | |
77 let option = document.createElement("listitem"); | |
78 option.setAttribute("value", whitelist[i]); | |
79 option.setAttribute("label", whitelist[i]); | |
80 | |
81 whitelistElement.appendChild(option); | |
82 } | |
83 } | |
84 else | |
85 { | |
86 let option = document.createElement("listitem"); | |
87 option.setAttribute("class", "auto-entry"); | |
88 option.setAttribute("label", whitelistElement.getAttribute("_emptyLabel")) ; | |
89 | |
90 whitelistElement.appendChild(option); | |
91 } | |
92 }, | |
93 | |
94 updateState: function() | |
95 { | |
96 let enabled = Prefs.correctTypos; | |
97 E("typo_enable").checked = enabled; | |
98 E("typo_whitelist_container").style.visibility = (enabled) ? "visible" : "hi dden"; | |
Wladimir Palant
2012/11/09 13:20:51
Please use .hidden property here, forgot to note t
| |
99 } | |
100 }; | |
101 | |
102 window.addEventListener("load", function() | |
103 { | |
104 TypoActions.init(); | |
105 }, false); | |
OLD | NEW |