def relative_animations_part_clear(part_name): anims = {} curr_anim = self._edit_grp.animation.name part_obj = self._edit_grp.part_get(part_name) for anim in self._edit_grp.animations: prog = self._edit_grp.program_get("@%[email protected]" % anim) if not part_name in prog.targets: continue anims[anim] = [] time = prog.name[-4:] while time != "@end": st_cls = objects_data.state_class_from_part_type_get( part_obj) st_save = st_cls(part_obj.state_get(prog.name, 0.0)) # we gotta clean editable_animation's data for curr_anim if anim != curr_anim: prog.target_del(part_name) anims[anim].append((float(time), st_save)) prog = self._edit_grp.program_get(prog.afters[0]) time = prog.name[-4:] if curr_anim: self._edit_grp.animation.part_remove(part_name) return anims
def _reset_state_to_cb(self, it, st_from): part_name = self._edit_grp.part.name curr_state = self._edit_grp.part.state.name part = self._edit_grp.part_get(part_name) st_obj = part.state_get(*curr_state) st_class = objects_data.state_class_from_part_type_get(part) state_save = st_class(st_obj) self._part_state_copy_from(part_name, st_from, curr_state) op = Operation( "state copying (%s into %s)" % (st_from[0], curr_state[0])) op.redo_callback_add( self._part_state_copy_from, part_name, st_from, curr_state) op.undo_callback_add(self._state_restore, part_name, state_save) self._operation_stack_cb(op) self.close()
def _reset_state_to_cb(self, it, st_from): part_name = self._edit_grp.part.name curr_state = self._edit_grp.part.state.name part = self._edit_grp.part_get(part_name) st_obj = part.state_get(*curr_state) st_class = objects_data.state_class_from_part_type_get(part) state_save = st_class(st_obj) self._part_state_copy_from(part_name, st_from, curr_state) op = Operation("state copying (%s into %s)" % (st_from[0], curr_state[0])) op.redo_callback_add(self._part_state_copy_from, part_name, st_from, curr_state) op.undo_callback_add(self._state_restore, part_name, state_save) self._operation_stack_cb(op) self.close()
def _remove_state_cb(self, btn, state_name): part_name = self._edit_grp.part.name part = self._edit_grp.part_get(part_name) st_obj = part.state_get(*state_name) st_class = objects_data.state_class_from_part_type_get(part) state_save = st_class(st_obj) if self._remove_state_internal(state_name): op = Operation("state deletion") op.redo_callback_add(self._remove_state_internal, state_name) op.undo_callback_add( self._state_restore, part_name, state_save, readd=True) self._operation_stack_cb(op) else: del state_save self._pop.actions_clear() self._pop.action_add("New", self._state_add_new_cb) self._pop.action_add("Close", self._cancel_clicked) self.pager.content_pop()
def _confirm_remove_cb(self, btn, part): saved_states = [] p = self._edit_grp.part_get(part) for t in self._edit_grp.animation.timestops: prog = "@%s@%.2f" % (self._edit_grp.animation.name, t) st_obj = p.state_get(prog) if not st_obj: continue st_class = objects_data.state_class_from_part_type_get(p) state_save = st_class(st_obj) saved_states.append([t, state_save]) self._part_remove(part, self._edit_grp.animation.name) self._notification_delete() op = Operation("part (%s) deletion from animation (%s)" % \ (part, self._edit_grp.animation.name)) op.redo_callback_add(self._part_remove, part, self._edit_grp.animation.name) op.undo_callback_add(self._part_add, part, self._edit_grp.animation.name, saved_states) self._operation_stack_cb(op)
def _timeremove_cb(self, obj, emission, source): t = float(source) anim_name = self.e.animation.name anim_frame = self.e.animation.state prog = "@%s@%.2f" % (anim_name, t) saved_states = [] for part_name in self.e.animation.parts: part = self.e.part_get(part_name) st_obj = part.state_get(prog) st_class = objects_data.state_class_from_part_type_get(part) state_save = st_class(st_obj) saved_states.append([part.name, state_save]) trans = self.e.animation.program.transition def agree(bt, notification): self._remove_time_point(t, anim_name, anim_frame) notification.hide() notification.delete() op = Operation("animation (%s) frame (%s) deletion" % \ (anim_name, t)) op.redo_callback_add(self._remove_time_point, t, anim_name, anim_frame) op.undo_callback_add( self._frame_readd, t, anim_name, saved_states, trans) self._operation_stack_cb(op) def disagree(bt, notification): notification.hide() notification.delete() if t in self.e.animation.timestops: notification = ErrorNotify( self._parent, orient=elementary.ELM_NOTIFY_ORIENT_CENTER) notification.title = "Do you really want to delete this " \ "animation frame?" notification.action_add("Yes", agree, None, notification) notification.action_add("No", disagree, None, notification) notification.show()
def _timeremove_cb(self, obj, emission, source): t = float(source) anim_name = self.e.animation.name anim_frame = self.e.animation.state prog = "@%s@%.2f" % (anim_name, t) saved_states = [] for part_name in self.e.animation.parts: part = self.e.part_get(part_name) st_obj = part.state_get(prog) st_class = objects_data.state_class_from_part_type_get(part) state_save = st_class(st_obj) saved_states.append([part.name, state_save]) trans = self.e.animation.program.transition def agree(bt, notification): self._remove_time_point(t, anim_name, anim_frame) notification.hide() notification.delete() op = Operation("animation (%s) frame (%s) deletion" % \ (anim_name, t)) op.redo_callback_add(self._remove_time_point, t, anim_name, anim_frame) op.undo_callback_add(self._frame_readd, t, anim_name, saved_states, trans) self._operation_stack_cb(op) def disagree(bt, notification): notification.hide() notification.delete() if t in self.e.animation.timestops: notification = ErrorNotify( self._parent, orient=elementary.ELM_NOTIFY_ORIENT_CENTER) notification.title = "Do you really want to delete this " \ "animation frame?" notification.action_add("Yes", agree, None, notification) notification.action_add("No", disagree, None, notification) notification.show()
def _confirm_remove_cb(self, btn, part): saved_states = [] p = self._edit_grp.part_get(part) for t in self._edit_grp.animation.timestops: prog = "@%s@%.2f" % (self._edit_grp.animation.name, t) st_obj = p.state_get(prog) if not st_obj: continue st_class = objects_data.state_class_from_part_type_get(p) state_save = st_class(st_obj) saved_states.append([t, state_save]) self._part_remove(part, self._edit_grp.animation.name) self._notification_delete() op = Operation("part (%s) deletion from animation (%s)" % \ (part, self._edit_grp.animation.name)) op.redo_callback_add(self._part_remove, part, self._edit_grp.animation.name) op.undo_callback_add(self._part_add, part, self._edit_grp.animation.name, saved_states) self._operation_stack_cb(op)
def _remove_state_cb(self, btn, state_name): part_name = self._edit_grp.part.name part = self._edit_grp.part_get(part_name) st_obj = part.state_get(*state_name) st_class = objects_data.state_class_from_part_type_get(part) state_save = st_class(st_obj) if self._remove_state_internal(state_name): op = Operation("state deletion") op.redo_callback_add(self._remove_state_internal, state_name) op.undo_callback_add(self._state_restore, part_name, state_save, readd=True) self._operation_stack_cb(op) else: del state_save self._pop.actions_clear() self._pop.action_add("New", self._state_add_new_cb) self._pop.action_add("Close", self._cancel_clicked) self.pager.item_pop()