Changeset 140333 in webkit
- Timestamp:
- Jan 21, 2013 7:32:47 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r140332 r140333 1 2013-01-21 Vladislav Kaznacheev <kaznacheev@chromium.org> 2 3 [Inspector] Layout Elements panel in a single column when docked right. 4 https://bugs.webkit.org/show_bug.cgi?id=107129 5 6 Reviewed by Pavel Feldman. 7 8 If the Inspector is docked right, the style panes in the Elements panel 9 are put below the DOM tree pane, not to the right. This behavior 10 is experimental (hidden behind a new flag "elementsPanelSingleColumn"). 11 12 No new tests. 13 14 * inspector/front-end/DockController.js: 15 (WebInspector.DockController.prototype.dockSide): 16 (WebInspector.DockController.prototype._updateUI): 17 (WebInspector.DockController.prototype._toggleDockState): 18 * inspector/front-end/ElementsPanel.js: 19 (WebInspector.ElementsPanel.prototype.onResize): 20 (WebInspector.ElementsPanel.prototype._onDockStateChanged): 21 (WebInspector.ElementsPanel.prototype._sidebarPosition): 22 * inspector/front-end/Panel.js: 23 (WebInspector.Panel.prototype.createSidebarView): 24 * inspector/front-end/Settings.js: 25 (WebInspector.ExperimentsSettings): 26 * inspector/front-end/SidebarView.js: 27 (WebInspector.SidebarView): 28 (WebInspector.SidebarView.prototype.get mainElement): 29 (WebInspector.SidebarView.prototype.get sidebarElement): 30 (WebInspector.SidebarView.prototype._setSidebarElementStyle): 31 (WebInspector.SidebarView.prototype.setSidebarPosition): 32 (WebInspector.SidebarView.prototype._innerSetSidebarPosition): 33 (WebInspector.SidebarView.prototype.setMinimumSidebarHeight): 34 (WebInspector.SidebarView.prototype.setMinimumMainHeightPercent): 35 (WebInspector.SidebarView.prototype.applyConstraints): 36 (WebInspector.SidebarView.prototype.hideMainElement): 37 (WebInspector.SidebarView.prototype.hideSidebarElement): 38 * inspector/front-end/SplitView.js: 39 (WebInspector.SplitView): 40 * inspector/front-end/splitView.css: 41 (.split-view-sidebar-top): 42 (.split-view-sidebar-top.maximized): 43 (.split-view-sidebar-bottom): 44 (.split-view-sidebar-bottom.maximized): 45 1 46 2013-01-21 Yury Semikhatsky <yurys@chromium.org> 2 47 -
trunk/Source/WebCore/inspector/front-end/DockController.js
r139188 r140333 31 31 /** 32 32 * @constructor 33 * @extends {WebInspector.Object} 33 34 */ 34 35 WebInspector.DockController = function() … … 51 52 } 52 53 54 WebInspector.DockController.EventTypes = { 55 StateChanged: "StateChanged" 56 } 57 53 58 WebInspector.DockController.prototype = { 54 59 /** … … 58 63 { 59 64 return this._dockToggleButton.element; 65 }, 66 67 /** 68 * @return {string} 69 */ 70 dockSide: function() 71 { 72 return this._dockSide; 60 73 }, 61 74 … … 136 149 this._decorateButtonForTargetState(this._dockToggleButton, lastState); 137 150 this._decorateButtonForTargetState(this._dockToggleButtonOption, sides[0]); 151 152 this.dispatchEventToListeners(WebInspector.DockController.EventTypes.StateChanged, this._dockSide); 138 153 }, 139 154 … … 177 192 } 178 193 InspectorFrontendHost.requestSetDockSide(action); 179 } 180 } 194 }, 195 196 __proto__: WebInspector.Object.prototype 197 } 198 199 /** 200 * @type {?WebInspector.DockController} 201 */ 202 WebInspector.dockController = null; -
trunk/Source/WebCore/inspector/front-end/ElementsPanel.js
r139427 r140333 48 48 this.setHideOnDetach(); 49 49 50 WebInspector.dockController.addEventListener(WebInspector.DockController.EventTypes.StateChanged, this._onDockStateChanged.bind(this)); 51 50 52 const initialSidebarWidth = 325; 51 53 const minimumContentWidthPercent = 34; 52 this.createSidebarView(this.element, WebInspector.SidebarView.SidebarPosition.Right, initialSidebarWidth); 54 const initialSidebarHeight = 325; 55 const minimumContentHeightPercent = 34; 56 this.createSidebarView(this.element, this._sidebarPosition(), initialSidebarWidth, initialSidebarHeight); 53 57 this.splitView.setMinimumSidebarWidth(Preferences.minElementsSidebarWidth); 54 58 this.splitView.setMinimumMainWidthPercent(minimumContentWidthPercent); 59 this.splitView.setMinimumSidebarHeight(Preferences.minElementsSidebarHeight); 60 this.splitView.setMinimumMainHeightPercent(minimumContentHeightPercent); 55 61 56 62 this.contentElement = this.splitView.mainElement; … … 167 173 this.treeOutline.updateSelection(); 168 174 this.updateBreadcrumbSizes(); 175 if (WebInspector.dockController.dockSide() !== WebInspector.DockController.State.Undocked) 176 this.splitView.setSidebarPosition(this._sidebarPosition()); 177 }, 178 179 _onDockStateChanged: function() 180 { 181 if (WebInspector.dockController.dockSide() === WebInspector.DockController.State.Undocked) 182 this.splitView.setSidebarPosition(this._sidebarPosition()); 183 }, 184 185 /** 186 * @return {string} 187 */ 188 _sidebarPosition: function() 189 { 190 if (WebInspector.experimentsSettings.elementsPanelSingleColumn.isEnabled() && 191 WebInspector.dockController.dockSide() === WebInspector.DockController.State.DockedToRight) 192 return WebInspector.SidebarView.SidebarPosition.Bottom; 193 194 return WebInspector.SidebarView.SidebarPosition.Right; 169 195 }, 170 196 -
trunk/Source/WebCore/inspector/front-end/Panel.js
r138244 r140333 153 153 * @param {string=} position 154 154 * @param {number=} defaultWidth 155 */ 156 createSidebarView: function(parentElement, position, defaultWidth) 155 * @param {number=} defaultHeight 156 */ 157 createSidebarView: function(parentElement, position, defaultWidth, defaultHeight) 157 158 { 158 159 if (this.splitView) … … 162 163 parentElement = this.element; 163 164 164 this.splitView = new WebInspector.SidebarView(position || WebInspector.SidebarView.SidebarPosition.Left, this._sidebarWidthSettingName(), defaultWidth );165 this.splitView = new WebInspector.SidebarView(position || WebInspector.SidebarView.SidebarPosition.Left, this._sidebarWidthSettingName(), defaultWidth, defaultHeight); 165 166 this.splitView.show(parentElement); 166 167 this.splitView.addEventListener(WebInspector.SidebarView.EventTypes.Resized, this.sidebarResized.bind(this)); -
trunk/Source/WebCore/inspector/front-end/Settings.js
r140124 r140333 34 34 minConsoleHeight: 75, 35 35 minSidebarWidth: 100, 36 minSidebarHeight: 75, 36 37 minElementsSidebarWidth: 200, 38 minElementsSidebarHeight: 200, 37 39 minScriptsSidebarWidth: 200, 38 40 styleRulesExpandedState: {}, … … 211 213 this.showOverridesInDrawer = this._createExperiment("showOverridesInDrawer", "Show Overrides in drawer"); 212 214 this.fileSystemProject = this._createExperiment("fileSystemProject", "File system folders in Sources Panel"); 215 this.elementsPanelSingleColumn = this._createExperiment("elementsPanelSingleColumn", "Single-column elements panel layout when docked to right"); 213 216 214 217 this._cleanUpSetting(); -
trunk/Source/WebCore/inspector/front-end/SidebarView.js
r139996 r140333 33 33 * @param {string=} sidebarWidthSettingName 34 34 * @param {number=} defaultSidebarWidth 35 * @param {number=} defaultSidebarHeight 35 36 */ 36 WebInspector.SidebarView = function(sidebarPosition, sidebarWidthSettingName, defaultSidebarWidth )37 WebInspector.SidebarView = function(sidebarPosition, sidebarWidthSettingName, defaultSidebarWidth, defaultSidebarHeight) 37 38 { 38 WebInspector.SplitView.call(this, true, sidebarWidthSettingName, defaultSidebarWidth || 200);39 WebInspector.SplitView.call(this, true, sidebarWidthSettingName, defaultSidebarWidth, defaultSidebarHeight); 39 40 40 41 this._leftElement = this.firstElement(); … … 44 45 this._minimumMainWidthPercent = 50; 45 46 46 this._m ainElementHidden = false;47 this._ sidebarElementHidden = false;47 this._minimumSidebarHeight = Preferences.minSidebarHeight; 48 this._minimumMainHeightPercent = 50; 48 49 49 50 this._innerSetSidebarPosition(sidebarPosition || WebInspector.SidebarView.SidebarPosition.Left); 50 this.setSecondIsSidebar(sidebarPosition !== WebInspector.SidebarView.SidebarPosition.Left);51 51 } 52 52 … … 60 60 WebInspector.SidebarView.SidebarPosition = { 61 61 Left: "Left", 62 Right: "Right" 62 Right: "Right", 63 Top: "Top", 64 Bottom: "Bottom" 63 65 } 64 66 65 67 WebInspector.SidebarView.prototype = { 66 68 /** 67 * @return {boolean}68 */69 _hasLeftSidebar: function()70 {71 return this._sidebarPosition === WebInspector.SidebarView.SidebarPosition.Left;72 },73 74 /**75 69 * @return {Element} 76 70 */ 77 71 get mainElement() 78 72 { 79 return this. _hasLeftSidebar() ? this._rightElement : this._leftElement;73 return this.isSidebarSecond() ? this.firstElement() : this.secondElement(); 80 74 }, 81 75 … … 85 79 get sidebarElement() 86 80 { 87 return this._hasLeftSidebar() ? this._leftElement : this._rightElement; 81 return this.isSidebarSecond() ? this.secondElement() : this.firstElement(); 82 }, 83 84 /** 85 * @param {string} styleClass 86 */ 87 _setSidebarElementStyle: function(styleClass) 88 { 89 this.sidebarElement.removeStyleClass("split-view-sidebar-left"); 90 this.sidebarElement.removeStyleClass("split-view-sidebar-right"); 91 this.sidebarElement.removeStyleClass("split-view-sidebar-top"); 92 this.sidebarElement.removeStyleClass("split-view-sidebar-bottom"); 93 94 this.sidebarElement.addStyleClass(styleClass); 88 95 }, 89 96 … … 91 98 * @param {string} sidebarPosition 92 99 */ 100 setSidebarPosition: function(sidebarPosition) 101 { 102 if (this.sidebarPosition_ === sidebarPosition) 103 return; 104 105 this._innerSetSidebarPosition(sidebarPosition); 106 }, 107 108 /** 109 * @param {string} sidebarPosition 110 */ 93 111 _innerSetSidebarPosition: function(sidebarPosition) 94 112 { 95 this._sidebarPosition = sidebarPosition; 96 97 if (this._hasLeftSidebar()) { 98 this._leftElement.addStyleClass("split-view-sidebar-left"); 99 this._rightElement.removeStyleClass("split-view-sidebar-right"); 100 } else { 101 this._rightElement.addStyleClass("split-view-sidebar-right"); 102 this._leftElement.removeStyleClass("split-view-sidebar-left"); 113 this.sidebarPosition_ = sidebarPosition; 114 115 switch (sidebarPosition) { 116 case WebInspector.SidebarView.SidebarPosition.Left: 117 this.setSecondIsSidebar(false); 118 this._setSidebarElementStyle("split-view-sidebar-left"); 119 this.setVertical(true); 120 break; 121 case WebInspector.SidebarView.SidebarPosition.Right: 122 this.setSecondIsSidebar(true); 123 this._setSidebarElementStyle("split-view-sidebar-right"); 124 this.setVertical(true); 125 break; 126 case WebInspector.SidebarView.SidebarPosition.Top: 127 this.setSecondIsSidebar(false); 128 this._setSidebarElementStyle("split-view-sidebar-top"); 129 this.setVertical(false); 130 break; 131 case WebInspector.SidebarView.SidebarPosition.Bottom: 132 this.setSecondIsSidebar(true); 133 this._setSidebarElementStyle("split-view-sidebar-bottom"); 134 this.setVertical(false); 135 break; 103 136 } 104 137 }, … … 113 146 114 147 /** 148 * @param {number} height 149 */ 150 setMinimumSidebarHeight: function(height) 151 { 152 this._minimumSidebarHeight = height; 153 }, 154 155 /** 115 156 * @param {number} widthPercent 116 157 */ … … 118 159 { 119 160 this._minimumMainWidthPercent = widthPercent; 161 }, 162 163 /** 164 * @param {number} heightPercent 165 */ 166 setMinimumMainHeightPercent: function(heightPercent) 167 { 168 this._minimumMainHeightPercent = heightPercent; 120 169 }, 121 170 … … 147 196 applyConstraints: function(size) 148 197 { 149 var offsetWidth = this.element.offsetWidth; 150 return offsetWidth ? Number.constrain(size, this._minimumSidebarWidth, offsetWidth * (100 - this._minimumMainWidthPercent) / 100) : size; 198 var minSidebarSize = this.isVertical() ? this._minimumSidebarWidth : this._minimumSidebarHeight; 199 var minMainSizePercent = this.isVertical() ? this._minimumMainWidthPercent : this._minimumMainHeightPercent; 200 return Number.constrain(size, minSidebarSize, this.totalSize() * (100 - minMainSizePercent) / 100); 151 201 }, 152 202 153 203 hideMainElement: function() 154 204 { 155 if (this._hasLeftSidebar()) 205 if (this.isSidebarSecond()) 206 this.showOnlySecond(); 207 else 208 this.showOnlyFirst(); 209 }, 210 211 showMainElement: function() 212 { 213 this.showBoth(); 214 }, 215 216 hideSidebarElement: function() 217 { 218 if (this.isSidebarSecond()) 156 219 this.showOnlyFirst(); 157 220 else … … 159 222 }, 160 223 161 show MainElement: function()224 showSidebarElement: function() 162 225 { 163 226 this.showBoth(); 164 227 }, 165 228 166 hideSidebarElement: function()167 {168 if (this._hasLeftSidebar())169 this.showOnlySecond();170 else171 this.showOnlyFirst();172 },173 174 showSidebarElement: function()175 {176 this.showBoth();177 },178 179 229 /** 180 230 * @return {Array.<Element>} -
trunk/Source/WebCore/inspector/front-end/SplitView.js
r140304 r140333 44 44 45 45 this._firstElement = this.element.createChild("div", "split-view-contents"); 46 47 46 this._secondElement = this.element.createChild("div", "split-view-contents"); 48 47 -
trunk/Source/WebCore/inspector/front-end/splitView.css
r134031 r140333 68 68 } 69 69 70 .split-view-sidebar-top { 71 border-bottom: 1px solid rgb(64%, 64%, 64%); 72 } 73 74 .split-view-sidebar-top.maximized { 75 border-bottom: none; 76 } 77 78 .split-view-sidebar-bottom { 79 border-top: 1px solid rgb(64%, 64%, 64%); 80 } 81 82 .split-view-sidebar-bottom.maximized { 83 border-top: none; 84 } 85 70 86 .split-view-resizer.split-view-resizer-vertical { 71 87 position: absolute;
Note: See TracChangeset
for help on using the changeset viewer.