diff options
author | Daniel Francis <francis@sugarlabs.org> | 2012-05-27 23:28:23 (GMT) |
---|---|---|
committer | Daniel Francis <francis@sugarlabs.org> | 2012-05-27 23:28:23 (GMT) |
commit | d0a428cbf055feaddcd8473a712f295835220785 (patch) | |
tree | 0d0b65ee40fde855c357392e8f9b0fc1b038613f | |
parent | 32265a359884eb2354538bec39cd9f361cd8a931 (diff) |
Remove frame function
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | activity.py | 9 | ||||
-rw-r--r-- | animation.py | 12 | ||||
-rw-r--r-- | frames_list.py | 9 |
4 files changed, 31 insertions, 3 deletions
@@ -1,8 +1,8 @@ New functions: - Save data in journal - Select time between frames - - Remove selected frame. + - Select the frames when the activitie loads them. Fixes: - Void. + - Enable drag and drop between frames. Bugs: Void. diff --git a/activity.py b/activity.py index 8c0108e..06c6bfa 100644 --- a/activity.py +++ b/activity.py @@ -62,6 +62,11 @@ class AnimateActivity(activity.Activity): add_image.connect('clicked', self._add_frame) toolbarbox.toolbar.insert(add_image, -1) + remove_frame = ToolButton('list-remove') + remove_frame.set_tooltip(_('Remove the selected frame')) + remove_frame.connect('clicked', self._remove_frame) + toolbarbox.toolbar.insert(remove_frame, -1) + separator = gtk.SeparatorToolItem() separator.set_expand(False) separator.set_draw(True) @@ -137,6 +142,10 @@ class AnimateActivity(activity.Activity): self.show() + def _remove_frame(self, widget): + self._frames_list.remove_selected_frame() + self._animation.remove_current_frame() + def _add_frame(self, widget): chooser = ObjectChooser(parent=self, what_filter=mime.GENERIC_TYPE_IMAGE) diff --git a/animation.py b/animation.py index 3568a6e..837aeaa 100644 --- a/animation.py +++ b/animation.py @@ -47,6 +47,16 @@ class Animation(gtk.Image): self._size = width, height self._sleep_time = int(sleep_time * 1000) + def remove_current_frame(self): + del(self.images[self._current_image]) + if len(self.images): + self.set_pos(self._current_image + if len(self.images) >= self._current_image + else len(self.images)) + else: + self.set_from_pixbuf(None) + self._current_image = 0 + def set_return(self, _return=True): """Defines if when get to the last image, should return to the first""" @@ -133,4 +143,4 @@ class Animation(gtk.Image): elif self._current_image == 0 and self._return: self._current_image = -1 - self.set_pos(self._current_image) + self.emit("current-frame-updated", self._current_image) diff --git a/frames_list.py b/frames_list.py index 46d87fe..3286e3d 100644 --- a/frames_list.py +++ b/frames_list.py @@ -48,6 +48,15 @@ class FramesList(gtk.ScrolledWindow): self.add(self.treeview) self.frames = 0 + def remove_selected_frame(self): + model, _iter = self.selection.get_selected() + model.remove(_iter) + count = 1 + for i in self.store: + i[0] = count + count += 1 + self.frames = count - 1 + def _select_frame(self, widget, index): self.selection.select_iter(self.store.get_iter(index)) |