diff options
Diffstat (limited to 'cura/Operations/SetParentOperation.py')
-rw-r--r-- | cura/Operations/SetParentOperation.py | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/cura/Operations/SetParentOperation.py b/cura/Operations/SetParentOperation.py index 7d71572a93..a8fab49395 100644 --- a/cura/Operations/SetParentOperation.py +++ b/cura/Operations/SetParentOperation.py @@ -5,33 +5,38 @@ from typing import Optional from UM.Scene.SceneNode import SceneNode from UM.Operations import Operation -from UM.Math.Vector import Vector - -## An operation that parents a scene node to another scene node. class SetParentOperation(Operation.Operation): - ## Initialises this SetParentOperation. - # - # \param node The node which will be reparented. - # \param parent_node The node which will be the parent. + """An operation that parents a scene node to another scene node.""" + def __init__(self, node: SceneNode, parent_node: Optional[SceneNode]) -> None: + """Initialises this SetParentOperation. + + :param node: The node which will be reparented. + :param parent_node: The node which will be the parent. + """ + super().__init__() self._node = node self._parent = parent_node self._old_parent = node.getParent() # To restore the previous parent in case of an undo. - ## Undoes the set-parent operation, restoring the old parent. def undo(self) -> None: + """Undoes the set-parent operation, restoring the old parent.""" + self._set_parent(self._old_parent) - ## Re-applies the set-parent operation. def redo(self) -> None: + """Re-applies the set-parent operation.""" + self._set_parent(self._parent) - ## Sets the parent of the node while applying transformations to the world-transform of the node stays the same. - # - # \param new_parent The new parent. Note: this argument can be None, which would hide the node from the scene. def _set_parent(self, new_parent: Optional[SceneNode]) -> None: + """Sets the parent of the node while applying transformations to the world-transform of the node stays the same. + + :param new_parent: The new parent. Note: this argument can be None, which would hide the node from the scene. + """ + if new_parent: current_parent = self._node.getParent() if current_parent: @@ -57,8 +62,10 @@ class SetParentOperation(Operation.Operation): self._node.setParent(new_parent) - ## Returns a programmer-readable representation of this operation. - # - # \return A programmer-readable representation of this operation. def __repr__(self) -> str: + """Returns a programmer-readable representation of this operation. + + :return: A programmer-readable representation of this operation. + """ + return "SetParentOperation(node = {0}, parent_node={1})".format(self._node, self._parent) |