mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-02 02:42:05 +02:00
[core] Node: add alive property for QML
This commit is contained in:
parent
b79795a3c9
commit
fe91d07a6a
2 changed files with 19 additions and 1 deletions
|
@ -223,8 +223,11 @@ class Graph(BaseObject):
|
|||
def clear(self):
|
||||
self.header.clear()
|
||||
self._compatibilityNodes.clear()
|
||||
self._nodes.clear()
|
||||
self._edges.clear()
|
||||
# Tell QML nodes are going to be deleted
|
||||
for node in self._nodes:
|
||||
node.alive = False
|
||||
self._nodes.clear()
|
||||
|
||||
@property
|
||||
def fileFeatures(self):
|
||||
|
@ -437,6 +440,7 @@ class Graph(BaseObject):
|
|||
self.removeEdge(edge.dst)
|
||||
inEdges[edge.dst.getFullName()] = edge.src.getFullName()
|
||||
|
||||
node.alive = False
|
||||
self._nodes.remove(node)
|
||||
self.update()
|
||||
|
||||
|
|
|
@ -442,6 +442,7 @@ class BaseNode(BaseObject):
|
|||
self._position = position or Position()
|
||||
self._attributes = DictModel(keyAttrName='name', parent=self)
|
||||
self.attributesPerUid = defaultdict(set)
|
||||
self._alive = True # for QML side to know if the node can be used or is going to be deleted
|
||||
|
||||
def __getattr__(self, k):
|
||||
try:
|
||||
|
@ -526,6 +527,17 @@ class BaseNode(BaseObject):
|
|||
self._position = value
|
||||
self.positionChanged.emit()
|
||||
|
||||
@property
|
||||
def alive(self):
|
||||
return self._alive
|
||||
|
||||
@alive.setter
|
||||
def alive(self, value):
|
||||
if self._alive == value:
|
||||
return
|
||||
self._alive = value
|
||||
self.aliveChanged.emit()
|
||||
|
||||
@property
|
||||
def depth(self):
|
||||
return self.graph.getDepth(self)
|
||||
|
@ -792,6 +804,8 @@ class BaseNode(BaseObject):
|
|||
globalStatusChanged = Signal()
|
||||
globalStatus = Property(str, lambda self: self.getGlobalStatus().name, notify=globalStatusChanged)
|
||||
isComputed = Property(bool, _isComputed, notify=globalStatusChanged)
|
||||
aliveChanged = Signal()
|
||||
alive = Property(bool, alive.fget, alive.fset, notify=aliveChanged)
|
||||
|
||||
|
||||
class Node(BaseNode):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue