def ungroup(self, parent, item): """ Remove item from a parent. """ adapter = Group(parent, item) adapter.ungroup() self.diagram.canvas.reparent(item, None)
def stop_move(self): """Motion stops: drop!""" super().stop_move() item = self.item view = self.view canvas = view.canvas old_parent = view.canvas.get_parent(item) new_parent = view.dropzone_item try: if new_parent is old_parent: if old_parent is not None: old_parent.request_update(matrix=False) return if old_parent: canvas.reparent(item, None) adapter = Group(old_parent, item) if adapter: adapter.ungroup() old_parent.request_update() if new_parent: canvas.reparent(item, new_parent) adapter = Group(new_parent, item) if adapter and adapter.can_contain(): adapter.group() new_parent.request_update() finally: view.dropzone_item = None
def stop_move(self, pos): """Motion stops: drop!""" super().stop_move(pos) item = self.item view = self.view old_parent = item.parent new_parent = view.selection.dropzone_item try: if new_parent is old_parent: if old_parent is not None: old_parent.request_update(matrix=False) return if old_parent: item.parent = None adapter = Group(old_parent, item) if adapter: adapter.ungroup() old_parent.request_update() if new_parent: item.parent = new_parent adapter = Group(new_parent, item) if adapter and adapter.can_contain(): adapter.group() new_parent.request_update() finally: view.selection.dropzone_item = None
def stop_move(self): """ Motion stops: drop! """ super(DropZoneInMotion, self).stop_move() item = self.item view = self.view canvas = view.canvas old_parent = view.canvas.get_parent(item) new_parent = view.dropzone_item try: if new_parent is old_parent: if old_parent is not None: old_parent.request_update(matrix=False) return if old_parent: adapter = Group(old_parent, item) if adapter: adapter.ungroup() canvas.reparent(item, None) m = canvas.get_matrix_i2c(old_parent) item.matrix *= m old_parent.request_update() if new_parent: adapter = Group(new_parent, item) if adapter and adapter.can_contain(): adapter.group() canvas.reparent(item, new_parent) m = canvas.get_matrix_c2i(new_parent) item.matrix *= m new_parent.request_update() finally: view.dropzone_item = None view.get_window().set_cursor(None)
def ungroup(self, parent, item): """Remove item from a parent.""" adapter = Group(parent, item) adapter.ungroup() item.parent = None