diff options
Diffstat (limited to 'frames_tray.py')
-rw-r--r-- | frames_tray.py | 22 |
1 files changed, 7 insertions, 15 deletions
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) |