Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: lib/main.js

Issue 4744516900749312: issue #1155 - Don't allow displaying icon text with Australis theme (Closed)
Patch Set: Created July 30, 2014, 9:13 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/content/settings.xul ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This Source Code is subject to the terms of the Mozilla Public License 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 3 * version 2.0 (the "License"). You can obtain a copy of the License at
4 * http://mozilla.org/MPL/2.0/. 4 * http://mozilla.org/MPL/2.0/.
5 */ 5 */
6 6
7 Cu.import("resource://gre/modules/Services.jsm"); 7 Cu.import("resource://gre/modules/Services.jsm");
8 let {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", null);
8 9
9 let {Prefs} = require("prefs"); 10 let {Prefs} = require("prefs");
10 let {WindowObserver} = require("windowObserver"); 11 let {WindowObserver} = require("windowObserver");
11 12
13 let CustomizableUI = null;
Wladimir Palant 2014/07/30 09:38:55 No point keeping a global reference to Customizabl
saroyanm 2014/07/30 10:56:23 Done.
14
12 var WindowFeature = 15 var WindowFeature =
13 { 16 {
14 observer: null, 17 observer: null,
15 18
16 init: function() 19 init: function()
17 { 20 {
18 if (!this.observer) 21 if (!this.observer)
19 this.observer = new WindowObserver(this, "ready"); 22 this.observer = new WindowObserver(this, "ready");
20 }, 23 },
21 24
(...skipping 12 matching lines...) Expand all
34 }, 37 },
35 38
36 removeFromWindow: function(window) 39 removeFromWindow: function(window)
37 { 40 {
38 if (window.location.href != this.windowUrl) 41 if (window.location.href != this.windowUrl)
39 return; 42 return;
40 this._removeFromWindow(window); 43 this._removeFromWindow(window);
41 } 44 }
42 } 45 }
43 46
47 /**
48 * Object initializing add-on options, observes add-on manager notifications
49 * about add-on options being opened.
50 * @type nsIObserver
51 */
52 let optionsObserver =
53 {
54 init: function()
55 {
56 Services.obs.addObserver(this, "addon-options-displayed", true);
57 onShutdown.add(function()
58 {
59 Services.obs.removeObserver(this, "addon-options-displayed");
60 }.bind(this));
61 },
62
63 initOptionsDoc: function(/**Document*/ doc)
64 {
65 if (CustomizableUI)
66 doc.getElementById("abpcustomization-icondisplay").collapsed = true;
67 },
68
69 observe: function(subject, topic, data)
70 {
71 let {addonID} = require("info")
72 if (data != addonID)
73 return;
74
75 this.initOptionsDoc(subject.QueryInterface(Ci.nsIDOMDocument));
76 },
77
78 QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakRefer ence])
79 };
80 optionsObserver.init();
81
44 var VerticalPreferencesLayout = 82 var VerticalPreferencesLayout =
45 { 83 {
46 __proto__: WindowFeature, 84 __proto__: WindowFeature,
47 windowUrl: "chrome://adblockplus/content/ui/filters.xul", 85 windowUrl: "chrome://adblockplus/content/ui/filters.xul",
48 86
49 _applyToWindow: function(window) 87 _applyToWindow: function(window)
50 { 88 {
51 let content = window.document.getElementById("content"); 89 let content = window.document.getElementById("content");
52 let splitter = window.document.getElementById("filtersSplitter"); 90 let splitter = window.document.getElementById("filtersSplitter");
53 if (!content || !splitter) 91 if (!content || !splitter)
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 "vertical-preferences-layout": VerticalPreferencesLayout, 209 "vertical-preferences-layout": VerticalPreferencesLayout,
172 "preferences-one-line-subscriptions": OneLineSubscriptions, 210 "preferences-one-line-subscriptions": OneLineSubscriptions,
173 "preferences-remove-actions-button": RemoveActionsButton, 211 "preferences-remove-actions-button": RemoveActionsButton,
174 "toolbar-icon-display": ToolbarIconDisplay, 212 "toolbar-icon-display": ToolbarIconDisplay,
175 "green-icon": GreenIcon, 213 "green-icon": GreenIcon,
176 "remove-menus": RemoveMenus 214 "remove-menus": RemoveMenus
177 }; 215 };
178 216
179 function updateFeature(name) 217 function updateFeature(name)
180 { 218 {
219 try
220 {
221 ({CustomizableUI}) = Cu.import("resource:///modules/CustomizableUI.jsm", nul l);
222 } catch (e) {}
Wladimir Palant 2014/07/30 09:38:55 Why run this for each feature? It should be best t
saroyanm 2014/07/30 10:56:23 Oops, too inattentive today!
223
181 if (name in features) 224 if (name in features)
182 { 225 {
183 let enabled; 226 let enabled;
184 if (name == "addon-page-styles") 227 if (name == "addon-page-styles")
185 enabled = true; 228 enabled = true;
Wladimir Palant 2014/07/30 09:38:55 Actually, seeing this - it's probably cleaner to i
saroyanm 2014/07/30 10:56:23 Awesome, great idea. How could I miss that.
229 else if (name == "toolbar-icon-display" && CustomizableUI)
230 enabled = false;
186 else 231 else
187 enabled = Prefs[name]; 232 enabled = Prefs[name];
188 233
189 if (enabled) 234 if (enabled)
190 features[name].init(); 235 features[name].init();
191 else 236 else
192 features[name].shutdown(); 237 features[name].shutdown();
193 } 238 }
194 } 239 }
195 240
196
197 // Initialize features and make sure to update them on changes 241 // Initialize features and make sure to update them on changes
198 for (let feature in features) 242 for (let feature in features)
199 updateFeature(feature); 243 updateFeature(feature);
200 244
201 Prefs.addListener(updateFeature); 245 Prefs.addListener(updateFeature);
OLDNEW
« no previous file with comments | « chrome/content/settings.xul ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld