Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Francis <francis@sugarlabs.org>2012-05-27 23:28:23 (GMT)
committer Daniel Francis <francis@sugarlabs.org>2012-05-27 23:28:23 (GMT)
commitd0a428cbf055feaddcd8473a712f295835220785 (patch)
tree0d0b65ee40fde855c357392e8f9b0fc1b038613f
parent32265a359884eb2354538bec39cd9f361cd8a931 (diff)
Remove frame function
-rw-r--r--TODO4
-rw-r--r--activity.py9
-rw-r--r--animation.py12
-rw-r--r--frames_list.py9
4 files changed, 31 insertions, 3 deletions
diff --git a/TODO b/TODO
index fb3e07f..f288b6f 100644
--- a/TODO
+++ b/TODO
@@ -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))