| 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;
|
| },
|
|
|