Modified: trunk/Source/WebCore/ChangeLog (98235 => 98236)
--- trunk/Source/WebCore/ChangeLog 2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/ChangeLog 2011-10-24 13:52:51 UTC (rev 98236)
@@ -1,3 +1,21 @@
+2011-10-21 Nikita Vasilyev <[email protected]>
+
+ Web Inspector: Make indent configurable
+ https://bugs.webkit.org/show_bug.cgi?id=69986
+
+ Add a setting to choose an indent from "8 spaces", "4 spaces" (default), "2 spaces", or "Tab character".
+
+ Reviewed by Pavel Feldman.
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/SettingsScreen.js:
+ (WebInspector.SettingsScreen):
+ (WebInspector.SettingsScreen.prototype._createSelectSetting.get p):
+ (WebInspector.SettingsScreen.prototype._createSelectSetting.changeListener):
+ * inspector/front-end/TextEditorModel.js:
+ (WebInspector.TextEditorModel):
+ * inspector/front-end/TextViewer.js:
+
2011-10-17 Andrey Kosyakov <[email protected]>
Web Inspector: add "Add to Watch" option to context menu on selection in source frame
Modified: trunk/Source/WebCore/inspector/front-end/SettingsScreen.js (98235 => 98236)
--- trunk/Source/WebCore/inspector/front-end/SettingsScreen.js 2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/inspector/front-end/SettingsScreen.js 2011-10-24 13:52:51 UTC (rev 98236)
@@ -50,6 +50,13 @@
[ WebInspector.StylesSidebarPane.ColorFormat.HSL, "HSL: hsl(300, 80%, 90%)" ] ], WebInspector.settings.colorFormat));
p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Show user agent styles"), WebInspector.settings.showUserAgentStyles));
+ p = this._appendSection(WebInspector.UIString("Text editor"));
+ p.appendChild(this._createSelectSetting(WebInspector.UIString("Indent"), [
+ [ WebInspector.TextEditorModel.Indent.TwoSpaces, WebInspector.UIString("2 spaces") ],
+ [ WebInspector.TextEditorModel.Indent.FourSpaces, WebInspector.UIString("4 spaces") ],
+ [ WebInspector.TextEditorModel.Indent.EightSpaces, WebInspector.UIString("8 spaces") ],
+ [ WebInspector.TextEditorModel.Indent.TabCharacter, WebInspector.UIString("Tab character") ] ], WebInspector.settings.textEditorIndent));
+
if (Preferences.canDisableCache) {
p = this._appendSection(WebInspector.UIString("Network"), true);
p.appendChild(this._createCheckboxSetting(WebInspector.UIString("Disable cache"), WebInspector.settings.cacheDisabled));
@@ -65,7 +72,7 @@
if (Preferences.haveExtensions) {
var handlerSelector = new WebInspector.HandlerSelector(WebInspector.openAnchorLocationRegistry);
p = this._appendSection(WebInspector.UIString("Extensions"), true);
- p.appendChild(this._createCustomSetting(WebInspector.UIString("Open links in..."), handlerSelector.element));
+ p.appendChild(this._createCustomSetting(WebInspector.UIString("Open links in"), handlerSelector.element));
}
var table = document.createElement("table");
table.className = "help-table";
@@ -118,6 +125,35 @@
return p;
},
+ _createSelectSetting: function(name, options, setting)
+ {
+ var fieldsetElement = document.createElement("fieldset");
+ fieldsetElement.textContent = name;
+
+ var select = document.createElement("select");
+ var settingValue = setting.get();
+
+ for (var i = 0; i < options.length; ++i) {
+ var option = options[i];
+ select.add(new Option(option[1], option[0]));
+ if (settingValue === option[0])
+ select.selectedIndex = i;
+
+ }
+
+ function changeListener(e)
+ {
+ setting.set(e.target.value);
+ }
+
+ select.addEventListener("change", changeListener, false);
+ fieldsetElement.appendChild(select);
+
+ var p = document.createElement("p");
+ p.appendChild(fieldsetElement);
+ return p;
+ },
+
_createRadioSetting: function(name, options, setting)
{
var pp = document.createElement("p");
@@ -157,11 +193,12 @@
_createCustomSetting: function(name, element)
{
- var div = document.createElement("div");
- var p = div.createChild("p");
- p.textContent = name;
- div.appendChild(element);
- return div;
+ var p = document.createElement("p");
+ var fieldsetElement = document.createElement("fieldset");
+ fieldsetElement.textContent = name;
+ fieldsetElement.appendChild(element);
+ p.appendChild(fieldsetElement);
+ return p;
}
};
Modified: trunk/Source/WebCore/inspector/front-end/TextEditorModel.js (98235 => 98236)
--- trunk/Source/WebCore/inspector/front-end/TextEditorModel.js 2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/inspector/front-end/TextEditorModel.js 2011-10-24 13:52:51 UTC (rev 98236)
@@ -66,8 +66,17 @@
this._undoStack = [];
this._noPunctuationRegex = /[^ !%&()*+,-.:;<=>?\[\]\^{|}~]+/;
this._lineBreak = "\n";
+
+ WebInspector.settings.textEditorIndent = WebInspector.settings.createSetting("indent", WebInspector.TextEditorModel.Indent.FourSpaces);
}
+WebInspector.TextEditorModel.Indent = {
+ TwoSpaces: " ",
+ FourSpaces: " ",
+ EightSpaces: " ",
+ TabCharacter: "\t"
+}
+
WebInspector.TextEditorModel.prototype = {
set changeListener(changeListener)
{
Modified: trunk/Source/WebCore/inspector/front-end/TextViewer.js (98235 => 98236)
--- trunk/Source/WebCore/inspector/front-end/TextViewer.js 2011-10-24 12:52:45 UTC (rev 98235)
+++ trunk/Source/WebCore/inspector/front-end/TextViewer.js 2011-10-24 13:52:51 UTC (rev 98236)
@@ -1061,7 +1061,7 @@
if (range.startLine > range.endLine || (range.startLine === range.endLine && range.startColumn > range.endColumn))
range = new WebInspector.TextRange(range.endLine, range.endColumn, range.startLine, range.startColumn);
- var newRange = this._setText(range, "\t");
+ var newRange = this._setText(range, WebInspector.settings.textEditorIndent.get());
this._exitTextChangeMode(range, newRange);
this.endUpdates();