Title: [237593] trunk/Source/WebInspectorUI
Revision
237593
Author
[email protected]
Date
2018-10-30 10:48:15 -0700 (Tue, 30 Oct 2018)

Log Message

Web Inspector: refactor WI.ScopeBarItem for better extensibility
https://bugs.webkit.org/show_bug.cgi?id=190986

Reviewed by Brian Burg.

Renames `withModifier` to `extendSelection` for clarity of usage, and to allow the changes
in <https://webkit.org/b/190754> (adding an option to allow `WI.ScopeBarItem`s to be
selected without deselcting any other `WI.ScopeBarItem`s) to use the same variable.

* UserInterface/Views/ScopeBarItem.js:
(WI.ScopeBarItem):
(WI.ScopeBarItem.prototype.set selected):
(WI.ScopeBarItem.prototype._handleMouseDown):
(WI.ScopeBarItem.prototype.setSelected): Deleted.

* UserInterface/Views/ScopeBar.js:
(WI.ScopeBar):
(WI.ScopeBar.prototype._populate):
(WI.ScopeBar.prototype._itemSelectionDidChange):

* UserInterface/Views/MultipleScopeBarItem.js:
(WI.MultipleScopeBarItem.prototype.set selectedScopeBarItem):

* UserInterface/Views/CanvasSidebarPanel.js:
(WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
* UserInterface/Views/LogContentView.js:
(WI.LogContentView):
* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
* UserInterface/Views/ResourceSidebarPanel.js:
(WI.ResourceSidebarPanel):
* UserInterface/Views/StorageSidebarPanel.js:
(WI.StorageSidebarPanel):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (237592 => 237593)


--- trunk/Source/WebInspectorUI/ChangeLog	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/ChangeLog	2018-10-30 17:48:15 UTC (rev 237593)
@@ -1,3 +1,39 @@
+2018-10-30  Devin Rousso  <[email protected]>
+
+        Web Inspector: refactor WI.ScopeBarItem for better extensibility
+        https://bugs.webkit.org/show_bug.cgi?id=190986
+
+        Reviewed by Brian Burg.
+
+        Renames `withModifier` to `extendSelection` for clarity of usage, and to allow the changes
+        in <https://webkit.org/b/190754> (adding an option to allow `WI.ScopeBarItem`s to be
+        selected without deselcting any other `WI.ScopeBarItem`s) to use the same variable.
+
+        * UserInterface/Views/ScopeBarItem.js:
+        (WI.ScopeBarItem):
+        (WI.ScopeBarItem.prototype.set selected):
+        (WI.ScopeBarItem.prototype._handleMouseDown):
+        (WI.ScopeBarItem.prototype.setSelected): Deleted.
+
+        * UserInterface/Views/ScopeBar.js:
+        (WI.ScopeBar):
+        (WI.ScopeBar.prototype._populate):
+        (WI.ScopeBar.prototype._itemSelectionDidChange):
+
+        * UserInterface/Views/MultipleScopeBarItem.js:
+        (WI.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
+
+        * UserInterface/Views/CanvasSidebarPanel.js:
+        (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
+        * UserInterface/Views/LogContentView.js:
+        (WI.LogContentView):
+        * UserInterface/Views/NetworkTableContentView.js:
+        (WI.NetworkTableContentView):
+        * UserInterface/Views/ResourceSidebarPanel.js:
+        (WI.ResourceSidebarPanel):
+        * UserInterface/Views/StorageSidebarPanel.js:
+        (WI.StorageSidebarPanel):
+
 2018-10-29  Nikita Vasilyev  <[email protected]>
 
         Web Inspector: Flash views with red outline on initial layout

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/CanvasSidebarPanel.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -494,10 +494,7 @@
         if (!selectedScopeBarItem) {
             selectedScopeBarItem = scopeBarItems[0];
 
-            const exclusive = true;
-            const className = null;
-            const hidden = true;
-            this._placeholderScopeBarItem = new WI.ScopeBarItem("canvas-recording-scope-bar-item-placeholder", WI.UIString("Recordings"), exclusive, className, hidden);
+            this._placeholderScopeBarItem = new WI.ScopeBarItem("canvas-recording-scope-bar-item-placeholder", WI.UIString("Recordings"), {exclusive: true, hidden: true});
             this._placeholderScopeBarItem.selected = true;
 
             scopeBarItems.unshift(this._placeholderScopeBarItem);

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -74,12 +74,12 @@
         this._checkboxsNavigationItemGroup = new WI.GroupNavigationItem([this._preserveLogNavigationItem, new WI.DividerNavigationItem]);
 
         let scopeBarItems = [
-            new WI.ScopeBarItem(WI.LogContentView.Scopes.All, WI.UIString("All"), true),
-            new WI.ScopeBarItem(WI.LogContentView.Scopes.Errors, WI.UIString("Errors"), false, "errors"),
-            new WI.ScopeBarItem(WI.LogContentView.Scopes.Warnings, WI.UIString("Warnings"), false, "warnings"),
-            new WI.ScopeBarItem(WI.LogContentView.Scopes.Logs, WI.UIString("Logs"), false, "logs"),
-            new WI.ScopeBarItem(WI.LogContentView.Scopes.Infos, WI.UIString("Infos"), false, "infos", true),
-            new WI.ScopeBarItem(WI.LogContentView.Scopes.Debugs, WI.UIString("Debugs"), false, "debugs", true),
+            new WI.ScopeBarItem(WI.LogContentView.Scopes.All, WI.UIString("All"), {exclusive: true}),
+            new WI.ScopeBarItem(WI.LogContentView.Scopes.Errors, WI.UIString("Errors"), {className: "errors"}),
+            new WI.ScopeBarItem(WI.LogContentView.Scopes.Warnings, WI.UIString("Warnings"), {className: "warnings"}),
+            new WI.ScopeBarItem(WI.LogContentView.Scopes.Logs, WI.UIString("Logs"), {className: "logs"}),
+            new WI.ScopeBarItem(WI.LogContentView.Scopes.Infos, WI.UIString("Infos"), {className: "infos", hidden: true}),
+            new WI.ScopeBarItem(WI.LogContentView.Scopes.Debugs, WI.UIString("Debugs"), {className: "debugs", hidden: true}),
         ];
 
         this._scopeBar = new WI.ScopeBar("log-scope-bar", scopeBarItems, scopeBarItems[0]);
@@ -88,9 +88,9 @@
         this._hasNonDefaultLogChannelMessage = false;
         if (WI.ConsoleManager.supportsLogChannels()) {
             let messageChannelBarItems = [
-                new WI.ScopeBarItem(WI.LogContentView.Scopes.AllChannels, WI.UIString("All"), true),
-                new WI.ScopeBarItem(WI.LogContentView.Scopes.Media, WI.UIString("Media"), false, "media"),
-                new WI.ScopeBarItem(WI.LogContentView.Scopes.WebRTC, WI.UIString("WebRTC"), false, "webrtc")
+                new WI.ScopeBarItem(WI.LogContentView.Scopes.AllChannels, WI.UIString("All"), {exclusive: true}),
+                new WI.ScopeBarItem(WI.LogContentView.Scopes.Media, WI.UIString("Media"), {className: "media"}),
+                new WI.ScopeBarItem(WI.LogContentView.Scopes.WebRTC, WI.UIString("WebRTC"), {className: "webrtc"}),
             ];
 
             this._messageSourceBar = new WI.ScopeBar("message-channel-scope-bar", messageChannelBarItems, messageChannelBarItems[0]);

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/MultipleScopeBarItem.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/MultipleScopeBarItem.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/MultipleScopeBarItem.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -137,8 +137,9 @@
             this._selectedScopeBarItem.selected = true;
         }
 
-        var withModifier = WI.modifierKeys.metaKey && !WI.modifierKeys.ctrlKey && !WI.modifierKeys.altKey && !WI.modifierKeys.shiftKey;
-        this.dispatchEventToListeners(WI.ScopeBarItem.Event.SelectionChanged, {withModifier});
+        this.dispatchEventToListeners(WI.ScopeBarItem.Event.SelectionChanged, {
+            extendSelection: WI.modifierKeys.metaKey && !WI.modifierKeys.ctrlKey && !WI.modifierKeys.altKey && !WI.modifierKeys.shiftKey,
+        });
 
         this._ignoreItemSelectedEvent = false;
     }

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -54,8 +54,7 @@
         // FIXME: Network Timeline.
         // FIXME: Throttling.
 
-        const exclusive = true;
-        this._typeFilterScopeBarItemAll = new WI.ScopeBarItem("network-type-filter-all", WI.UIString("All"), exclusive);
+        this._typeFilterScopeBarItemAll = new WI.ScopeBarItem("network-type-filter-all", WI.UIString("All"), {exclusive: true});
         let typeFilterScopeBarItems = [this._typeFilterScopeBarItemAll];
 
         let uniqueTypes = [

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ResourceSidebarPanel.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -37,7 +37,7 @@
         var scopeItemPrefix = "resource-sidebar-";
         var scopeBarItems = [];
 
-        scopeBarItems.push(new WI.ScopeBarItem(scopeItemPrefix + "type-all", WI.UIString("All Resources"), true));
+        scopeBarItems.push(new WI.ScopeBarItem(scopeItemPrefix + "type-all", WI.UIString("All Resources"), {exclusive: true}));
 
         for (var key in WI.Resource.Type) {
             var value = WI.Resource.Type[key];

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBar.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBar.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBar.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -133,10 +133,12 @@
             }
         }
 
-        if (!this.selectedItems.length && this._defaultItem)
-            this._defaultItem.selected = true;
+        if (this._defaultItem) {
+            if (!this.selectedItems.length)
+                this._defaultItem.selected = true;
 
-        this._element.classList.toggle("default-item-selected", this._defaultItem.selected);
+            this._element.classList.toggle("default-item-selected", this._defaultItem.selected);
+        }
     }
 
     _itemSelectionDidChange(event)
@@ -152,7 +154,7 @@
                     item.selected = false;
             }
         } else {
-            var replacesCurrentSelection = this._shouldGroupNonExclusiveItems || !event.data.withModifier;
+            let replacesCurrentSelection = this._shouldGroupNonExclusiveItems || !event.data.extendSelection;
             for (var i = 0; i < this._items.length; ++i) {
                 item = this._items[i];
                 if (item.exclusive && item !== sender && sender.selected)
@@ -162,11 +164,13 @@
             }
         }
 
-        // If nothing is selected anymore, select the default item.
-        if (!this.selectedItems.length && this._defaultItem)
-            this._defaultItem.selected = true;
+        if (this._defaultItem) {
+            if (!this.selectedItems.length)
+                this._defaultItem.selected = true;
 
-        this._element.classList.toggle("default-item-selected", this._defaultItem.selected);
+            this._element.classList.toggle("default-item-selected", this._defaultItem.selected);
+        }
+
         this.dispatchEventToListeners(WI.ScopeBar.Event.SelectionChanged);
     }
 };

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBarItem.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBarItem.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBarItem.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -25,7 +25,7 @@
 
 WI.ScopeBarItem = class ScopeBarItem extends WI.Object
 {
-    constructor(id, label, exclusive, className, hidden)
+    constructor(id, label, {className, exclusive, hidden} = {})
     {
         super();
 
@@ -38,7 +38,7 @@
 
         this._id = id;
         this._label = label;
-        this._exclusive = exclusive;
+        this._exclusive = !!exclusive;
         this._hidden = !!hidden;
 
         this._selectedSetting = new WI.Setting("scopebaritem-" + id, false);
@@ -76,11 +76,6 @@
 
     set selected(selected)
     {
-        this.setSelected(selected, false);
-    }
-
-    setSelected(selected, withModifier)
-    {
         if (this._selectedSetting.value === selected)
             return;
 
@@ -87,7 +82,9 @@
         this._element.classList.toggle("selected", selected);
         this._selectedSetting.value = selected;
 
-        this.dispatchEventToListeners(WI.ScopeBarItem.Event.SelectionChanged, {withModifier});
+        this.dispatchEventToListeners(WI.ScopeBarItem.Event.SelectionChanged, {
+            extendSelection: WI.modifierKeys.metaKey && !WI.modifierKeys.ctrlKey && !WI.modifierKeys.altKey && !WI.modifierKeys.shiftKey,
+        });
     }
 
     get hidden()
@@ -113,7 +110,7 @@
         if (event.button !== 0)
             return;
 
-        this.setSelected(!this.selected, event.metaKey && !event.ctrlKey && !event.altKey && !event.shiftKey);
+        this.selected = !this.selected;
     }
 };
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/StorageSidebarPanel.js (237592 => 237593)


--- trunk/Source/WebInspectorUI/UserInterface/Views/StorageSidebarPanel.js	2018-10-30 17:45:37 UTC (rev 237592)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/StorageSidebarPanel.js	2018-10-30 17:48:15 UTC (rev 237593)
@@ -35,7 +35,7 @@
         var scopeItemPrefix = "storage-sidebar-";
         var scopeBarItems = [];
 
-        scopeBarItems.push(new WI.ScopeBarItem(scopeItemPrefix + "type-all", WI.UIString("All Storage"), true));
+        scopeBarItems.push(new WI.ScopeBarItem(scopeItemPrefix + "type-all", WI.UIString("All Storage"), {exclusive: true}));
 
         var storageTypes = [
             {identifier: "application-cache", title: WI.UIString("Application Cache"), classes: [WI.ApplicationCacheFrameTreeElement, WI.ApplicationCacheManifestTreeElement]},
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to