mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-05-31 09:56:32 +02:00
[ui] UIGraph: add hoveredNode property + node hovering visual feedback
* keep track of currently hovered node in UIGraph on Python side * Node: show border on hover + make MouseArea contain everything else to always get hover events, even when cursor is over children attribute pins
This commit is contained in:
parent
5b991053a8
commit
05854ed897
3 changed files with 124 additions and 104 deletions
|
@ -202,6 +202,7 @@ class UIGraph(QObject):
|
|||
self._sortedDFSChunks = QObjectListModel(parent=self)
|
||||
self._layout = GraphLayout(self)
|
||||
self._selectedNode = None
|
||||
self._hoveredNode = None
|
||||
if filepath:
|
||||
self.load(filepath)
|
||||
|
||||
|
@ -236,6 +237,7 @@ class UIGraph(QObject):
|
|||
|
||||
def clear(self):
|
||||
if self._graph:
|
||||
self.clearNodeHover()
|
||||
self.clearNodeSelection()
|
||||
self._graph.deleteLater()
|
||||
self._graph = None
|
||||
|
@ -472,6 +474,10 @@ class UIGraph(QObject):
|
|||
""" Clear node selection. """
|
||||
self.selectedNode = None
|
||||
|
||||
def clearNodeHover(self):
|
||||
""" Reset currently hovered node to None. """
|
||||
self.hoveredNode = None
|
||||
|
||||
undoStack = Property(QObject, lambda self: self._undoStack, constant=True)
|
||||
graphChanged = Signal()
|
||||
graph = Property(Graph, lambda self: self._graph, notify=graphChanged)
|
||||
|
@ -490,3 +496,7 @@ class UIGraph(QObject):
|
|||
selectedNodeChanged = Signal()
|
||||
# Currently selected node
|
||||
selectedNode = makeProperty(QObject, "_selectedNode", selectedNodeChanged, clearNodeSelection)
|
||||
|
||||
hoveredNodeChanged = Signal()
|
||||
# Currently hovered node
|
||||
hoveredNode = makeProperty(QObject, "_hoveredNode", hoveredNodeChanged, clearNodeHover)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue