Title: [183337] trunk/Source/WebInspectorUI
Revision
183337
Author
[email protected]
Date
2015-04-25 18:24:40 -0700 (Sat, 25 Apr 2015)

Log Message

Web Inspector: Add NavigationBar to the details sidebar
https://bugs.webkit.org/show_bug.cgi?id=144191

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):

* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel):
(WebInspector.DetailsSidebarPanel.prototype.get navigationItem):

* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype.removeNavigationItem):
Remove unused index argument.

* UserInterface/Views/Sidebar.css:
(.sidebar > .navigation-bar):
(.sidebar.has-navigation-bar > .panel):

* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar):
(WebInspector.Sidebar.prototype.addSidebarPanel):
(WebInspector.Sidebar.prototype.removeSidebarPanel):
(WebInspector.Sidebar.prototype.set selectedSidebarPanel):
(WebInspector.Sidebar.prototype.get minimumWidth):
(WebInspector.Sidebar.prototype.set width):
(WebInspector.Sidebar.prototype.set collapsed):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (183336 => 183337)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-04-26 01:23:48 UTC (rev 183336)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-04-26 01:24:40 UTC (rev 183337)
@@ -1,3 +1,34 @@
+2015-04-25  Timothy Hatcher  <[email protected]>
+
+        Web Inspector: Add NavigationBar to the details sidebar
+        https://bugs.webkit.org/show_bug.cgi?id=144191
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Base/Main.js:
+        (WebInspector.contentLoaded):
+
+        * UserInterface/Views/DetailsSidebarPanel.js:
+        (WebInspector.DetailsSidebarPanel):
+        (WebInspector.DetailsSidebarPanel.prototype.get navigationItem):
+
+        * UserInterface/Views/NavigationBar.js:
+        (WebInspector.NavigationBar.prototype.removeNavigationItem):
+        Remove unused index argument.
+
+        * UserInterface/Views/Sidebar.css:
+        (.sidebar > .navigation-bar):
+        (.sidebar.has-navigation-bar > .panel):
+
+        * UserInterface/Views/Sidebar.js:
+        (WebInspector.Sidebar):
+        (WebInspector.Sidebar.prototype.addSidebarPanel):
+        (WebInspector.Sidebar.prototype.removeSidebarPanel):
+        (WebInspector.Sidebar.prototype.set selectedSidebarPanel):
+        (WebInspector.Sidebar.prototype.get minimumWidth):
+        (WebInspector.Sidebar.prototype.set width):
+        (WebInspector.Sidebar.prototype.set collapsed):
+
 2015-04-24  Timothy Hatcher  <[email protected]>
 
         Web Inspector: Switch over to a tab based UI

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (183336 => 183337)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2015-04-26 01:23:48 UTC (rev 183336)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2015-04-26 01:24:40 UTC (rev 183337)
@@ -228,7 +228,7 @@
     this.navigationSidebar = new WebInspector.Sidebar(document.getElementById("navigation-sidebar"), WebInspector.Sidebar.Sides.Left);
     this.navigationSidebar.addEventListener(WebInspector.Sidebar.Event.WidthDidChange, this._sidebarWidthDidChange, this);
 
-    this.detailsSidebar = new WebInspector.Sidebar(document.getElementById("details-sidebar"), WebInspector.Sidebar.Sides.Right, null, null, WebInspector.UIString("Details"));
+    this.detailsSidebar = new WebInspector.Sidebar(document.getElementById("details-sidebar"), WebInspector.Sidebar.Sides.Right, null, null, WebInspector.UIString("Details"), true);
     this.detailsSidebar.addEventListener(WebInspector.Sidebar.Event.WidthDidChange, this._sidebarWidthDidChange, this);
 
     this.navigationSidebarKeyboardShortcut = new WebInspector.KeyboardShortcut(WebInspector.KeyboardShortcut.Modifier.CommandOrControl, "0", this.toggleNavigationSidebar.bind(this));

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DetailsSidebarPanel.js (183336 => 183337)


--- trunk/Source/WebInspectorUI/UserInterface/Views/DetailsSidebarPanel.js	2015-04-26 01:23:48 UTC (rev 183336)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DetailsSidebarPanel.js	2015-04-26 01:24:40 UTC (rev 183337)
@@ -30,10 +30,17 @@
         super(identifier, displayName, element);
 
         this.element.classList.add("details");
+
+        this._navigationItem = new WebInspector.RadioButtonNavigationItem(identifier, displayName);
     }
 
     // Public
 
+    get navigationItem()
+    {
+        return this._navigationItem;
+    }
+
     inspect(objects)
     {
         // Implemented by subclasses.

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NavigationBar.js (183336 => 183337)


--- trunk/Source/WebInspectorUI/UserInterface/Views/NavigationBar.js	2015-04-26 01:23:48 UTC (rev 183336)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NavigationBar.js	2015-04-26 01:24:40 UTC (rev 183337)
@@ -109,7 +109,7 @@
         return navigationItem;
     },
 
-    removeNavigationItem: function(navigationItemOrIdentifierOrIndex, index)
+    removeNavigationItem: function(navigationItemOrIdentifierOrIndex)
     {
         var navigationItem = this._findNavigationItem(navigationItemOrIdentifierOrIndex);
         if (!navigationItem)

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.css (183336 => 183337)


--- trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.css	2015-04-26 01:23:48 UTC (rev 183336)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.css	2015-04-26 01:24:40 UTC (rev 183337)
@@ -42,6 +42,14 @@
     background-color: rgb(231, 231, 231);
 }
 
+.sidebar > .navigation-bar {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    align-content: center;
+}
+
 .sidebar > .panel {
     position: absolute;
     top: 0;
@@ -56,6 +64,10 @@
     z-index: 0; /* Workaround so that scroll bars appear above position:sticky section headers. */
 }
 
+.sidebar.has-navigation-bar > .panel {
+    top: 29px;
+}
+
 .sidebar > .panel.selected {
     display: block;
 }

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js (183336 => 183337)


--- trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js	2015-04-26 01:23:48 UTC (rev 183336)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/Sidebar.js	2015-04-26 01:24:40 UTC (rev 183337)
@@ -25,7 +25,7 @@
 
 WebInspector.Sidebar = class Sidebar extends WebInspector.Object
 {
-    constructor(element, side, sidebarPanels, role, label)
+    constructor(element, side, sidebarPanels, role, label, hasNavigationBar)
     {
         super();
 
@@ -39,6 +39,14 @@
         if (label)
             this._element.setAttribute("aria-label", label);
 
+        if (hasNavigationBar) {
+            this._element.classList.add("has-navigation-bar");
+
+            this._navigationBar = new WebInspector.NavigationBar(null, null, "tablist");
+            this._navigationBar.addEventListener(WebInspector.NavigationBar.Event.NavigationItemSelected, this._navigationItemSelected, this);
+            this._element.appendChild(this._navigationBar.element);
+        }
+
         this._resizer = new WebInspector.Resizer(WebInspector.Resizer.RuleOrientation.Vertical, this);
         this._element.insertBefore(this._resizer.element, this._element.firstChild);
 
@@ -67,6 +75,11 @@
         this._sidebarPanels.push(sidebarPanel);
         this._element.appendChild(sidebarPanel.element);
 
+        if (this._navigationBar) {
+            console.assert(sidebarPanel.navigationItem);
+            this._navigationBar.addNavigationItem(sidebarPanel.navigationItem);
+        }
+
         sidebarPanel.added();
 
         return sidebarPanel;
@@ -90,6 +103,11 @@
         this._sidebarPanels.remove(sidebarPanel);
         this._element.removeChild(sidebarPanel.element);
 
+        if (this._navigationBar) {
+            console.assert(sidebarPanel.navigationItem);
+            this._navigationBar.removeNavigationItem(sidebarPanel.navigationItem);
+        }
+
         sidebarPanel.removed();
 
         return sidebarPanel;
@@ -119,6 +137,9 @@
 
         this._selectedSidebarPanel = sidebarPanel || null;
 
+        if (this._navigationBar)
+            this._navigationBar.selectedNavigationItem = sidebarPanel ? sidebarPanel.navigationItem : null;
+
         if (this._selectedSidebarPanel) {
             this._selectedSidebarPanel.selected = true;
 
@@ -133,6 +154,8 @@
 
     get minimumWidth()
     {
+        if (this._navigationBar)
+            return Math.max(WebInspector.Sidebar.AbsoluteMinimumWidth, this._navigationBar.minimumWidth);
         return WebInspector.Sidebar.AbsoluteMinimumWidth;
     }
 
@@ -157,6 +180,9 @@
 
         this._element.style.width = newWidth + "px";
 
+        if (!this.collapsed && this._navigationBar)
+            this._navigationBar.updateLayout();
+
         if (!this.collapsed && this._selectedSidebarPanel)
             this._selectedSidebarPanel.widthDidChange();
 
@@ -175,9 +201,13 @@
 
         if (flag)
             this._element.classList.add(WebInspector.Sidebar.CollapsedStyleClassName);
-        else
+        else {
             this._element.classList.remove(WebInspector.Sidebar.CollapsedStyleClassName);
 
+            if (this._navigationBar)
+                this._navigationBar.updateLayout();
+        }
+
         if (this._selectedSidebarPanel) {
             if (this._selectedSidebarPanel.visible)
                 this._selectedSidebarPanel.shown();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to