Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(270)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/SourcesView.js

Issue 2679483002: DevTools: Create extensible QuickOpen control (Closed)
Patch Set: rename Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 * @implements {Sources.TabbedEditorContainerDelegate} 5 * @implements {Sources.TabbedEditorContainerDelegate}
6 * @implements {UI.Searchable} 6 * @implements {UI.Searchable}
7 * @implements {UI.Replaceable} 7 * @implements {UI.Replaceable}
8 * @unrestricted 8 * @unrestricted
9 */ 9 */
10 Sources.SourcesView = class extends UI.VBox { 10 Sources.SourcesView = class extends UI.VBox {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 } 86 }
87 87
88 if (!window.opener) 88 if (!window.opener)
89 window.addEventListener('beforeunload', handleBeforeUnload, true); 89 window.addEventListener('beforeunload', handleBeforeUnload, true);
90 90
91 this._shortcuts = {}; 91 this._shortcuts = {};
92 this.element.addEventListener('keydown', this._handleKeyDown.bind(this), fal se); 92 this.element.addEventListener('keydown', this._handleKeyDown.bind(this), fal se);
93 } 93 }
94 94
95 /** 95 /**
96 * @return {!Map.<!Workspace.UISourceCode, number>}
97 */
98 static defaultUISourceCodeScores() {
99 /** @type {!Map.<!Workspace.UISourceCode, number>} */
100 var defaultScores = new Map();
101 var sourcesView = UI.context.flavor(Sources.SourcesView);
102 if (sourcesView) {
103 var uiSourceCodes = sourcesView._editorContainer.historyUISourceCodes();
104 for (var i = 1; i < uiSourceCodes.length; ++i) // Skip current element
105 defaultScores.set(uiSourceCodes[i], uiSourceCodes.length - i);
106 }
107 return defaultScores;
108 }
109
110 /**
96 * @param {function(!Array.<!UI.KeyboardShortcut.Descriptor>, function(!Event= ):boolean)} registerShortcutDelegate 111 * @param {function(!Array.<!UI.KeyboardShortcut.Descriptor>, function(!Event= ):boolean)} registerShortcutDelegate
97 */ 112 */
98 registerShortcuts(registerShortcutDelegate) { 113 registerShortcuts(registerShortcutDelegate) {
99 /** 114 /**
100 * @this {Sources.SourcesView} 115 * @this {Sources.SourcesView}
101 * @param {!Array.<!UI.KeyboardShortcut.Descriptor>} shortcuts 116 * @param {!Array.<!UI.KeyboardShortcut.Descriptor>} shortcuts
102 * @param {function(!Event=):boolean} handler 117 * @param {function(!Event=):boolean} handler
103 */ 118 */
104 function registerShortcut(shortcuts, handler) { 119 function registerShortcut(shortcuts, handler) {
105 registerShortcutDelegate(shortcuts, handler); 120 registerShortcutDelegate(shortcuts, handler);
106 this._registerShortcuts(shortcuts, handler); 121 this._registerShortcuts(shortcuts, handler);
107 } 122 }
108 123
109 registerShortcut.call( 124 registerShortcut.call(
110 this, UI.ShortcutsScreen.SourcesPanelShortcuts.JumpToPreviousLocation, 125 this, UI.ShortcutsScreen.SourcesPanelShortcuts.JumpToPreviousLocation,
111 this._onJumpToPreviousLocation.bind(this)); 126 this._onJumpToPreviousLocation.bind(this));
112 registerShortcut.call( 127 registerShortcut.call(
113 this, UI.ShortcutsScreen.SourcesPanelShortcuts.JumpToNextLocation, this. _onJumpToNextLocation.bind(this)); 128 this, UI.ShortcutsScreen.SourcesPanelShortcuts.JumpToNextLocation, this. _onJumpToNextLocation.bind(this));
114 registerShortcut.call( 129 registerShortcut.call(
115 this, UI.ShortcutsScreen.SourcesPanelShortcuts.CloseEditorTab, this._onC loseEditorTab.bind(this)); 130 this, UI.ShortcutsScreen.SourcesPanelShortcuts.CloseEditorTab, this._onC loseEditorTab.bind(this));
116 registerShortcut.call(this, UI.ShortcutsScreen.SourcesPanelShortcuts.GoToLin e, this._showGoToLineDialog.bind(this)); 131 registerShortcut.call(
132 this, UI.ShortcutsScreen.SourcesPanelShortcuts.GoToLine, this._showGoToL ineQuickOpen.bind(this));
117 registerShortcut.call( 133 registerShortcut.call(
118 this, UI.ShortcutsScreen.SourcesPanelShortcuts.GoToMember, this._showOut lineDialog.bind(this)); 134 this, UI.ShortcutsScreen.SourcesPanelShortcuts.GoToMember, this._showOut lineDialog.bind(this));
119 registerShortcut.call( 135 registerShortcut.call(
120 this, UI.ShortcutsScreen.SourcesPanelShortcuts.ToggleBreakpoint, this._t oggleBreakpoint.bind(this)); 136 this, UI.ShortcutsScreen.SourcesPanelShortcuts.ToggleBreakpoint, this._t oggleBreakpoint.bind(this));
121 registerShortcut.call(this, UI.ShortcutsScreen.SourcesPanelShortcuts.Save, t his._save.bind(this)); 137 registerShortcut.call(this, UI.ShortcutsScreen.SourcesPanelShortcuts.Save, t his._save.bind(this));
122 registerShortcut.call(this, UI.ShortcutsScreen.SourcesPanelShortcuts.SaveAll , this._saveAll.bind(this)); 138 registerShortcut.call(this, UI.ShortcutsScreen.SourcesPanelShortcuts.SaveAll , this._saveAll.bind(this));
123 } 139 }
124 140
125 /** 141 /**
126 * @return {!UI.Toolbar} 142 * @return {!UI.Toolbar}
(...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 if (uiSourceCode.contentType().isStyleSheet()) { 611 if (uiSourceCode.contentType().isStyleSheet()) {
596 Sources.StyleSheetOutlineDialog.show(uiSourceCode, this.showSourceLocation .bind(this, uiSourceCode)); 612 Sources.StyleSheetOutlineDialog.show(uiSourceCode, this.showSourceLocation .bind(this, uiSourceCode));
597 return true; 613 return true;
598 } 614 }
599 615
600 // We don't want default browser shortcut to be executed, so pretend to hand le this event. 616 // We don't want default browser shortcut to be executed, so pretend to hand le this event.
601 return true; 617 return true;
602 } 618 }
603 619
604 /** 620 /**
605 * @param {string=} query
606 */
607 showOpenResourceDialog(query) {
608 var uiSourceCodes = this._editorContainer.historyUISourceCodes();
609 /** @type {!Map.<!Workspace.UISourceCode, number>} */
610 var defaultScores = new Map();
611 for (var i = 1; i < uiSourceCodes.length; ++i) // Skip current element
612 defaultScores.set(uiSourceCodes[i], uiSourceCodes.length - i);
613 if (!this._openResourceDialogHistory)
614 this._openResourceDialogHistory = [];
615 Sources.OpenResourceDialog.show(this, query || '', defaultScores, this._open ResourceDialogHistory);
616 }
617
618 /**
619 * @param {!Event=} event 621 * @param {!Event=} event
620 * @return {boolean} 622 * @return {boolean}
621 */ 623 */
622 _showGoToLineDialog(event) { 624 _showGoToLineQuickOpen(event) {
623 if (this._editorContainer.currentFile()) 625 if (this._editorContainer.currentFile())
624 this.showOpenResourceDialog(':'); 626 QuickOpen.QuickOpen.show(':');
625 return true; 627 return true;
626 } 628 }
627 629
628 /** 630 /**
629 * @return {boolean} 631 * @return {boolean}
630 */ 632 */
631 _save() { 633 _save() {
632 this._saveSourceFrame(this.currentSourceFrame()); 634 this._saveSourceFrame(this.currentSourceFrame());
633 return true; 635 return true;
634 } 636 }
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 * @return {boolean} 768 * @return {boolean}
767 */ 769 */
768 handleAction(context, actionId) { 770 handleAction(context, actionId) {
769 var sourcesView = UI.context.flavor(Sources.SourcesView); 771 var sourcesView = UI.context.flavor(Sources.SourcesView);
770 if (!sourcesView) 772 if (!sourcesView)
771 return false; 773 return false;
772 sourcesView._editorContainer.closeAllFiles(); 774 sourcesView._editorContainer.closeAllFiles();
773 return true; 775 return true;
774 } 776 }
775 }; 777 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698