Index: third_party/WebKit/Source/devtools/front_end/ui/treeoutline.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.js b/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.js |
index 14baa1301c5f0045aeb1424ca20064f04f90bae3..47c9b79fb1bab592d240aaedacbf23d13fe4f67e 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.js |
+++ b/third_party/WebKit/Source/devtools/front_end/ui/treeoutline.js |
@@ -43,18 +43,9 @@ |
this._contentElement = this._rootElement._childrenListNode; |
this._contentElement.addEventListener("keydown", this._treeKeyDown.bind(this), true); |
+ this.setFocusable(!nonFocusable); |
+ |
this.element = this._contentElement; |
- |
- this.setFocusable(!nonFocusable); |
- |
- this.element.addEventListener("keypress", this._handleKeyPressForHighlighting.bind(this), true); |
- this.element.addEventListener("blur", this._clearFilter.bind(this), true); |
- this.element.addEventListener("click", this._clearFilter.bind(this), true); |
- |
- this._currentSelectionFilterString = ""; |
- this._interactiveFilterEnabled = false; |
- /** @type {!Array.<!TreeElement>} */ |
- this._highlightedNodes = [] |
} |
TreeOutline.Events = { |
@@ -84,89 +75,6 @@ |
}, |
/** |
- * @param {boolean} enable |
- */ |
- setInteractiveFilterable: function(enable) |
- { |
- if (enable === this._interactiveFilterEnabled) |
- return; |
- if (!enable) |
- this._setCurrentSelectionFilterString(""); |
- this._interactiveFilterEnabled = enable; |
- }, |
- |
- /** |
- * @param {string} filterString |
- */ |
- _setCurrentSelectionFilterString: function(filterString) |
- { |
- this._currentSelectionFilterString = filterString; |
- this._refreshHighlighting(); |
- }, |
- |
- /** |
- * @param {string} filterString |
- * @return {!RegExp} |
- */ |
- _makeFilterRegexFromString: function(filterString) |
- { |
- return new RegExp(filterString.escapeForRegExp(), "gi") |
- }, |
- |
- _refreshHighlighting: function() |
- { |
- if (!this._rootElement) |
- return; |
- |
- for (var changedNode of this._highlightedNodes) |
- changedNode._revertHighlightChanges(); |
- |
- this._highlightedNodes = []; |
- |
- if (!this._currentSelectionFilterString) |
- return; |
- |
- if (this.selectedTreeElement && !this.selectedTreeElement.selectable) { |
- if (!this.selectNext()) |
- this.selectPrevious(); |
- } |
- |
- var filterRegex = this._makeFilterRegexFromString(this._currentSelectionFilterString); |
- var node = this._rootElement.firstChild(); |
- while (node) { |
- if (node._applyHighlightFilter(filterRegex)) |
- this._highlightedNodes.push(node); |
- node = node.traverseNextTreeElement(true, null, true); |
- } |
- }, |
- |
- _clearFilter: function() |
- { |
- if (this._interactiveFilterEnabled) |
- this._setCurrentSelectionFilterString(""); |
- }, |
- |
- /** |
- * @param {!Event} event |
- */ |
- _handleKeyPressForHighlighting: function(event) |
- { |
- if (!this._interactiveFilterEnabled) |
- return; |
- |
- if (event.target !== this._contentElement) |
- return; |
- |
- if (!this.selectedTreeElement || event.shiftKey || event.metaKey || event.ctrlKey) |
- return; |
- |
- var currentFilterString = this._currentSelectionFilterString; |
- var key = event.data; |
- if (key !== "\r" && key !== "\n" && (key !== " " || currentFilterString)) |
- this._setCurrentSelectionFilterString(currentFilterString + event.data); |
- }, |
- |
- /** |
* @return {?TreeElement} |
*/ |
firstChild: function() |
@@ -244,9 +152,9 @@ |
setFocusable: function(focusable) |
{ |
if (focusable) |
- this.element.setAttribute("tabIndex", 0); |
+ this._contentElement.setAttribute("tabIndex", 0); |
else |
- this.element.removeAttribute("tabIndex"); |
+ this._contentElement.removeAttribute("tabIndex"); |
}, |
focus: function() |
@@ -321,24 +229,13 @@ |
if (!this.selectedTreeElement || event.shiftKey || event.metaKey || event.ctrlKey) |
return; |
- var currentFilterString = this._currentSelectionFilterString; |
var handled = false; |
- var key = event.keyCode; |
var nextSelectedElement; |
- |
- switch (key) { |
- case WebInspector.KeyboardShortcut.Keys.Up.code: |
- if (!event.altKey) |
- handled = this.selectPrevious(); |
- break; |
- case WebInspector.KeyboardShortcut.Keys.Down.code: |
- if (!event.altKey) |
- handled = this.selectNext(); |
- break; |
- case WebInspector.KeyboardShortcut.Keys.Left.code: |
- if (this._interactiveFilterEnabled) |
- this._clearFilter(); |
- |
+ if (event.keyIdentifier === "Up" && !event.altKey) { |
+ handled = this.selectPrevious(); |
+ } else if (event.keyIdentifier === "Down" && !event.altKey) { |
+ handled = this.selectNext(); |
+ } else if (event.keyIdentifier === "Left") { |
if (this.selectedTreeElement.expanded) { |
if (event.altKey) |
this.selectedTreeElement.collapseRecursively(); |
@@ -352,15 +249,10 @@ |
while (nextSelectedElement && !nextSelectedElement.selectable) |
nextSelectedElement = nextSelectedElement.parent; |
handled = nextSelectedElement ? true : false; |
- } else if (this.selectedTreeElement.parent) { |
+ } else if (this.selectedTreeElement.parent) |
this.selectedTreeElement.parent.collapse(); |
- } |
} |
- break; |
- case WebInspector.KeyboardShortcut.Keys.Right.code: |
- if (this._interactiveFilterEnabled) |
- this._clearFilter(); |
- |
+ } else if (event.keyIdentifier === "Right") { |
if (!this.selectedTreeElement.revealed()) { |
this.selectedTreeElement.reveal(); |
handled = true; |
@@ -378,41 +270,12 @@ |
this.selectedTreeElement.expand(); |
} |
} |
- break; |
- case WebInspector.KeyboardShortcut.Keys.Backspace.code: |
- if (this._interactiveFilterEnabled && currentFilterString) { |
- handled = true; |
- this._setCurrentSelectionFilterString(currentFilterString.substr(0, currentFilterString.length - 1)); |
- } else { |
- handled = this.selectedTreeElement.ondelete(); |
- } |
- break; |
- case WebInspector.KeyboardShortcut.Keys.Delete.code: |
- if (this._interactiveFilterEnabled && currentFilterString) { |
- handled = true; |
- this._clearFilter(); |
- } else |
- handled = this.selectedTreeElement.ondelete(); |
- break; |
- case WebInspector.KeyboardShortcut.Keys.Esc.code: |
- if (this._interactiveFilterEnabled) { |
- if (currentFilterString) |
- handled = true; |
- this._clearFilter(); |
- } |
- break; |
- case WebInspector.KeyboardShortcut.Keys.Space.code: |
- if (!currentFilterString) |
- handled = this.selectedTreeElement.onspace(); |
- break; |
- default: |
- if (isEnterKey(event)) { |
- if (this._interactiveFilterEnabled) |
- this._clearFilter(); |
- |
- handled = this.selectedTreeElement.onenter(); |
- } |
- } |
+ } else if (event.keyCode === 8 /* Backspace */ || event.keyCode === 46 /* Delete */) |
+ handled = this.selectedTreeElement.ondelete(); |
+ else if (isEnterKey(event)) |
+ handled = this.selectedTreeElement.onenter(); |
+ else if (event.keyCode === WebInspector.KeyboardShortcut.Keys.Space.code) |
+ handled = this.selectedTreeElement.onspace(); |
if (nextSelectedElement) { |
nextSelectedElement.reveal(); |
@@ -514,50 +377,12 @@ |
this.selected = false; |
this.setExpandable(expandable || false); |
this._collapsible = true; |
- |
- /** @type {!Array.<!Object>} */ |
- this._highlightChanges = []; |
} |
/** @const */ |
TreeElement._ArrowToggleWidth = 10; |
TreeElement.prototype = { |
- /** |
- * @return {boolean} |
- */ |
- _checkFilter: function() |
- { |
- return this.treeOutline._currentSelectionFilterString ? this.treeOutline._makeFilterRegexFromString(this.treeOutline._currentSelectionFilterString).test(this._titleElement.textContent) : true; |
- }, |
- |
- /** |
- * @param {!RegExp} regex |
- * @return {boolean} |
- */ |
- _applyHighlightFilter: function(regex) { |
- var textContent = this._listItemNode.textContent; |
- var ranges = []; |
- |
- this._revertHighlightChanges(); |
- |
- var match = regex.exec(textContent); |
- while (match) { |
- ranges.push(new WebInspector.SourceRange(match.index, match[0].length)); |
- match = regex.exec(textContent); |
- } |
- if (ranges.length) |
- WebInspector.highlightRangesWithStyleClass(this._listItemNode, ranges, "tree-text-interactive-highlight", this._highlightChanges); |
- |
- return !!this._highlightChanges.length |
- }, |
- |
- _revertHighlightChanges: function() |
- { |
- WebInspector.revertDomChanges(this._highlightChanges); |
- this._highlightChanges = []; |
- }, |
- |
/** |
* @param {?TreeElement} ancestor |
* @return {boolean} |
@@ -778,7 +603,7 @@ |
get selectable() |
{ |
- if (this._hidden || !this._checkFilter()) |
+ if (this._hidden) |
return false; |
return this._selectable; |
}, |