[ui] Display icon for nodes with 3D outputs

The tooltip that is displayed when hovering over the icon specifies
which loader will be used, depending on the type of output attribute
(either the Image/2D viewer, or the 3D viewer).
This commit is contained in:
Candice Bentéjac 2023-06-13 12:05:50 +02:00
parent 0c22bbb097
commit b5638fe034
2 changed files with 11 additions and 12 deletions

View file

@ -308,7 +308,8 @@ Item {
MaterialLabel { MaterialLabel {
id: nodeImageOutput id: nodeImageOutput
visible: node.hasImageOutput && ["SUCCESS"].includes(node.globalStatus) && node.chunks.count > 0 visible: (node.hasImageOutput || node.has3DOutput)
&& ["SUCCESS"].includes(node.globalStatus) && node.chunks.count > 0
text: MaterialIcons.visibility text: MaterialIcons.visibility
padding: 2 padding: 2
font.pointSize: 7 font.pointSize: 7
@ -317,8 +318,14 @@ Item {
id: nodeImageOutputTooltip id: nodeImageOutputTooltip
parent: header parent: header
visible: nodeImageOutputMA.containsMouse && nodeImageOutput.visible visible: nodeImageOutputMA.containsMouse && nodeImageOutput.visible
text: "This node has at least one output that can be loaded in the 2D Viewer.\n" + text: {
"Double-clicking on this node will load it in the 2D Viewer." if (node.hasImageOutput && !node.has3DOutput)
return "Double-click on this node to load its outputs in the Image Viewer."
else if (node.has3DOutput && !node.hasImageOutput)
return "Double-click on this node to load its outputs in the 3D Viewer."
else // Handle case where a node might have both 2D and 3D outputs
return "Double-click on this node to load its outputs in the Image or 3D Viewer."
}
implicitWidth: 500 implicitWidth: 500
delay: 300 delay: 300

View file

@ -181,15 +181,7 @@ FocusScope {
} }
// node must have at least one output attribute with the image semantic // node must have at least one output attribute with the image semantic
var hasImageOutputAttr = false; if (!node.hasImageOutput) {
for (var i = 0; i < node.attributes.count; i++) {
var attr = node.attributes.at(i);
if (attr.isOutput && attr.desc.semantic === "image" && attr.enabled) {
hasImageOutputAttr = true;
break;
}
}
if (!hasImageOutputAttr) {
return false; return false;
} }