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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/ui/View.js

Issue 2617293002: DevTools: TabbedLocations only materialize tabs when needed (Closed)
Patch Set: rework for TabbedLocations Created 3 years, 11 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 * @interface 5 * @interface
6 */ 6 */
7 UI.View = function() {}; 7 UI.View = function() {};
8 8
9 UI.View.prototype = { 9 UI.View.prototype = {
10 /** 10 /**
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 571
572 super(manager, tabbedPane, revealCallback); 572 super(manager, tabbedPane, revealCallback);
573 this._tabbedPane = tabbedPane; 573 this._tabbedPane = tabbedPane;
574 this._allowReorder = allowReorder; 574 this._allowReorder = allowReorder;
575 575
576 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabSelected, this._ta bSelected, this); 576 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabSelected, this._ta bSelected, this);
577 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabClosed, this._tabC losed, this); 577 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabClosed, this._tabC losed, this);
578 this._closeableTabSetting = Common.settings.createSetting(location + '-close ableTabs', {}); 578 this._closeableTabSetting = Common.settings.createSetting(location + '-close ableTabs', {});
579 this._tabOrderSetting = Common.settings.createSetting(location + '-tabOrder' , {}); 579 this._tabOrderSetting = Common.settings.createSetting(location + '-tabOrder' , {});
580 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabOrderChanged, this ._persistTabOrder, this); 580 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabOrderChanged, this ._persistTabOrder, this);
581 this._tabbedPane.addEventListener(UI.TabbedPane.Events.TabsShown, this._tabs Shown, this);
581 if (restoreSelection) 582 if (restoreSelection)
582 this._lastSelectedTabSetting = Common.settings.createSetting(location + '- selectedTab', ''); 583 this._lastSelectedTabSetting = Common.settings.createSetting(location + '- selectedTab', '');
583 this._defaultTab = defaultTab; 584 this._defaultTab = defaultTab;
584 585
585 /** @type {!Map.<string, !UI.View>} */ 586 /** @type {!Map.<string, !UI.View>} */
586 this._views = new Map(); 587 this._views = new Map();
587 588
588 if (location) 589 if (location)
589 this.appendApplicableItems(location); 590 this.appendApplicableItems(location);
590 } 591 }
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 * @param {!Common.Event} event 731 * @param {!Common.Event} event
731 */ 732 */
732 _tabSelected(event) { 733 _tabSelected(event) {
733 var tabId = /** @type {string} */ (event.data.tabId); 734 var tabId = /** @type {string} */ (event.data.tabId);
734 if (this._lastSelectedTabSetting && event.data['isUserGesture']) 735 if (this._lastSelectedTabSetting && event.data['isUserGesture'])
735 this._lastSelectedTabSetting.set(tabId); 736 this._lastSelectedTabSetting.set(tabId);
736 var view = this._views.get(tabId); 737 var view = this._views.get(tabId);
737 if (!view) 738 if (!view)
738 return; 739 return;
739 740
740 this._materializeWidget(view); 741 if (this._tabbedPane.isShowing())
742 this._materializeWidget(view);
741 743
742 if (view.isCloseable()) { 744 if (view.isCloseable()) {
743 var tabs = this._closeableTabSetting.get(); 745 var tabs = this._closeableTabSetting.get();
744 if (!tabs[tabId]) { 746 if (!tabs[tabId]) {
745 tabs[tabId] = true; 747 tabs[tabId] = true;
746 this._closeableTabSetting.set(tabs); 748 this._closeableTabSetting.set(tabs);
747 } 749 }
748 } 750 }
749 } 751 }
750 752
751 /** 753 /**
752 * @param {!Common.Event} event 754 * @param {!Common.Event} event
753 */ 755 */
756 _tabsShown(event) {
dgozman 2017/01/10 21:51:45 We can instead materialize when our wrapper (UI.Vi
luoe 2017/01/10 23:15:17 Brilliant idea
757 var view = event.data ? this._views.get(event.data.id) : null;
758 if (!view)
759 return;
760 this._materializeWidget(view);
761 }
762
763 /**
764 * @param {!Common.Event} event
765 */
754 _tabClosed(event) { 766 _tabClosed(event) {
755 var id = /** @type {string} */ (event.data['tabId']); 767 var id = /** @type {string} */ (event.data['tabId']);
756 var tabs = this._closeableTabSetting.get(); 768 var tabs = this._closeableTabSetting.get();
757 if (tabs[id]) { 769 if (tabs[id]) {
758 delete tabs[id]; 770 delete tabs[id];
759 this._closeableTabSetting.set(tabs); 771 this._closeableTabSetting.set(tabs);
760 } 772 }
761 } 773 }
762 774
763 /** 775 /**
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 appendApplicableItems(locationName) { 872 appendApplicableItems(locationName) {
861 for (var view of this._manager._viewsForLocation(locationName)) 873 for (var view of this._manager._viewsForLocation(locationName))
862 this.appendView(view); 874 this.appendView(view);
863 } 875 }
864 }; 876 };
865 877
866 /** 878 /**
867 * @type {!UI.ViewManager} 879 * @type {!UI.ViewManager}
868 */ 880 */
869 UI.viewManager; 881 UI.viewManager;
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/ui/TabbedPane.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698