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

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

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

Powered by Google App Engine
This is Rietveld 408576698