From cb3381c3226889292bb9c371593ae2bb0a278823 Mon Sep 17 00:00:00 2001 From: Daniel Francis Date: Wed, 25 Jul 2012 00:16:08 +0000 Subject: Solved animation preview bug --- diff --git a/activity.py b/activity.py index 1939415..a76e0a0 100644 --- a/activity.py +++ b/activity.py @@ -26,6 +26,9 @@ import tempfile import zipfile import json +import logging +logger = logging.getLogger() + import gtk import gobject @@ -86,7 +89,8 @@ class AnimateActivity(activity.Activity): def _move_cb(self, widget, index, new_index): self._animation.move(index, new_index) - def _current_frame_changed_cb(self, index): + def _current_frame_changed_cb(self, widget, index): + logger.debug('%d' % index) self._animation.set_current_frame(index) def write_file(self, file_path): diff --git a/frames_tray.py b/frames_tray.py index 097e764..ac5b281 100644 --- a/frames_tray.py +++ b/frames_tray.py @@ -38,20 +38,19 @@ class FramesTray(HTray): HTray.__init__(self) self._group = None - self._frames_count = 0 self.set_size_request(-1, style.LARGE_ICON_SIZE + 10) self.show() def add_frame(self, pixbuf): - self._frames_count += 1 - item = FrameWidget(pixbuf, self._frames_count) + item = FrameWidget(pixbuf) if not self._group: self._group = item else: item.set_group(self._group) self.add_item(item) + item.connect('toggled', self._frame_selected) def get_selected_frame(self): for button in self.get_children(): @@ -69,21 +68,17 @@ class FramesTray(HTray): def select_frame(self, index): self.get_children()[index].set_active(True) - def _frame_selected(self, index): - self.emit('current-frame-changed', index) + def _frame_selected(self, widget): + if widget.get_active(): + index = self.get_children().index(widget) + self.emit('current-frame-changed', index) class FrameWidget(RadioToolButton): - __gsignals__ = {"frame-selected": (gobject.SIGNAL_RUN_LAST, - gobject.TYPE_NONE, - (gobject.TYPE_INT,))} - - def __init__(self, pixbuf, index): + def __init__(self, pixbuf): super(FrameWidget, self).__init__() - self._index = index - width = pixbuf.get_width() height = pixbuf.get_height() preview_pixbuf = pixbuf.scale_simple(style.LARGE_ICON_SIZE * @@ -95,6 +90,3 @@ class FrameWidget(RadioToolButton): image.show() self.show() - - def __frame_selected_cb(self, widget): - self.emit('frame-selected', self._index) -- cgit v0.9.1