Title: [199077] trunk/Source/WebInspectorUI
Revision
199077
Author
[email protected]
Date
2016-04-05 15:32:03 -0700 (Tue, 05 Apr 2016)

Log Message

Web Inspector: Should not allow selecting no Timelines when editing in Timeline tab
https://bugs.webkit.org/show_bug.cgi?id=156223
<rdar://problem/25552221>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._startEditingInstruments):
Register EnabledDidChange event handler for all tree elements.

(WebInspector.TimelineOverview.prototype._stopEditingInstruments):
Unregister event handler for enabled tree elements. The rest are removed
from the tree outline once editing has completed.

(WebInspector.TimelineOverview.prototype._timelineTreeElementEnabledDidChange):
Enable "Done" button if at least one timeline is enabled.

* UserInterface/Views/TimelineTreeElement.js:
Dispatch a new event, EnabledDidChange, when the checkbox state changes.

(WebInspector.TimelineTreeElement.prototype._showCheckbox):
(WebInspector.TimelineTreeElement.prototype._clickHandler):
(WebInspector.TimelineTreeElement.prototype._dispatchEnabledDidChangeEvent):
(WebInspector.TimelineTreeElement):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (199076 => 199077)


--- trunk/Source/WebInspectorUI/ChangeLog	2016-04-05 22:17:35 UTC (rev 199076)
+++ trunk/Source/WebInspectorUI/ChangeLog	2016-04-05 22:32:03 UTC (rev 199077)
@@ -1,3 +1,31 @@
+2016-04-05  Matt Baker  <[email protected]>
+
+        Web Inspector: Should not allow selecting no Timelines when editing in Timeline tab
+        https://bugs.webkit.org/show_bug.cgi?id=156223
+        <rdar://problem/25552221>
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Views/TimelineOverview.js:
+        (WebInspector.TimelineOverview):
+        (WebInspector.TimelineOverview.prototype._startEditingInstruments):
+        Register EnabledDidChange event handler for all tree elements.
+
+        (WebInspector.TimelineOverview.prototype._stopEditingInstruments):
+        Unregister event handler for enabled tree elements. The rest are removed
+        from the tree outline once editing has completed.
+
+        (WebInspector.TimelineOverview.prototype._timelineTreeElementEnabledDidChange):
+        Enable "Done" button if at least one timeline is enabled.
+
+        * UserInterface/Views/TimelineTreeElement.js:
+        Dispatch a new event, EnabledDidChange, when the checkbox state changes.
+
+        (WebInspector.TimelineTreeElement.prototype._showCheckbox):
+        (WebInspector.TimelineTreeElement.prototype._clickHandler):
+        (WebInspector.TimelineTreeElement.prototype._dispatchEnabledDidChangeEvent):
+        (WebInspector.TimelineTreeElement):
+
 2016-04-04  Joseph Pecoraro  <[email protected]>
 
         Uncaught Exception: Error: Can't make a ContentView for an unknown representedObject (ApplicationCacheManifest)

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js (199076 => 199077)


--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js	2016-04-05 22:17:35 UTC (rev 199076)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineOverview.js	2016-04-05 22:32:03 UTC (rev 199077)
@@ -876,6 +876,7 @@
             }
 
             treeElement.editing = true;
+            treeElement.addEventListener(WebInspector.TimelineTreeElement.Event.EnabledDidChange, this._timelineTreeElementEnabledDidChange, this);
         }
 
         this._editingInstrumentsDidChange();
@@ -892,6 +893,7 @@
         for (let treeElement of this._treeElementsByTypeMap.values()) {
             if (treeElement.status.checked) {
                 treeElement.editing = false;
+                treeElement.removeEventListener(WebInspector.TimelineTreeElement.Event.EnabledDidChange, this._timelineTreeElementEnabledDidChange, this);
                 continue;
             }
 
@@ -944,6 +946,16 @@
         let bTimelineIndex = this._instrumentTypes.indexOf(bTimelineType);
         return aTimelineIndex - bTimelineIndex;
     }
+
+    _timelineTreeElementEnabledDidChange(event)
+    {
+        let enabled = this._timelinesTreeOutline.children.some((treeElement) => {
+            let timelineType = treeElement.representedObject.type;
+            return this._canShowTimelineType(timelineType) && treeElement.status.checked;
+        });
+
+        this._editInstrumentsButton.enabled = enabled;
+    }
 };
 
 WebInspector.TimelineOverview.ScrollDeltaDenominator = 500;

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/TimelineTreeElement.js (199076 => 199077)


--- trunk/Source/WebInspectorUI/UserInterface/Views/TimelineTreeElement.js	2016-04-05 22:17:35 UTC (rev 199076)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/TimelineTreeElement.js	2016-04-05 22:32:03 UTC (rev 199077)
@@ -87,6 +87,8 @@
         checkboxElement.checked = !this._placeholder;
 
         let button = new WebInspector.TreeElementStatusButton(checkboxElement);
+        checkboxElement.addEventListener("change", () => { this._dispatchEnabledDidChangeEvent(); });
+
         this.status = checkboxElement;
     }
 
@@ -104,5 +106,15 @@
             return;
 
         this.status.checked = !this.status.checked;
+        this._dispatchEnabledDidChangeEvent();
     }
+
+    _dispatchEnabledDidChangeEvent()
+    {
+        this.dispatchEventToListeners(WebInspector.TimelineTreeElement.Event.EnabledDidChange);
+    }
 };
+
+WebInspector.TimelineTreeElement.Event = {
+    EnabledDidChange: "timeline-tree-element-enabled-did-change"
+};
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to