def movable_items(self): """Filter selection Filter items of selection that cannot be moved (i.e. are not instances of `Item`) and return the rest. """ view = self.view if self._move_name_v: yield InMotion(self._item, view) else: selected_items = set(view.selected_items) for item in selected_items: if not isinstance(item, Item): continue yield InMotion(item, view)
def movable_items(self): """ Filter the items that should eventually be moved. Returns InMotion aspects for the items. """ view = self.view get_ancestors = view.canvas.get_ancestors selected_items = set(view.selected_items) for item in selected_items: # Do not move subitems of selected items if not set(get_ancestors(item)).intersection(selected_items): yield InMotion(item, view)