Ejemplo n.º 1
0
        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()
Ejemplo n.º 3
0
    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()
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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()
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
    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()