Title: [141249] trunk/Source/WebCore
Revision
141249
Author
[email protected]
Date
2013-01-30 03:59:44 -0800 (Wed, 30 Jan 2013)

Log Message

Web Inspector: Change the Elements panel sidebar layout based on its aspect ratio.
https://bugs.webkit.org/show_bug.cgi?id=108181

Patch by Vladislav Kaznacheev <[email protected]> on 2013-01-30
Reviewed by Pavel Feldman.

Sidebar aspect ratio proved to be a better trigger for the sidebar layout change that the docking mode.
Moved the sidebar layout handling completely into WebInspector.SidebarView which now only accepts
two positions: Start (corresponding to Left or Top) and End (corresponding to Right or Bottom).

No new tests.

* inspector/front-end/CSSNamedFlowCollectionsView.js:
(WebInspector.CSSNamedFlowCollectionsView):
* inspector/front-end/DockController.js:
(WebInspector.DockController.prototype._updateUI):
(WebInspector.DockController.prototype._toggleDockState):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.onResize):
* inspector/front-end/FileSystemView.js:
(WebInspector.FileSystemView):
* inspector/front-end/MemoryStatistics.js:
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.createSidebarView):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
* inspector/front-end/Settings.js:
(WebInspector.ExperimentsSettings):
* inspector/front-end/SidebarView.js:
(WebInspector.SidebarView):
(WebInspector.SidebarView.prototype.setAutoOrientation):
(WebInspector.SidebarView.prototype._updateSidebarPosition):
(WebInspector.SidebarView.prototype.onResize):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (141248 => 141249)


--- trunk/Source/WebCore/ChangeLog	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/ChangeLog	2013-01-30 11:59:44 UTC (rev 141249)
@@ -1,3 +1,38 @@
+2013-01-30  Vladislav Kaznacheev  <[email protected]>
+
+        Web Inspector: Change the Elements panel sidebar layout based on its aspect ratio.
+        https://bugs.webkit.org/show_bug.cgi?id=108181
+
+        Reviewed by Pavel Feldman.
+
+        Sidebar aspect ratio proved to be a better trigger for the sidebar layout change that the docking mode.
+        Moved the sidebar layout handling completely into WebInspector.SidebarView which now only accepts
+        two positions: Start (corresponding to Left or Top) and End (corresponding to Right or Bottom).
+
+        No new tests.
+
+        * inspector/front-end/CSSNamedFlowCollectionsView.js:
+        (WebInspector.CSSNamedFlowCollectionsView):
+        * inspector/front-end/DockController.js:
+        (WebInspector.DockController.prototype._updateUI):
+        (WebInspector.DockController.prototype._toggleDockState):
+        * inspector/front-end/ElementsPanel.js:
+        (WebInspector.ElementsPanel.prototype.onResize):
+        * inspector/front-end/FileSystemView.js:
+        (WebInspector.FileSystemView):
+        * inspector/front-end/MemoryStatistics.js:
+        * inspector/front-end/Panel.js:
+        (WebInspector.Panel.prototype.createSidebarView):
+        * inspector/front-end/ScriptsPanel.js:
+        (WebInspector.ScriptsPanel):
+        * inspector/front-end/Settings.js:
+        (WebInspector.ExperimentsSettings):
+        * inspector/front-end/SidebarView.js:
+        (WebInspector.SidebarView):
+        (WebInspector.SidebarView.prototype.setAutoOrientation):
+        (WebInspector.SidebarView.prototype._updateSidebarPosition):
+        (WebInspector.SidebarView.prototype.onResize):
+
 2013-01-30  Patrick Gansterer  <[email protected]>
 
         Port SharedTimerWin.cpp to WinCE
@@ -2487,6 +2522,18 @@
         * xml/XSLTProcessor.idl:
         Add exceptions to binding integrity checks to IDL.
         
+2013-01-28  Alpha Lam  <[email protected]>
+
+        [chromium] Build fix.
+
+        Unreviewed build fix. Remove the use of SkMutex from DiscardablePixelRef.
+
+        * platform/graphics/chromium/DiscardablePixelRef.cpp:
+        (WebCore::DiscardablePixelRefAllocator::allocPixelRef):
+        (WebCore::DiscardablePixelRef::DiscardablePixelRef):
+        * platform/graphics/chromium/DiscardablePixelRef.h:
+        (DiscardablePixelRef):
+
 2013-01-28  Benjamin Poulain  <[email protected]>
 
         String constructed from Literals should be non-empty

Modified: trunk/Source/WebCore/inspector/front-end/CSSNamedFlowCollectionsView.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/CSSNamedFlowCollectionsView.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/CSSNamedFlowCollectionsView.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -33,7 +33,7 @@
  */
 WebInspector.CSSNamedFlowCollectionsView = function()
 {
-    WebInspector.SidebarView.call(this, WebInspector.SidebarView.SidebarPosition.Left);
+    WebInspector.SidebarView.call(this, WebInspector.SidebarView.SidebarPosition.Start);
     this.registerRequiredCSS("cssNamedFlows.css");
 
     this._namedFlows = {};
@@ -46,11 +46,11 @@
     this._statusElement = document.createElement("span");
     this._statusElement.textContent = WebInspector.UIString("CSS Named Flows");
 
-    var sidebarHeader = this._leftElement.createChild("div", "tabbed-pane-header selected sidebar-header")
+    var sidebarHeader = this.firstElement().createChild("div", "tabbed-pane-header selected sidebar-header");
     var tab = sidebarHeader.createChild("div", "tabbed-pane-header-tab");
     tab.createChild("span", "tabbed-pane-header-tab-title").textContent = WebInspector.UIString("CSS Named Flows");
 
-    this._sidebarContentElement = this._leftElement.createChild("div", "sidebar-content outline-disclosure");
+    this._sidebarContentElement = this.firstElement().createChild("div", "sidebar-content outline-disclosure");
     this._flowListElement = this._sidebarContentElement.createChild("ol");
     this._flowTree = new TreeOutline(this._flowListElement);
 
@@ -60,7 +60,7 @@
 
     this._tabbedPane = new WebInspector.TabbedPane();
     this._tabbedPane.closeableTabs = true;
-    this._tabbedPane.show(this._rightElement);
+    this._tabbedPane.show(this.secondElement());
 }
 
 WebInspector.CSSNamedFlowCollectionsView.prototype = {

Modified: trunk/Source/WebCore/inspector/front-end/DockController.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/DockController.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/DockController.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -30,7 +30,6 @@
 
 /**
  * @constructor
- * @extends {WebInspector.Object}
  */
 WebInspector.DockController = function()
 {
@@ -51,10 +50,6 @@
     Undocked: "undocked"
 }
 
-WebInspector.DockController.EventTypes = {
-    StateChanged: "StateChanged"
-}
-
 WebInspector.DockController.prototype = {
     /**
      * @return {Element}
@@ -65,14 +60,6 @@
     },
 
     /**
-     * @return {string}
-     */
-    dockSide: function()
-    {
-      return this._dockSide;
-    },
-
-    /**
      * @param {string} dockSide
      */
     setDockSide: function(dockSide)
@@ -154,8 +141,6 @@
         }
         this._decorateButtonForTargetState(this._dockToggleButton, lastState);
         this._decorateButtonForTargetState(this._dockToggleButtonOption, sides[0]);
-
-        this.dispatchEventToListeners(WebInspector.DockController.EventTypes.StateChanged, this._dockSide);
     },
 
     /**
@@ -197,9 +182,7 @@
         case "undock": action = "" break;
         }
         InspectorFrontendHost.requestSetDockSide(action);
-    },
-
-    __proto__: WebInspector.Object.prototype
+    }
 }
 
 /**

Modified: trunk/Source/WebCore/inspector/front-end/ElementsPanel.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/ElementsPanel.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/ElementsPanel.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -47,13 +47,12 @@
     this.registerRequiredCSS("textPrompt.css");
     this.setHideOnDetach();
 
-    WebInspector.dockController.addEventListener(WebInspector.DockController.EventTypes.StateChanged, this._onDockStateChanged.bind(this));
-
     const initialSidebarWidth = 325;
     const minimumContentWidthPercent = 34;
     const initialSidebarHeight = 325;
     const minimumContentHeightPercent = 34;
-    this.createSidebarView(this.element, this._sidebarPosition(), initialSidebarWidth, initialSidebarHeight);
+    this.createSidebarView(this.element, WebInspector.SidebarView.SidebarPosition.End, initialSidebarWidth, initialSidebarHeight);
+    this.splitView.setAutoOrientation(WebInspector.experimentsSettings.elementsPanelSingleColumn.isEnabled());
     this.splitView.setMinimumSidebarWidth(Preferences.minElementsSidebarWidth);
     this.splitView.setMinimumMainWidthPercent(minimumContentWidthPercent);
     this.splitView.setMinimumSidebarHeight(Preferences.minElementsSidebarHeight);
@@ -164,29 +163,9 @@
     {
         this.treeOutline.updateSelection();
         this.updateBreadcrumbSizes();
-        if (WebInspector.dockController.dockSide() !== WebInspector.DockController.State.Undocked)
-            this.splitView.setSidebarPosition(this._sidebarPosition());
     },
 
-    _onDockStateChanged: function()
-    {
-        if (WebInspector.dockController.dockSide() === WebInspector.DockController.State.Undocked)
-            this.splitView.setSidebarPosition(this._sidebarPosition());
-    },
-
     /**
-     * @return {string}
-     */
-    _sidebarPosition: function()
-    {
-        if (WebInspector.experimentsSettings.elementsPanelSingleColumn.isEnabled() &&
-            WebInspector.dockController.dockSide() === WebInspector.DockController.State.DockedToRight)
-            return WebInspector.SidebarView.SidebarPosition.Bottom;
-
-        return WebInspector.SidebarView.SidebarPosition.Right;
-    },
-
-    /**
      * @param {DOMAgent.NodeId} nodeId
      * @param {string} pseudoClass
      * @param {boolean} enable

Modified: trunk/Source/WebCore/inspector/front-end/FileSystemView.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/FileSystemView.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/FileSystemView.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -35,7 +35,7 @@
  */
 WebInspector.FileSystemView = function(fileSystem)
 {
-    WebInspector.SidebarView.call(this, WebInspector.SidebarView.SidebarPosition.Left, "FileSystemViewSidebarWidth");
+    WebInspector.SidebarView.call(this, WebInspector.SidebarView.SidebarPosition.Start, "FileSystemViewSidebarWidth");
     this.element.addStyleClass("file-system-view");
     this.element.addStyleClass("storage-view");
 

Modified: trunk/Source/WebCore/inspector/front-end/MemoryStatistics.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/MemoryStatistics.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/MemoryStatistics.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -43,7 +43,7 @@
     model.addEventListener(WebInspector.TimelineModel.Events.RecordsCleared, this._onRecordsCleared, this);
 
     this._containerAnchor = timelinePanel.element.lastChild;
-    this._memorySidebarView = new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Left, undefined, sidebarWidth);
+    this._memorySidebarView = new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Start, undefined, sidebarWidth);
     this._memorySidebarView.sidebarElement.addStyleClass("sidebar");
     this._memorySidebarView.element.id = "memory-graphs-container";
 

Modified: trunk/Source/WebCore/inspector/front-end/Panel.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/Panel.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/Panel.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -162,7 +162,7 @@
         if (!parentElement)
             parentElement = this.element;
 
-        this.splitView = new WebInspector.SidebarView(position || WebInspector.SidebarView.SidebarPosition.Left, this._sidebarWidthSettingName(), defaultWidth, defaultHeight);
+        this.splitView = new WebInspector.SidebarView(position, this._sidebarWidthSettingName(), defaultWidth, defaultHeight);
         this.splitView.show(parentElement);
         this.splitView.addEventListener(WebInspector.SidebarView.EventTypes.Resized, this.sidebarResized.bind(this));
 

Modified: trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -69,7 +69,7 @@
 
     const initialDebugSidebarWidth = 225;
     const minimumDebugSidebarWidthPercent = 50;
-    this.createSidebarView(this.element, WebInspector.SidebarView.SidebarPosition.Right, initialDebugSidebarWidth);
+    this.createSidebarView(this.element, WebInspector.SidebarView.SidebarPosition.End, initialDebugSidebarWidth);
     this.splitView.element.id = "scripts-split-view";
     this.splitView.setMinimumSidebarWidth(Preferences.minScriptsSidebarWidth);
     this.splitView.setMinimumMainWidthPercent(minimumDebugSidebarWidthPercent);
@@ -83,7 +83,7 @@
     // Create scripts navigator
     const initialNavigatorWidth = 225;
     const minimumViewsContainerWidthPercent = 50;
-    this.editorView = new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Left, "scriptsPanelNavigatorSidebarWidth", initialNavigatorWidth);
+    this.editorView = new WebInspector.SidebarView(WebInspector.SidebarView.SidebarPosition.Start, "scriptsPanelNavigatorSidebarWidth", initialNavigatorWidth);
     this.editorView.element.tabIndex = 0;
 
     this.editorView.setMinimumSidebarWidth(Preferences.minScriptsSidebarWidth);

Modified: trunk/Source/WebCore/inspector/front-end/Settings.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/Settings.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/Settings.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -214,7 +214,7 @@
     this.cssRegions = this._createExperiment("cssRegions", "CSS Regions Support");
     this.showOverridesInDrawer = this._createExperiment("showOverridesInDrawer", "Show Overrides in drawer");
     this.fileSystemProject = this._createExperiment("fileSystemProject", "File system folders in Sources Panel");
-    this.elementsPanelSingleColumn = this._createExperiment("elementsPanelSingleColumn", "Single-column elements panel layout when docked to right");
+    this.elementsPanelSingleColumn = this._createExperiment("elementsPanelSingleColumn", "Split Elements sidebar horizontally when it is too narrow");
 
     this._cleanUpSetting();
 }

Modified: trunk/Source/WebCore/inspector/front-end/SidebarView.js (141248 => 141249)


--- trunk/Source/WebCore/inspector/front-end/SidebarView.js	2013-01-30 11:58:08 UTC (rev 141248)
+++ trunk/Source/WebCore/inspector/front-end/SidebarView.js	2013-01-30 11:59:44 UTC (rev 141249)
@@ -38,16 +38,15 @@
 {
     WebInspector.SplitView.call(this, true, sidebarWidthSettingName, defaultSidebarWidth, defaultSidebarHeight);
 
-    this._leftElement = this.firstElement();
-    this._rightElement = this.secondElement();
-
     this._minimumSidebarWidth = Preferences.minSidebarWidth;
     this._minimumMainWidthPercent = 50;
 
     this._minimumSidebarHeight = Preferences.minSidebarHeight;
     this._minimumMainHeightPercent = 50;
 
-    this._innerSetSidebarPosition(sidebarPosition || WebInspector.SidebarView.SidebarPosition.Left);
+    this._sidebarPosition = sidebarPosition || WebInspector.SidebarView.SidebarPosition.Start;
+    this.setSecondIsSidebar(this._sidebarPosition === WebInspector.SidebarView.SidebarPosition.End);
+    this._updateSidebarPosition();
 }
 
 WebInspector.SidebarView.EventTypes = {
@@ -58,10 +57,8 @@
  * @enum {string}
  */
 WebInspector.SidebarView.SidebarPosition = {
-    Left: "Left",
-    Right: "Right",
-    Top: "Top",
-    Bottom: "Bottom"
+    Start: "Start",
+    End: "End"
 }
 
 WebInspector.SidebarView.prototype = {
@@ -95,45 +92,34 @@
     },
 
     /**
-     * @param {string} sidebarPosition
+     * @param {boolean} on
      */
-    setSidebarPosition: function(sidebarPosition)
-    {
-        if (this.sidebarPosition_ === sidebarPosition)
-            return;
-
-        this._innerSetSidebarPosition(sidebarPosition);
+    setAutoOrientation: function(on) {
+        this._autoOrientation = on;
     },
 
-    /**
-     * @param {string} sidebarPosition
-     */
-    _innerSetSidebarPosition: function(sidebarPosition)
+    _updateSidebarPosition: function()
     {
-        this.sidebarPosition_ = sidebarPosition;
+        var verticalSplit = true;
+        if (this._autoOrientation)
+            verticalSplit = this.element.offsetHeight < this.element.offsetWidth;
 
-        switch (sidebarPosition) {
-        case WebInspector.SidebarView.SidebarPosition.Left:
-            this.setSecondIsSidebar(false);
-            this._setSidebarElementStyle("split-view-sidebar-left");
-            this.setVertical(true);
-            break;
-        case WebInspector.SidebarView.SidebarPosition.Right:
-            this.setSecondIsSidebar(true);
-            this._setSidebarElementStyle("split-view-sidebar-right");
-            this.setVertical(true);
-            break;
-        case WebInspector.SidebarView.SidebarPosition.Top:
-            this.setSecondIsSidebar(false);
-            this._setSidebarElementStyle("split-view-sidebar-top");
-            this.setVertical(false);
-            break;
-        case WebInspector.SidebarView.SidebarPosition.Bottom:
-            this.setSecondIsSidebar(true);
-            this._setSidebarElementStyle("split-view-sidebar-bottom");
-            this.setVertical(false);
-            break;
+        if (verticalSplit === this.isVertical())
+            return;
+
+        if (this._sidebarPosition === WebInspector.SidebarView.SidebarPosition.Start) {
+            if (verticalSplit)
+                this._setSidebarElementStyle("split-view-sidebar-left");
+            else
+                this._setSidebarElementStyle("split-view-sidebar-top");
+        } else {
+            if (verticalSplit)
+                this._setSidebarElementStyle("split-view-sidebar-right");
+            else
+                this._setSidebarElementStyle("split-view-sidebar-bottom");
         }
+
+        this.setVertical(verticalSplit);
     },
 
     /**
@@ -186,6 +172,8 @@
 
     onResize: function()
     {
+        if (this._autoOrientation)
+            this._updateSidebarPosition();
         WebInspector.SplitView.prototype.onResize.call(this);
         this.dispatchEventToListeners(WebInspector.SidebarView.EventTypes.Resized, this.sidebarWidth());
     },
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to