Changeset 249513 in webkit
- Timestamp:
- Sep 4, 2019 7:15:48 PM (5 years ago)
- Location:
- trunk/Source/WebInspectorUI
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebInspectorUI/ChangeLog
r249504 r249513 1 2019-09-04 Devin Rousso <drousso@apple.com> 2 3 Web Inspector: unify the interaction of show/hide status icons in Sources and Canvas 4 https://bugs.webkit.org/show_bug.cgi?id=201470 5 6 Reviewed by Joseph Pecoraro. 7 8 Rather than "fading" the tree element's text when the underlying represented object is 9 disabled/blackboxed, we should just "fade" the icon. The "fade" shouldn't change when the 10 tree element is selected. The image of the status eye also shouldn't change depending on 11 whether the underlying represented object is disabled/blackboxed, as it being visible (even 12 if it's "faded") is already enough of an indicator. 13 14 It should also be possible to toggle the disabled/blackboxed state via the context menu. 15 16 * UserInterface/Views/ContextMenuUtilities.js: 17 (WI.appendContextMenuItemsForSourceCode): 18 * UserInterface/Views/SourceCodeTreeElement.css: 19 (.tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackboxed, .tree-outline .item:not(:hover) .status > .toggle-script-blackboxed:not(.blackboxed)): Added. 20 (.tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackboxed, .tree-outline .item:not(:hover, .selected) .status > .toggle-script-blackboxed:not(.blackboxed)): Deleted. 21 22 * UserInterface/Models/ShaderProgram.js: 23 (WI.ShaderProgram): 24 (WI.ShaderProgram.prototype.get disabled): Added. 25 (WI.ShaderProgram.prototype.set disabled): Added. 26 (WI.ShaderProgram.prototype.toggleDisabled): Deleted. 27 * UserInterface/Views/ShaderProgramTreeElement.js: 28 (WI.ShaderProgramTreeElement.prototype.onattach): 29 (WI.ShaderProgramTreeElement.prototype.ondetach): Added. 30 (WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown): 31 (WI.ShaderProgramTreeElement.prototype.populateContextMenu): Added. 32 (WI.ShaderProgramTreeElement.prototype._disabledImageElementClicked): 33 (WI.ShaderProgramTreeElement.prototype._handleShaderProgramDisabledChanged): Added. 34 * UserInterface/Views/ShaderProgramTreeElement.css: 35 (.tree-outline .item.shader-program .status > img): Added. 36 (.tree-outline .item.shader-program:not(:hover, .selected, .disabled) .status > img): Added. 37 (.tree-outline .item.shader-program.disabled .status > img): Added. 38 (@media (prefers-color-scheme: dark) .tree-outline .item.shader-program .status > img): Added. 39 (.item.shader-program .status > img): Deleted. 40 (.item.shader-program.disabled:hover .status > img): Deleted. 41 (.item.shader-program:not(:hover, .selected, .disabled) .status > img): Deleted. 42 (.item.shader-program.disabled > :not(.status)): Deleted. 43 (@media (prefers-color-scheme: dark) .item.shader-program .status > img): Deleted. 44 1 45 2019-09-04 Joseph Pecoraro <pecoraro@apple.com> 2 46 -
trunk/Source/WebInspectorUI/UserInterface/Models/ShaderProgram.js
r230127 r249513 24 24 */ 25 25 26 WI.ShaderProgram = class ShaderProgram 26 WI.ShaderProgram = class ShaderProgram extends WI.Object 27 27 { 28 28 constructor(identifier, canvas) … … 30 30 console.assert(identifier); 31 31 console.assert(canvas instanceof WI.Canvas); 32 33 super(); 32 34 33 35 this._identifier = identifier; … … 41 43 get identifier() { return this._identifier; } 42 44 get canvas() { return this._canvas; } 43 get disabled() { return this._disabled; }44 45 45 46 get displayName() 46 47 { 47 48 return WI.UIString("Program %d").format(this._uniqueDisplayNumber); 49 } 50 51 get disabled() 52 { 53 return this._disabled; 54 } 55 56 set disabled(disabled) 57 { 58 if (this._disabled === disabled) 59 return; 60 61 this._disabled = disabled; 62 63 CanvasAgent.setShaderProgramDisabled(this._identifier, disabled); 64 65 this.dispatchEventToListeners(ShaderProgram.Event.DisabledChanged); 48 66 } 49 67 … … 66 84 { 67 85 this._updateShader(CanvasAgent.ShaderType.Fragment, source); 68 }69 70 toggleDisabled(callback)71 {72 CanvasAgent.setShaderProgramDisabled(this._identifier, !this._disabled, (error) => {73 console.assert(!error, error);74 if (error)75 return;76 77 this._disabled = !this._disabled;78 callback();79 });80 86 } 81 87 … … 122 128 Vertex: "shader-type-vertex", 123 129 }; 130 131 WI.ShaderProgram.Event = { 132 DisabledChanged: "shader-program-disabled-changed", 133 }; -
trunk/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js
r249504 r249513 85 85 contextMenu.appendSeparator(); 86 86 87 if (sourceCode.supportsScriptBlackboxing) { 88 let isBlackboxed = WI.debuggerManager.isScriptBlackboxed(sourceCode); 89 contextMenu.appendItem(isBlackboxed ? WI.UIString("Include script when debugging") : WI.UIString("Ignore script when debugging"), () => { 90 WI.debuggerManager.setShouldBlackboxScript(sourceCode, !isBlackboxed); 91 }); 92 } 93 94 contextMenu.appendSeparator(); 95 87 96 WI.appendContextMenuItemsForURL(contextMenu, sourceCode.url, {sourceCode, location}); 88 97 -
trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramTreeElement.css
r248782 r249513 24 24 */ 25 25 26 .item.shader-program .status > img {26 .tree-outline .item.shader-program .status > img { 27 27 width: 18px; 28 28 margin-top: 2px; … … 30 30 } 31 31 32 .item.shader-program.disabled:hover .status > img { 33 content: url(../Images/Show.svg); 34 } 35 36 .item.shader-program:not(:hover, .selected, .disabled) .status > img { 32 .tree-outline .item.shader-program:not(:hover, .selected, .disabled) .status > img { 37 33 display: none; 38 34 } … … 42 38 } 43 39 44 . item.shader-program.disabled > :not(.status){40 .tree-outline .item.shader-program.disabled .status > img { 45 41 opacity: 0.5; 46 42 } 47 43 48 44 @media (prefers-color-scheme: dark) { 49 . item.shader-program .status > img {45 .tree-outline .item.shader-program .status > img { 50 46 filter: invert(); 51 47 } -
trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramTreeElement.js
r238599 r249513 45 45 super.onattach(); 46 46 47 this.representedObject.addEventListener(WI.ShaderProgram.Event.DisabledChanged, this._handleShaderProgramDisabledChanged, this); 48 47 49 this.element.addEventListener("mouseover", this._handleMouseOver.bind(this)); 48 50 this.element.addEventListener("mouseout", this._handleMouseOut.bind(this)); 49 51 } 50 52 53 ondetach() 54 { 55 this.representedObject.removeEventListener(WI.ShaderProgram.Event.DisabledChanged, this._handleShaderProgramDisabledChanged, this); 56 57 super.ondetach(); 58 } 59 51 60 canSelectOnMouseDown(event) 52 61 { 53 return !this._statusElement.contains(event.target); 62 if (this._disabledImageElement.contains(event.target)) 63 return false; 64 return super.canSelectOnMouseDown(event); 65 } 66 67 populateContextMenu(contextMenu, event) 68 { 69 let disabled = this.representedObject.disabled; 70 contextMenu.appendItem(disabled ? WI.UIString("Enable Program") : WI.UIString("Disable Program"), () => { 71 this.representedObject.disabled = !disabled; 72 }); 73 74 contextMenu.appendSeparator(); 75 76 super.populateContextMenu(contextMenu, event); 54 77 } 55 78 … … 58 81 _disabledImageElementClicked(event) 59 82 { 60 this.representedObject.toggleDisabled(() => { 61 this._listItemNode.classList.toggle("disabled", !!this.representedObject.disabled); 62 this._disabledImageElement.title = this.representedObject.disabled ? WI.UIString("Enable Program") : WI.UIString("Disable Program"); 63 }); 83 this.representedObject.disabled = !this.representedObject.disabled; 84 } 85 86 _handleShaderProgramDisabledChanged(event) 87 { 88 this._listItemNode.classList.toggle("disabled", !!this.representedObject.disabled); 89 this._disabledImageElement.title = this.representedObject.disabled ? WI.UIString("Enable Program") : WI.UIString("Disable Program"); 64 90 } 65 91 -
trunk/Source/WebInspectorUI/UserInterface/Views/SourceCodeTreeElement.css
r249450 r249513 31 31 32 32 .tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackboxed, 33 .tree-outline .item:not(:hover , .selected) .status > .toggle-script-blackboxed:not(.blackboxed) {33 .tree-outline .item:not(:hover) .status > .toggle-script-blackboxed:not(.blackboxed) { 34 34 display: none; 35 35 }
Note: See TracChangeset
for help on using the changeset viewer.