| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * @constructor | 6 * @constructor |
| 7 * @implements {WebInspector.TabbedEditorContainerDelegate} | 7 * @implements {WebInspector.TabbedEditorContainerDelegate} |
| 8 * @implements {WebInspector.Searchable} | 8 * @implements {WebInspector.Searchable} |
| 9 * @implements {WebInspector.Replaceable} | 9 * @implements {WebInspector.Replaceable} |
| 10 * @extends {WebInspector.VBox} | 10 * @extends {WebInspector.VBox} |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 var unsavedSourceCodes = WebInspector.workspace.unsavedSourceCodes(); | 73 var unsavedSourceCodes = WebInspector.workspace.unsavedSourceCodes(); |
| 74 if (!unsavedSourceCodes.length) | 74 if (!unsavedSourceCodes.length) |
| 75 return; | 75 return; |
| 76 | 76 |
| 77 event.returnValue = WebInspector.UIString("DevTools have unsaved changes
that will be permanently lost."); | 77 event.returnValue = WebInspector.UIString("DevTools have unsaved changes
that will be permanently lost."); |
| 78 WebInspector.inspectorView.showPanel("sources"); | 78 WebInspector.inspectorView.showPanel("sources"); |
| 79 for (var i = 0; i < unsavedSourceCodes.length; ++i) | 79 for (var i = 0; i < unsavedSourceCodes.length; ++i) |
| 80 WebInspector.panels.sources.showUISourceCode(unsavedSourceCodes[i]); | 80 WebInspector.panels.sources.showUISourceCode(unsavedSourceCodes[i]); |
| 81 } | 81 } |
| 82 window.addEventListener("beforeunload", handleBeforeUnload, true); | 82 window.addEventListener("beforeunload", handleBeforeUnload, true); |
| 83 |
| 84 this._shortcuts = {}; |
| 85 this.element.addEventListener("keydown", this._handleKeyDown.bind(this), fal
se); |
| 83 } | 86 } |
| 84 | 87 |
| 85 WebInspector.SourcesView.Events = { | 88 WebInspector.SourcesView.Events = { |
| 86 EditorClosed: "EditorClosed", | 89 EditorClosed: "EditorClosed", |
| 87 EditorSelected: "EditorSelected", | 90 EditorSelected: "EditorSelected", |
| 88 } | 91 } |
| 89 | 92 |
| 90 WebInspector.SourcesView.prototype = { | 93 WebInspector.SourcesView.prototype = { |
| 91 /** | 94 /** |
| 92 * @param {function(!Array.<!WebInspector.KeyboardShortcut.Descriptor>, func
tion(?Event=):boolean)} registerShortcutDelegate | 95 * @param {function(!Array.<!WebInspector.KeyboardShortcut.Descriptor>, func
tion(?Event=):boolean)} registerShortcutDelegate |
| 93 */ | 96 */ |
| 94 registerShortcuts: function(registerShortcutDelegate) | 97 registerShortcuts: function(registerShortcutDelegate) |
| 95 { | 98 { |
| 96 registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortc
uts.JumpToPreviousLocation, this._onJumpToPreviousLocation.bind(this)); | 99 /** |
| 97 registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortc
uts.JumpToNextLocation, this._onJumpToNextLocation.bind(this)); | 100 * @this {WebInspector.SourcesView} |
| 98 registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortc
uts.CloseEditorTab, this._onCloseEditorTab.bind(this)); | 101 * @param {!Array.<!WebInspector.KeyboardShortcut.Descriptor>} shortcuts |
| 99 registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortc
uts.GoToLine, this._showGoToLineDialog.bind(this)); | 102 * @param {function(?Event=):boolean} handler |
| 100 registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortc
uts.GoToMember, this._showOutlineDialog.bind(this)); | 103 */ |
| 101 registerShortcutDelegate(WebInspector.ShortcutsScreen.SourcesPanelShortc
uts.ToggleBreakpoint, this._toggleBreakpoint.bind(this)); | 104 function registerShortcut(shortcuts, handler) |
| 105 { |
| 106 registerShortcutDelegate(shortcuts, handler); |
| 107 this._registerShortcuts(shortcuts, handler); |
| 108 } |
| 109 |
| 110 registerShortcut.call(this, WebInspector.ShortcutsScreen.SourcesPanelSho
rtcuts.JumpToPreviousLocation, this._onJumpToPreviousLocation.bind(this)); |
| 111 registerShortcut.call(this, WebInspector.ShortcutsScreen.SourcesPanelSho
rtcuts.JumpToNextLocation, this._onJumpToNextLocation.bind(this)); |
| 112 registerShortcut.call(this, WebInspector.ShortcutsScreen.SourcesPanelSho
rtcuts.CloseEditorTab, this._onCloseEditorTab.bind(this)); |
| 113 registerShortcut.call(this, WebInspector.ShortcutsScreen.SourcesPanelSho
rtcuts.GoToLine, this._showGoToLineDialog.bind(this)); |
| 114 registerShortcut.call(this, WebInspector.ShortcutsScreen.SourcesPanelSho
rtcuts.GoToMember, this._showOutlineDialog.bind(this)); |
| 115 registerShortcut.call(this, WebInspector.ShortcutsScreen.SourcesPanelSho
rtcuts.ToggleBreakpoint, this._toggleBreakpoint.bind(this)); |
| 116 registerShortcut.call(this, WebInspector.ShortcutsScreen.SourcesPanelSho
rtcuts.Save, this._save.bind(this)); |
| 102 }, | 117 }, |
| 103 | 118 |
| 104 /** | 119 /** |
| 120 * @param {!Array.<!WebInspector.KeyboardShortcut.Descriptor>} keys |
| 121 * @param {function(?Event=):boolean} handler |
| 122 */ |
| 123 _registerShortcuts: function(keys, handler) |
| 124 { |
| 125 for (var i = 0; i < keys.length; ++i) |
| 126 this._shortcuts[keys[i].key] = handler; |
| 127 }, |
| 128 |
| 129 _handleKeyDown: function(event) |
| 130 { |
| 131 var shortcutKey = WebInspector.KeyboardShortcut.makeKeyFromEvent(event); |
| 132 var handler = this._shortcuts[shortcutKey]; |
| 133 if (handler && handler()) |
| 134 event.consume(true); |
| 135 }, |
| 136 |
| 137 /** |
| 105 * @return {!Element} | 138 * @return {!Element} |
| 106 */ | 139 */ |
| 107 statusBarContainerElement: function() | 140 statusBarContainerElement: function() |
| 108 { | 141 { |
| 109 return this._statusBarContainerElement; | 142 return this._statusBarContainerElement; |
| 110 }, | 143 }, |
| 111 | 144 |
| 112 /** | 145 /** |
| 113 * @return {!Element} | 146 * @return {!Element} |
| 114 */ | 147 */ |
| (...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 */ | 625 */ |
| 593 _showGoToLineDialog: function(event) | 626 _showGoToLineDialog: function(event) |
| 594 { | 627 { |
| 595 this.showOpenResourceDialog(":"); | 628 this.showOpenResourceDialog(":"); |
| 596 return true; | 629 return true; |
| 597 }, | 630 }, |
| 598 | 631 |
| 599 /** | 632 /** |
| 600 * @return {boolean} | 633 * @return {boolean} |
| 601 */ | 634 */ |
| 635 _save: function() |
| 636 { |
| 637 var sourceFrame = this.currentSourceFrame(); |
| 638 if (!sourceFrame) |
| 639 return true; |
| 640 if (!(sourceFrame instanceof WebInspector.UISourceCodeFrame)) |
| 641 return true; |
| 642 var uiSourceCodeFrame = /** @type {!WebInspector.UISourceCodeFrame} */ (
sourceFrame); |
| 643 uiSourceCodeFrame.commitEditing(); |
| 644 return true; |
| 645 }, |
| 646 |
| 647 /** |
| 648 * @return {boolean} |
| 649 */ |
| 602 _toggleBreakpoint: function() | 650 _toggleBreakpoint: function() |
| 603 { | 651 { |
| 604 var sourceFrame = this.currentSourceFrame(); | 652 var sourceFrame = this.currentSourceFrame(); |
| 605 if (!sourceFrame) | 653 if (!sourceFrame) |
| 606 return false; | 654 return false; |
| 607 | 655 |
| 608 if (sourceFrame instanceof WebInspector.JavaScriptSourceFrame) { | 656 if (sourceFrame instanceof WebInspector.JavaScriptSourceFrame) { |
| 609 var javaScriptSourceFrame = /** @type {!WebInspector.JavaScriptSourc
eFrame} */ (sourceFrame); | 657 var javaScriptSourceFrame = /** @type {!WebInspector.JavaScriptSourc
eFrame} */ (sourceFrame); |
| 610 javaScriptSourceFrame.toggleBreakpointOnCurrentLine(); | 658 javaScriptSourceFrame.toggleBreakpointOnCurrentLine(); |
| 611 return true; | 659 return true; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 631 { | 679 { |
| 632 } | 680 } |
| 633 | 681 |
| 634 WebInspector.SourcesView.EditorAction.prototype = { | 682 WebInspector.SourcesView.EditorAction.prototype = { |
| 635 /** | 683 /** |
| 636 * @param {!WebInspector.SourcesView} sourcesView | 684 * @param {!WebInspector.SourcesView} sourcesView |
| 637 * @return {!Element} | 685 * @return {!Element} |
| 638 */ | 686 */ |
| 639 button: function(sourcesView) { } | 687 button: function(sourcesView) { } |
| 640 } | 688 } |
| OLD | NEW |