Skip to content

Commit

Permalink
[ui] Display icon for nodes with 3D outputs
Browse files Browse the repository at this point in the history
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).
  • Loading branch information
cbentejac committed Jun 13, 2023
1 parent 0c22bbb commit b5638fe
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 12 deletions.
13 changes: 10 additions & 3 deletions meshroom/ui/qml/GraphEditor/Node.qml
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,8 @@ Item {

MaterialLabel {
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
padding: 2
font.pointSize: 7
Expand All @@ -317,8 +318,14 @@ Item {
id: nodeImageOutputTooltip
parent: header
visible: nodeImageOutputMA.containsMouse && nodeImageOutput.visible
text: "This node has at least one output that can be loaded in the 2D Viewer.\n" +
"Double-clicking on this node will load it in the 2D Viewer."
text: {
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
delay: 300

Expand Down
10 changes: 1 addition & 9 deletions meshroom/ui/qml/Viewer/Viewer2D.qml
Original file line number Diff line number Diff line change
Expand Up @@ -181,15 +181,7 @@ FocusScope {
}

// node must have at least one output attribute with the image semantic
var hasImageOutputAttr = false;
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) {
if (!node.hasImageOutput) {
return false;
}

Expand Down

0 comments on commit b5638fe

Please sign in to comment.