[core] Node: add alive property for QML

This commit is contained in:
Julien-Haudegond 2020-08-17 11:39:22 +02:00
parent b79795a3c9
commit fe91d07a6a
2 changed files with 19 additions and 1 deletions

View file

@ -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):