mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-30 17:36:33 +02:00
[ui] Add an icon and tooltip on a node's header if it has a comment
If the "Comments" internal attribute is filled, add a corresponding icon in the node's header, as well as a tooltip that contains the comment.
This commit is contained in:
parent
b645db99f7
commit
1015ea448a
2 changed files with 36 additions and 0 deletions
|
@ -541,6 +541,15 @@ class BaseNode(BaseObject):
|
||||||
return self.internalAttribute("color").value.strip()
|
return self.internalAttribute("color").value.strip()
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
def getComment(self):
|
||||||
|
"""
|
||||||
|
Returns:
|
||||||
|
str: the comments on the node if they exist, empty string otherwise
|
||||||
|
"""
|
||||||
|
if self.hasInternalAttribute("comment"):
|
||||||
|
return self.internalAttribute("comment").value
|
||||||
|
return ""
|
||||||
|
|
||||||
@Slot(str, result=str)
|
@Slot(str, result=str)
|
||||||
def nameToLabel(self, name):
|
def nameToLabel(self, name):
|
||||||
"""
|
"""
|
||||||
|
@ -1104,6 +1113,7 @@ class BaseNode(BaseObject):
|
||||||
name = Property(str, getName, constant=True)
|
name = Property(str, getName, constant=True)
|
||||||
label = Property(str, getLabel, constant=True)
|
label = Property(str, getLabel, constant=True)
|
||||||
color = Property(str, getColor, constant=True)
|
color = Property(str, getColor, constant=True)
|
||||||
|
comment = Property(str, getComment, constant=True)
|
||||||
nodeType = Property(str, nodeType.fget, constant=True)
|
nodeType = Property(str, nodeType.fget, constant=True)
|
||||||
documentation = Property(str, getDocumentation, constant=True)
|
documentation = Property(str, getDocumentation, constant=True)
|
||||||
positionChanged = Signal()
|
positionChanged = Signal()
|
||||||
|
|
|
@ -75,6 +75,8 @@ Item {
|
||||||
onInternalAttributesChanged: {
|
onInternalAttributesChanged: {
|
||||||
nodeLabel.text = node ? node.label : ""
|
nodeLabel.text = node ? node.label : ""
|
||||||
background.color = (node.color === "" ? Qt.lighter(activePalette.base, 1.4) : node.color)
|
background.color = (node.color === "" ? Qt.lighter(activePalette.base, 1.4) : node.color)
|
||||||
|
nodeCommentTooltip.text = node ? node.comment : ""
|
||||||
|
nodeComment.visible = node.comment != ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -258,6 +260,30 @@ Item {
|
||||||
palette.text: "red"
|
palette.text: "red"
|
||||||
ToolTip.text: "Locked"
|
ToolTip.text: "Locked"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MaterialLabel {
|
||||||
|
id: nodeComment
|
||||||
|
visible: node.comment != ""
|
||||||
|
text: MaterialIcons.comment
|
||||||
|
padding: 2
|
||||||
|
font.pointSize: 7
|
||||||
|
|
||||||
|
ToolTip {
|
||||||
|
id: nodeCommentTooltip
|
||||||
|
parent: header
|
||||||
|
visible: nodeCommentMA.containsMouse && nodeComment.visible
|
||||||
|
text: node.comment
|
||||||
|
implicitWidth: 400 // Forces word-wrap for long comments but the tooltip will be bigger than needed for short comments
|
||||||
|
delay: 300
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
// If the node header is hovered, comments may be displayed
|
||||||
|
id: nodeCommentMA
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue