Chromium Code Reviews| Index: Source/devtools/front_end/elements/ElementsPanel.js |
| diff --git a/Source/devtools/front_end/elements/ElementsPanel.js b/Source/devtools/front_end/elements/ElementsPanel.js |
| index a86493dae54c2e2a4adf8ee3ee0f29bcde80dcb9..dbbe67e5a77f24f452bb071192743f5d35eebb69 100644 |
| --- a/Source/devtools/front_end/elements/ElementsPanel.js |
| +++ b/Source/devtools/front_end/elements/ElementsPanel.js |
| @@ -204,7 +204,7 @@ WebInspector.ElementsPanel.prototype = { |
| else |
| treeOutline.domModel().requestDocument(); |
| } |
| - |
| + WebInspector.context.setFlavor(WebInspector.ElementsPanel, this); |
| }, |
| willHide: function() |
| @@ -218,6 +218,7 @@ WebInspector.ElementsPanel.prototype = { |
| } |
| this._popoverHelper.hidePopover(); |
| WebInspector.Panel.prototype.willHide.call(this); |
| + WebInspector.context.setFlavor(WebInspector.ElementsPanel, null); |
| }, |
| onResize: function() |
| @@ -689,45 +690,35 @@ WebInspector.ElementsPanel.prototype = { |
| this.sidebarPanes.platformFonts.setNode(selectedDOMNode); |
| }, |
| + _undo: function() |
| + { |
| + var treeOutline = this._treeOutlineForNode(this._lastValidSelectedNode); |
| + if (!treeOutline) |
| + return; |
| + if (treeOutline.editing()) |
|
apavlov
2014/11/07 17:24:49
You should also check that no sidebar is being edi
|
| + return; |
| + treeOutline.target().domModel.undo(this._updateSidebars.bind(this)); |
| + }, |
| + |
| + _redo: function() |
| + { |
| + var treeOutline = this._treeOutlineForNode(this._lastValidSelectedNode); |
| + if (!treeOutline) |
| + return; |
| + if (treeOutline.editing()) |
|
apavlov
2014/11/07 17:24:49
ditto
|
| + return; |
| + treeOutline.target().domModel.redo(this._updateSidebars.bind(this)); |
| + }, |
| + |
| /** |
| * @param {!KeyboardEvent} event |
| */ |
| handleShortcut: function(event) |
| { |
| - /** |
| - * @param {!WebInspector.ElementsTreeOutline} treeOutline |
| - * @this {WebInspector.ElementsPanel} |
| - */ |
| - function handleUndoRedo(treeOutline) |
| - { |
| - if (WebInspector.KeyboardShortcut.eventHasCtrlOrMeta(event) && !event.shiftKey && event.keyIdentifier === "U+005A") { // Z key |
| - treeOutline.target().domModel.undo(this._updateSidebars.bind(this)); |
| - event.handled = true; |
| - return; |
| - } |
| - |
| - var isRedoKey = WebInspector.isMac() ? event.metaKey && event.shiftKey && event.keyIdentifier === "U+005A" : // Z key |
| - event.ctrlKey && event.keyIdentifier === "U+0059"; // Y key |
| - if (isRedoKey) { |
| - treeOutline.target().domModel.redo(this._updateSidebars.bind(this)); |
| - event.handled = true; |
| - } |
| - } |
| - |
| - var treeOutline = null; |
| - for (var i = 0; i < this._treeOutlines.length; ++i) { |
| - if (this._treeOutlines[i].selectedDOMNode() === this._lastValidSelectedNode) |
| - treeOutline = this._treeOutlines[i]; |
| - } |
| + var treeOutline = this._treeOutlineForNode(this._lastValidSelectedNode); |
| if (!treeOutline) |
| return; |
| - if (!treeOutline.editing()) { |
| - handleUndoRedo.call(this, treeOutline); |
| - if (event.handled) |
| - return; |
| - } |
| - |
| treeOutline.handleShortcut(event); |
| if (event.handled) |
| return; |
| @@ -1111,3 +1102,44 @@ WebInspector.ElementsPanelFactory.prototype = { |
| return WebInspector.ElementsPanel.instance(); |
| } |
| } |
| + |
| +/** |
| + * @constructor |
| + * @implements {WebInspector.ActionDelegate} |
| + */ |
| +WebInspector.ElementsPanel.UndoActionDelegate = function() |
| +{ |
| +} |
| + |
| +WebInspector.ElementsPanel.UndoActionDelegate.prototype = { |
| + /** |
| + * @return {boolean} |
| + */ |
| + handleAction: function() |
| + { |
| + var panel = WebInspector.ElementsPanel.instance(); |
| + panel._undo(); |
| + return true; |
| + } |
| +} |
| + |
| +/** |
| + * @constructor |
| + * @implements {WebInspector.ActionDelegate} |
| + */ |
| +WebInspector.ElementsPanel.RedoActionDelegate = function() |
| +{ |
| +} |
| + |
| +WebInspector.ElementsPanel.RedoActionDelegate.prototype = { |
| + /** |
| + * @return {boolean} |
| + */ |
| + handleAction: function() |
| + { |
| + var panel = WebInspector.ElementsPanel.instance(); |
| + panel._redo(); |
| + return true; |
| + } |
| +} |
| + |