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