Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: Source/devtools/front_end/SettingsScreen.js

Issue 213423010: DevTools: Migrate General tab settings to extensions (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Comments addressed Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Shortcuts, WebIn spector.UIString("Shortcuts"), WebInspector.shortcutsScreen.createShortcutsTabVi ew()); 55 this._tabbedPane.appendTab(WebInspector.SettingsScreen.Tabs.Shortcuts, WebIn spector.UIString("Shortcuts"), WebInspector.shortcutsScreen.createShortcutsTabVi ew());
56 this._tabbedPane.shrinkableTabs = false; 56 this._tabbedPane.shrinkableTabs = false;
57 this._tabbedPane.verticalTabLayout = true; 57 this._tabbedPane.verticalTabLayout = true;
58 58
59 this._lastSelectedTabSetting = WebInspector.settings.createSetting("lastSele ctedSettingsTab", WebInspector.SettingsScreen.Tabs.General); 59 this._lastSelectedTabSetting = WebInspector.settings.createSetting("lastSele ctedSettingsTab", WebInspector.SettingsScreen.Tabs.General);
60 this.selectTab(this._lastSelectedTabSetting.get()); 60 this.selectTab(this._lastSelectedTabSetting.get());
61 this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSele cted, this._tabSelected, this); 61 this._tabbedPane.addEventListener(WebInspector.TabbedPane.EventTypes.TabSele cted, this._tabSelected, this);
62 } 62 }
63 63
64 /** 64 /**
65 * @param {string} text
66 * @return {?string}
67 */
68 WebInspector.SettingsScreen.regexValidator = function(text)
69 {
70 var regex;
71 try {
72 regex = new RegExp(text);
73 } catch (e) {
74 }
75 return regex ? null : WebInspector.UIString("Invalid pattern");
76 }
77
78 /**
79 * @param {number} min 65 * @param {number} min
80 * @param {number} max 66 * @param {number} max
81 * @param {string} text 67 * @param {string} text
82 * @return {?string} 68 * @return {?string}
83 */ 69 */
84 WebInspector.SettingsScreen.integerValidator = function(min, max, text) 70 WebInspector.SettingsScreen.integerValidator = function(min, max, text)
85 { 71 {
86 var value = Number(text); 72 var value = Number(text);
87 if (isNaN(value)) 73 if (isNaN(value))
88 return WebInspector.UIString("Invalid number format"); 74 return WebInspector.UIString("Invalid number format");
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 function changeListener(e) 184 function changeListener(e)
199 { 185 {
200 // Don't use e.target.value to avoid conversion of the value to stri ng. 186 // Don't use e.target.value to avoid conversion of the value to stri ng.
201 setting.set(options[select.selectedIndex][1]); 187 setting.set(options[select.selectedIndex][1]);
202 } 188 }
203 189
204 select.addEventListener("change", changeListener, false); 190 select.addEventListener("change", changeListener, false);
205 return p; 191 return p;
206 }, 192 },
207 193
208 /**
209 * @param {string} label
210 * @param {!WebInspector.Setting} setting
211 * @param {boolean} numeric
212 * @param {number=} maxLength
213 * @param {string=} width
214 * @param {function(string):?string=} validatorCallback
215 */
216 _createInputSetting: function(label, setting, numeric, maxLength, width, val idatorCallback)
217 {
218 var p = document.createElement("p");
219 var labelElement = p.createChild("label");
220 labelElement.textContent = label;
221 var inputElement = p.createChild("input");
222 inputElement.value = setting.get();
223 inputElement.type = "text";
224 if (numeric)
225 inputElement.className = "numeric";
226 if (maxLength)
227 inputElement.maxLength = maxLength;
228 if (width)
229 inputElement.style.width = width;
230 if (validatorCallback) {
231 var errorMessageLabel = p.createChild("div");
232 errorMessageLabel.classList.add("field-error-message");
233 errorMessageLabel.style.color = "DarkRed";
234 inputElement.oninput = function()
235 {
236 var error = validatorCallback(inputElement.value);
237 if (!error)
238 error = "";
239 errorMessageLabel.textContent = error;
240 };
241 }
242
243 function onBlur()
244 {
245 setting.set(numeric ? Number(inputElement.value) : inputElement.valu e);
246 }
247 inputElement.addEventListener("blur", onBlur, false);
248
249 return p;
250 },
251
252 _createCustomSetting: function(name, element)
253 {
254 var p = document.createElement("p");
255 var fieldsetElement = document.createElement("fieldset");
256 fieldsetElement.createChild("label").textContent = name;
257 fieldsetElement.appendChild(element);
258 p.appendChild(fieldsetElement);
259 return p;
260 },
261
262 __proto__: WebInspector.VBox.prototype 194 __proto__: WebInspector.VBox.prototype
263 } 195 }
264 196
265 /** 197 /**
266 * @constructor 198 * @constructor
267 * @extends {WebInspector.SettingsTab} 199 * @extends {WebInspector.SettingsTab}
268 */ 200 */
269 WebInspector.GenericSettingsTab = function() 201 WebInspector.GenericSettingsTab = function()
270 { 202 {
271 WebInspector.SettingsTab.call(this, WebInspector.UIString("General"), "gener al-tab-content"); 203 WebInspector.SettingsTab.call(this, WebInspector.UIString("General"), "gener al-tab-content");
272 204
273 var p = this._appendSection(); 205 this._populateSectionsFromExtensions();
274 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Disable cache (while DevTools is open)"), WebInspector.settings.cacheDisa bled));
275 var disableJSElement = WebInspector.SettingsUI.createSettingCheckbox(WebInsp ector.UIString("Disable JavaScript"), WebInspector.settings.javaScriptDisabled);
276 p.appendChild(disableJSElement);
277 WebInspector.settings.javaScriptDisabled.addChangeListener(this._javaScriptD isabledChanged, this);
278 this._disableJSCheckbox = disableJSElement.getElementsByTagName("input")[0];
279 var disableJSInfoParent = this._disableJSCheckbox.parentElement.createChild( "span", "monospace");
280 this._disableJSInfo = disableJSInfoParent.createChild("span", "object-info-s tate-note hidden");
281 this._disableJSInfo.title = WebInspector.UIString("JavaScript is blocked on the inspected page (may be disabled in browser settings).");
282 206
283 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod el.EventTypes.MainFrameNavigated, this._updateScriptDisabledCheckbox, this); 207 var restoreDefaults = this._appendSection().createChild("input", "settings-t ab-text-button");
284 this._updateScriptDisabledCheckbox();
285
286 p = this._appendSection(WebInspector.UIString("Appearance"));
287 var splitVerticallyTitle = WebInspector.UIString("Split panels vertically wh en docked to %s", WebInspector.experimentsSettings.dockToLeft.isEnabled() ? "lef t or right" : "right");
288 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(splitVerticallyT itle, WebInspector.settings.splitVerticallyWhenDockedToRight));
289 var panelShortcutTitle = WebInspector.UIString("Enable %s + 1-9 shortcut to switch panels", WebInspector.isMac() ? "Cmd" : "Ctrl");
290 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(panelShortcutTit le, WebInspector.settings.shortcutPanelSwitch));
291
292 p = this._appendSection(WebInspector.UIString("Elements"));
293 var colorFormatElement = this._createSelectSetting(WebInspector.UIString("Co lor format"), [
294 [ WebInspector.UIString("As authored"), WebInspector.Color.Format.Or iginal ],
295 [ "HEX: #DAC0DE", WebInspector.Color.Format.HEX ],
296 [ "RGB: rgb(128, 255, 255)", WebInspector.Color.Format.RGB ],
297 [ "HSL: hsl(300, 80%, 90%)", WebInspector.Color.Format.HSL ]
298 ], WebInspector.settings.colorFormat);
299 p.appendChild(colorFormatElement);
300 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Show user agent styles"), WebInspector.settings.showUserAgentStyles));
301 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Show user agent shadow DOM"), WebInspector.settings.showUAShadowDOM));
302 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Word wrap"), WebInspector.settings.domWordWrap));
303 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Show rulers"), WebInspector.settings.showMetricsRulers));
304
305 p = this._appendSection(WebInspector.UIString("Sources"));
306 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Search in content scripts"), WebInspector.settings.searchInContentScripts ));
307 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Enable JavaScript source maps"), WebInspector.settings.jsSourceMapsEnable d));
308
309 var checkbox = WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UI String("Enable CSS source maps"), WebInspector.settings.cssSourceMapsEnabled);
310 p.appendChild(checkbox);
311 var fieldset = WebInspector.SettingsUI.createSettingFieldset(WebInspector.se ttings.cssSourceMapsEnabled);
312 var autoReloadCSSCheckbox = fieldset.createChild("input");
313 fieldset.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspec tor.UIString("Auto-reload generated CSS"), WebInspector.settings.cssReloadEnable d, false, autoReloadCSSCheckbox));
314 checkbox.appendChild(fieldset);
315
316 var indentationElement = this._createSelectSetting(WebInspector.UIString("De fault indentation"), [
317 [ WebInspector.UIString("2 spaces"), WebInspector.TextUtils.Indent.T woSpaces ],
318 [ WebInspector.UIString("4 spaces"), WebInspector.TextUtils.Indent.F ourSpaces ],
319 [ WebInspector.UIString("8 spaces"), WebInspector.TextUtils.Indent.E ightSpaces ],
320 [ WebInspector.UIString("Tab character"), WebInspector.TextUtils.Ind ent.TabCharacter ]
321 ], WebInspector.settings.textEditorIndent);
322 p.appendChild(indentationElement);
323 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Detect indentation"), WebInspector.settings.textEditorAutoDetectIndent));
324 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Autocompletion"), WebInspector.settings.textEditorAutocompletion));
325 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Bracket matching"), WebInspector.settings.textEditorBracketMatching));
326 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Show whitespace characters"), WebInspector.settings.showWhitespacesInEdit or));
327 if (WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled()) {
328 checkbox = WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UI String("Skip stepping through sources with particular names"), WebInspector.sett ings.skipStackFramesSwitch);
329 fieldset = WebInspector.SettingsUI.createSettingFieldset(WebInspector.se ttings.skipStackFramesSwitch);
330 fieldset.appendChild(this._createInputSetting(WebInspector.UIString("Pat tern"), WebInspector.settings.skipStackFramesPattern, false, 1000, "100px", WebI nspector.SettingsScreen.regexValidator));
331 checkbox.appendChild(fieldset);
332 p.appendChild(checkbox);
333 }
334 WebInspector.settings.skipStackFramesSwitch.addChangeListener(this._skipStac kFramesSwitchOrPatternChanged, this);
335 WebInspector.settings.skipStackFramesPattern.addChangeListener(this._skipSta ckFramesSwitchOrPatternChanged, this);
336
337 p = this._appendSection(WebInspector.UIString("Profiler"));
338 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Show advanced heap snapshot properties"), WebInspector.settings.showAdvan cedHeapSnapshotProperties));
339 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("High resolution CPU profiling"), WebInspector.settings.highResolutionCpuP rofiling));
340
341 p = this._appendSection(WebInspector.UIString("Console"));
342 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Log XMLHttpRequests"), WebInspector.settings.monitoringXHREnabled));
343 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Preserve log upon navigation"), WebInspector.settings.preserveConsoleLog) );
344 p.appendChild(WebInspector.SettingsUI.createSettingCheckbox(WebInspector.UIS tring("Show timestamps"), WebInspector.settings.consoleTimestampsEnabled));
345
346 if (WebInspector.openAnchorLocationRegistry.handlerNames.length > 0) {
347 var handlerSelector = new WebInspector.HandlerSelector(WebInspector.open AnchorLocationRegistry);
348 p = this._appendSection(WebInspector.UIString("Extensions"));
349 p.appendChild(this._createCustomSetting(WebInspector.UIString("Open link s in"), handlerSelector.element));
350 }
351
352 p = this._appendSection();
353
354 var restoreDefaults = p.createChild("input", "settings-tab-text-button");
355 restoreDefaults.type = "button"; 208 restoreDefaults.type = "button";
356 restoreDefaults.value = WebInspector.UIString("Restore defaults and reload") ; 209 restoreDefaults.value = WebInspector.UIString("Restore defaults and reload") ;
357 restoreDefaults.addEventListener("click", restoreAndReload); 210 restoreDefaults.addEventListener("click", restoreAndReload);
358 211
359 function restoreAndReload() 212 function restoreAndReload()
360 { 213 {
361 if (window.localStorage) 214 if (window.localStorage)
362 window.localStorage.clear(); 215 window.localStorage.clear();
363 WebInspector.reload(); 216 WebInspector.reload();
364 } 217 }
365 } 218 }
366 219
367 WebInspector.GenericSettingsTab.prototype = { 220 WebInspector.GenericSettingsTab.prototype = {
368 _updateScriptDisabledCheckbox: function() 221 _populateSectionsFromExtensions: function()
369 { 222 {
223 var explicitSectionOrder = ["", "Appearance", "Elements", "Sources", "Pr ofiler", "Console", "Extensions"];
224
225 var allExtensions = WebInspector.moduleManager.extensions("setting");
pfeldman 2014/03/31 12:00:43 ui-setting
apavlov 2014/04/01 10:34:56 Done.
226 /** @type {!StringMap.<!Array.<!WebInspector.ModuleManager.Extension>>} */
227 var extensionsBySectionId = new StringMap();
228 /** @type {!StringMap.<!Array.<!WebInspector.ModuleManager.Extension>>} */
229 var childSettingExtensionsByParentName = new StringMap();
230
370 /** 231 /**
371 * @param {?Protocol.Error} error 232 * @param {!StringMap.<T>} map
372 * @param {string} status 233 * @param {string} key
373 * @this {WebInspector.GenericSettingsTab} 234 * @param {T} value
235 * @template T
374 */ 236 */
375 function executionStatusCallback(error, status) 237 function appendToListByKey(map, key, value) {
pfeldman 2014/03/31 12:00:43 nit: utilities.js Multimap ?
apavlov 2014/04/01 10:34:56 Done.
376 { 238 var list = map.get(key);
377 if (error || !status) 239 if (!list) {
378 return; 240 list = [];
379 241 map.put(key, list);
380 var forbidden = (status === "forbidden"); 242 }
381 var disabled = forbidden || (status === "disabled"); 243 list.push(value);
382
383 this._disableJSInfo.classList.toggle("hidden", !forbidden);
384 this._disableJSCheckbox.checked = disabled;
385 this._disableJSCheckbox.disabled = forbidden;
386 } 244 }
387 245
388 PageAgent.getScriptExecutionStatus(executionStatusCallback.bind(this)); 246 allExtensions.forEach(function(extension) {
389 }, 247 var descriptor = extension.descriptor();
248 var sectionName = descriptor["section"] || "";
249 if (!sectionName && descriptor["parentSettingName"]) {
250 appendToListByKey(childSettingExtensionsByParentName, descriptor ["parentSettingName"], extension);
251 return;
252 }
253 appendToListByKey(extensionsBySectionId, sectionName, extension);
254 });
390 255
391 _javaScriptDisabledChanged: function() 256 var sectionIds = extensionsBySectionId.keys();
392 { 257 var explicitlyOrderedSections = {};
393 // We need to manually update the checkbox state, since enabling JavaScr ipt in the page can actually uncover the "forbidden" state. 258 for (var i = 0; i < explicitSectionOrder.length; ++i) {
394 PageAgent.setScriptExecutionDisabled(WebInspector.settings.javaScriptDis abled.get(), this._updateScriptDisabledCheckbox.bind(this)); 259 explicitlyOrderedSections[explicitSectionOrder[i]] = true;
395 }, 260 var extensions = /** @type {!Array.<!WebInspector.ModuleManager.Exte nsion>} */ (extensionsBySectionId.get(explicitSectionOrder[i]));
396 261 if (!extensions)
397 _skipStackFramesSwitchOrPatternChanged: function() 262 continue;
398 { 263 this._addSectionWithExtensionProvidedSettings(explicitSectionOrder[i ], extensions, childSettingExtensionsByParentName);
399 WebInspector.debuggerModel.applySkipStackFrameSettings(); 264 }
265 for (var i = 0; i < sectionIds.length; ++i) {
266 if (explicitlyOrderedSections[sectionIds[i]])
267 continue;
268 this._addSectionWithExtensionProvidedSettings(sectionIds[i], /** @ty pe {!Array.<!WebInspector.ModuleManager.Extension>} */ (extensionsBySectionId.ge t(sectionIds[i])), childSettingExtensionsByParentName);
269 }
400 }, 270 },
401 271
402 /** 272 /**
273 * @param {string} sectionName
274 * @param {!Array.<!WebInspector.ModuleManager.Extension>} extensions
275 * @param {!StringMap.<!Array.<!WebInspector.ModuleManager.Extension>>} chil dSettingExtensionsByParentName
276 */
277 _addSectionWithExtensionProvidedSettings: function(sectionName, extensions, childSettingExtensionsByParentName)
278 {
279 var uiSectionName = sectionName && WebInspector.UIString(sectionName);
280 var sectionElement = this._appendSection(uiSectionName);
pfeldman 2014/03/31 12:00:43 What if several extensions provide setting into th
apavlov 2014/04/01 10:34:56 |extensions| contains all extensions that provide
281 extensions.forEach(processSetting.bind(this, null));
282
283 /**
284 * @param {?Element} parentFieldset
285 * @param {!WebInspector.ModuleManager.Extension} extension
286 * @this {WebInspector.GenericSettingsTab}
287 */
288 function processSetting(parentFieldset, extension)
289 {
290 var descriptor = extension.descriptor();
291 var experimentName = descriptor["experiment"];
292 if (experimentName && (!WebInspector.experimentsSettings[experimentN ame] || !WebInspector.experimentsSettings[experimentName].isEnabled()))
293 return;
294
295 var settingName = descriptor["settingName"];
296 var setting = WebInspector.settings[settingName];
297 var instance = extension.instance();
298 var settingControl;
299 if (instance) {
300 if (descriptor["settingType"] === "custom") {
301 settingControl = instance.settingElement();
302 if (!settingControl)
303 return;
304 }
305 if (setting)
306 setting.addChangeListener(instance.settingChanged, instance) ;
307 }
308 if (!settingControl) {
309 var uiTitle = WebInspector.UIString(descriptor["title"]);
310 settingControl = createSettingControl.call(this, uiTitle, settin g, descriptor, instance);
311 }
312 if (settingName) {
313 var childSettings = childSettingExtensionsByParentName.get(setti ngName);
314 if (childSettings) {
315 var fieldSet = WebInspector.SettingsUI.createSettingFieldset (setting);
316 settingControl.appendChild(fieldSet);
317 for (var i = 0; i < childSettings.length; ++i)
318 processSetting.call(this, fieldSet, childSettings[i]);
319 }
320 }
321 var containerElement = parentFieldset || sectionElement;
322 containerElement.appendChild(settingControl);
323 }
324
325 /**
326 * @param {string} uiTitle
327 * @param {!WebInspector.Setting} setting
328 * @param {!Object} descriptor
329 * @param {?Object} instance
330 * @return {!Element}
331 * @this {WebInspector.GenericSettingsTab}
332 */
333 function createSettingControl(uiTitle, setting, descriptor, instance)
334 {
335 switch (descriptor["settingType"]) {
336 case "checkbox":
337 return WebInspector.SettingsUI.createSettingCheckbox(uiTitle, se tting);
338 case "select":
339 var descriptorOptions = descriptor["options"]
340 var options = new Array(descriptorOptions.length);
341 for (var i = 0; i < options.length; ++i) {
342 // The third array item flags that the option name is "raw" (non-i18n-izable).
343 var optionName = descriptorOptions[i][2] ? descriptorOptions [i][0] : WebInspector.UIString(descriptorOptions[i][0]);
344 options[i] = [WebInspector.UIString(descriptorOptions[i][0]) , descriptorOptions[i][1]];
345 }
346 return this._createSelectSetting(uiTitle, options, setting);
347 default:
348 throw "Invalid setting type: " + descriptor["settingType"];
349 }
350 }
351 },
352
353 /**
403 * @param {?Element} p 354 * @param {?Element} p
404 */ 355 */
405 _appendDrawerNote: function(p) 356 _appendDrawerNote: function(p)
406 { 357 {
407 var noteElement = p.createChild("div", "help-field-note"); 358 var noteElement = p.createChild("div", "help-field-note");
408 noteElement.createTextChild("Hit "); 359 noteElement.createTextChild("Hit ");
409 noteElement.createChild("span", "help-key").textContent = "Esc"; 360 noteElement.createChild("span", "help-key").textContent = "Esc";
410 noteElement.createTextChild(WebInspector.UIString(" or click the")); 361 noteElement.createTextChild(WebInspector.UIString(" or click the"));
411 noteElement.appendChild(new WebInspector.StatusBarButton(WebInspector.UI String("Drawer"), "console-status-bar-item").element); 362 noteElement.appendChild(new WebInspector.StatusBarButton(WebInspector.UI String("Drawer"), "console-status-bar-item").element);
412 noteElement.createTextChild(WebInspector.UIString("toolbar item")); 363 noteElement.createTextChild(WebInspector.UIString("toolbar item"));
413 }, 364 },
414 365
415 __proto__: WebInspector.SettingsTab.prototype 366 __proto__: WebInspector.SettingsTab.prototype
416 } 367 }
417 368
418 /** 369 /**
419 * @constructor 370 * @constructor
420 * @extends {WebInspector.SettingsTab} 371 * @extends {WebInspector.SettingsTab}
421 */ 372 */
422 WebInspector.WorkspaceSettingsTab = function() 373 WebInspector.WorkspaceSettingsTab = function()
423 { 374 {
424 WebInspector.SettingsTab.call(this, WebInspector.UIString("Workspace"), "wor kspace-tab-content"); 375 WebInspector.SettingsTab.call(this, WebInspector.UIString("Workspace"), "wor kspace-tab-content");
425 WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.Isolate dFileSystemManager.Events.FileSystemAdded, this._fileSystemAdded, this); 376 WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.Isolate dFileSystemManager.Events.FileSystemAdded, this._fileSystemAdded, this);
426 WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.Isolate dFileSystemManager.Events.FileSystemRemoved, this._fileSystemRemoved, this); 377 WebInspector.isolatedFileSystemManager.addEventListener(WebInspector.Isolate dFileSystemManager.Events.FileSystemRemoved, this._fileSystemRemoved, this);
427 378
428 this._commonSection = this._appendSection(WebInspector.UIString("Common")); 379 this._commonSection = this._appendSection(WebInspector.UIString("Common"));
429 var folderExcludePatternInput = this._createInputSetting(WebInspector.UIStri ng("Folder exclude pattern"), WebInspector.settings.workspaceFolderExcludePatter n, false, 0, "270px", WebInspector.SettingsScreen.regexValidator); 380 var folderExcludePatternInput = WebInspector.SettingsUI.createSettingInputFi eld(WebInspector.UIString("Folder exclude pattern"), WebInspector.settings.works paceFolderExcludePattern, false, 0, "270px", WebInspector.SettingsUI.regexValida tor);
430 this._commonSection.appendChild(folderExcludePatternInput); 381 this._commonSection.appendChild(folderExcludePatternInput);
431 382
432 this._fileSystemsSection = this._appendSection(WebInspector.UIString("Folder s")); 383 this._fileSystemsSection = this._appendSection(WebInspector.UIString("Folder s"));
433 this._fileSystemsListContainer = this._fileSystemsSection.createChild("p", " settings-list-container"); 384 this._fileSystemsListContainer = this._fileSystemsSection.createChild("p", " settings-list-container");
434 385
435 this._addFileSystemRowElement = this._fileSystemsSection.createChild("div"); 386 this._addFileSystemRowElement = this._fileSystemsSection.createChild("div");
436 var addFileSystemButton = this._addFileSystemRowElement.createChild("input", "settings-tab-text-button"); 387 var addFileSystemButton = this._addFileSystemRowElement.createChild("input", "settings-tab-text-button");
437 addFileSystemButton.type = "button"; 388 addFileSystemButton.type = "button";
438 addFileSystemButton.value = WebInspector.UIString("Add folder\u2026"); 389 addFileSystemButton.value = WebInspector.UIString("Add folder\u2026");
439 addFileSystemButton.addEventListener("click", this._addFileSystemClicked.bin d(this)); 390 addFileSystemButton.addEventListener("click", this._addFileSystemClicked.bin d(this));
(...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 var inputElement = this._addInputElements[columnId]; 1071 var inputElement = this._addInputElements[columnId];
1121 inputElement.value = ""; 1072 inputElement.value = "";
1122 } 1073 }
1123 }, 1074 },
1124 1075
1125 __proto__: WebInspector.SettingsList.prototype 1076 __proto__: WebInspector.SettingsList.prototype
1126 } 1077 }
1127 1078
1128 /** @type {!WebInspector.SettingsController} */ 1079 /** @type {!WebInspector.SettingsController} */
1129 WebInspector.settingsController; 1080 WebInspector.settingsController;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698