Chromium Code Reviews| Index: Source/devtools/front_end/InspectorView.js |
| diff --git a/Source/devtools/front_end/InspectorView.js b/Source/devtools/front_end/InspectorView.js |
| index 0e93ceaae061626e891f335dde8961bd72de6438..18648677620b8d443664a9acee959e66c161f7cd 100644 |
| --- a/Source/devtools/front_end/InspectorView.js |
| +++ b/Source/devtools/front_end/InspectorView.js |
| @@ -327,67 +327,54 @@ WebInspector.InspectorView.prototype = { |
| _keyDownInternal: function(event) |
| { |
| - if (this._openBracketIdentifiers[event.keyIdentifier]) { |
| - var isRotateLeft = !event.shiftKey && !event.altKey; |
| - if (isRotateLeft) { |
| - var panelOrder = this._tabbedPane.allTabs(); |
| - var index = panelOrder.indexOf(this.currentPanel().name); |
| - index = (index === 0) ? panelOrder.length - 1 : index - 1; |
| - this.showPanel(panelOrder[index]); |
| - event.consume(true); |
| - return; |
| - } |
| + var direction = 0; |
| - var isGoBack = event.altKey; |
| - if (isGoBack && this._canGoBackInHistory()) { |
| - this._goBackInHistory(); |
| - event.consume(true); |
| - } |
| - return; |
| - } |
| + if (this._openBracketIdentifiers[event.keyIdentifier]) |
| + direction = -1; |
| - if (this._closeBracketIdentifiers[event.keyIdentifier]) { |
| - var isRotateRight = !event.shiftKey && !event.altKey; |
| - if (isRotateRight) { |
| - var panelOrder = this._tabbedPane.allTabs(); |
| - var index = panelOrder.indexOf(this.currentPanel().name); |
| - index = (index + 1) % panelOrder.length; |
| - this.showPanel(panelOrder[index]); |
| - event.consume(true); |
| - return; |
| - } |
| + if (this._closeBracketIdentifiers[event.keyIdentifier]) |
| + direction = 1; |
| - var isGoForward = event.altKey; |
| - if (isGoForward && this._canGoForwardInHistory()) { |
| - this._goForwardInHistory(); |
| - event.consume(true); |
| - } |
| - return; |
| + if (direction) { |
| + this._handlePanelChangeShortcut(event, direction); |
| + this._handleHistoryMoveShortcut(event, direction); |
| } |
| }, |
| - _canGoBackInHistory: function() |
| + _handleHistoryMoveShortcut: function(event, move) |
|
vsevik
2014/03/04 17:29:56
I would inline event handling and extract history/
sergeyv
2014/03/04 17:55:42
Done.
|
| { |
| - return this._historyIterator > 0; |
| + if (event.handled || !event.altKey || !this._isValidMoveInHistory(move)) |
| + return; |
| + |
| + this._moveInHistory(move); |
| + event.consume(true); |
| }, |
| - _goBackInHistory: function() |
| + _handlePanelChangeShortcut: function(event, direction) |
|
vsevik
2014/03/04 17:29:56
Ditto.
sergeyv
2014/03/04 17:55:42
Done.
|
| { |
| - this._inHistory = true; |
| - this.setCurrentPanel(WebInspector.panels[this._history[--this._historyIterator]]); |
| - delete this._inHistory; |
| + if (event.handled || event.shiftKey || event.altKey) |
| + return; |
| + |
| + var panelOrder = this._tabbedPane.allTabs(); |
| + var index = panelOrder.indexOf(this.currentPanel().name); |
| + index = (index + panelOrder.length + direction) % panelOrder.length; |
| + this.showPanel(panelOrder[index]); |
| + event.consume(true); |
| }, |
| - _canGoForwardInHistory: function() |
| + _isValidMoveInHistory: function(move) |
|
vsevik
2014/03/04 17:29:56
This could be inlined into moveInHistory
sergeyv
2014/03/04 17:55:42
Done.
|
| { |
| - return this._historyIterator < this._history.length - 1; |
| + var newIndex = this._historyIterator + move; |
| + return newIndex < this._history.length && newIndex >= 0; |
| }, |
| - _goForwardInHistory: function() |
| + _moveInHistory: function(move) |
| { |
| this._inHistory = true; |
| - this.setCurrentPanel(WebInspector.panels[this._history[++this._historyIterator]]); |
| + this._historyIterator = this._historyIterator + move; |
| + this.setCurrentPanel(WebInspector.panels[this._history[this._historyIterator]]); |
| delete this._inHistory; |
| + |
| }, |
| _pushToHistory: function(panelName) |
| @@ -414,57 +401,32 @@ WebInspector.InspectorView.prototype = { |
| return this._tabbedPane.headerElement(); |
| }, |
| + _createImagedCounterElementIfNeeded: function(count, id, styleName) |
| + { |
| + if (count) { |
|
vsevik
2014/03/04 17:29:56
if (!count)
return
sergeyv
2014/03/04 17:55:42
Done.
|
| + var imageElement = this._errorWarningCountElement.createChild("div", styleName); |
| + var counterElement = this._errorWarningCountElement.createChild("span"); |
| + counterElement.id = id; |
| + counterElement.textContent = count; |
| + } |
| + }, |
| + |
| /** |
| * @param {number} errors |
| * @param {number} warnings |
| */ |
| setErrorAndWarningCounts: function(errors, warnings) |
| { |
| - if (!errors && !warnings) { |
| - this._errorWarningCountElement.classList.add("hidden"); |
| - this._tabbedPane.headerResized(); |
| - return; |
| - } |
| - |
| - this._errorWarningCountElement.classList.remove("hidden"); |
| + this._errorWarningCountElement.enableStyleClass("hidden", !errors && !warnings); |
|
vsevik
2014/03/04 17:29:56
classList.toggle
sergeyv
2014/03/04 17:55:42
Done.
|
| this._errorWarningCountElement.removeChildren(); |
| - if (errors) { |
| - var errorImageElement = this._errorWarningCountElement.createChild("div", "error-icon-small"); |
| - var errorElement = this._errorWarningCountElement.createChild("span"); |
| - errorElement.id = "error-count"; |
| - errorElement.textContent = errors; |
| - } |
| - |
| - if (warnings) { |
| - var warningsImageElement = this._errorWarningCountElement.createChild("div", "warning-icon-small"); |
| - var warningsElement = this._errorWarningCountElement.createChild("span"); |
| - warningsElement.id = "warning-count"; |
| - warningsElement.textContent = warnings; |
| - } |
| - |
| - if (errors) { |
| - if (warnings) { |
| - if (errors == 1) { |
| - if (warnings == 1) |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d error, %d warning", errors, warnings); |
| - else |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d error, %d warnings", errors, warnings); |
| - } else if (warnings == 1) |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d errors, %d warning", errors, warnings); |
| - else |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d errors, %d warnings", errors, warnings); |
| - } else if (errors == 1) |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d error", errors); |
| - else |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d errors", errors); |
| - } else if (warnings == 1) |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d warning", warnings); |
| - else if (warnings) |
| - this._errorWarningCountElement.title = WebInspector.UIString("%d warnings", warnings); |
| - else |
| - this._errorWarningCountElement.title = null; |
| + this._createImagedCounterElementIfNeeded(errors, "error-count", "error-icon-small"); |
| + this._createImagedCounterElementIfNeeded(warnings, "warning-count", "warning-icon-small"); |
| + var errorString = errors ? WebInspector.UIString("%d error%s", errors, errors > 1 ? "s" : "") : ""; |
| + var warningString = warnings ? WebInspector.UIString("%d warning%s", warnings, warnings > 1 ? "s" : "") : ""; |
| + var commaString = errors & warnings ? ", " : ""; |
|
vsevik
2014/03/04 17:29:56
did you mean &&?
sergeyv
2014/03/04 17:55:42
Done.
|
| + this._errorWarningCountElement.title = errorString + commaString + warningString; |
| this._tabbedPane.headerResized(); |
| }, |