Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAgustin Zubiaga <aguz@sugarlabs.org>2012-05-29 00:07:28 (GMT)
committer Agustin Zubiaga <aguz@sugarlabs.org>2012-05-29 00:07:28 (GMT)
commitf46b80d4a8c3b581ac4a82f8d60dd8d8ffbe9e2d (patch)
treeda9f43bce8a6251c8214367b37a0499c85731ac6
parent453d8f15cfae89de2a134b7ac085a5ba030068a0 (diff)
Scroll to selected item
-rw-r--r--TODO2
-rw-r--r--frames_list.py11
2 files changed, 12 insertions, 1 deletions
diff --git a/TODO b/TODO
index 58239db..a387693 100644
--- a/TODO
+++ b/TODO
@@ -5,4 +5,4 @@ Fixes:
- Enable drag and drop between frames.
- Correct frame selection in ping pong mode
Bugs:
- - Doesn't scroll to the seleceted item
+ Void.
diff --git a/frames_list.py b/frames_list.py
index 5df5ba6..c61c673 100644
--- a/frames_list.py
+++ b/frames_list.py
@@ -25,25 +25,34 @@ import gtk
class FramesList(gtk.ScrolledWindow):
+
def __init__(self):
super(FramesList, self).__init__()
+
self._animation = None
self._animation_connected = False
+
self.set_size_request(225, -1)
self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+
self.store = gtk.ListStore(int, gtk.gdk.Pixbuf)
self.treeview = gtk.TreeView(self.store)
+
self.set_vadjustment(self.treeview.get_vadjustment())
self.selection = self.treeview.get_selection()
self.selection.connect("changed", self._selection_changed_cb)
+
column = gtk.TreeViewColumn("Frame")
self.treeview.append_column(column)
+
num_cell = gtk.CellRendererText()
preview_cell = gtk.CellRendererPixbuf()
+
column.pack_start(num_cell)
column.pack_start(preview_cell)
column.add_attribute(num_cell, 'text', 0)
column.add_attribute(preview_cell, 'pixbuf', 1)
+
self.treeview.show()
self.add(self.treeview)
self.frames = 0
@@ -65,6 +74,8 @@ class FramesList(gtk.ScrolledWindow):
def _select_frame(self, widget, index):
self.selection.select_iter(self.store.get_iter(index))
+ selected_path = self.store.get_path(self.selection.get_selected()[1])
+ self.treeview.scroll_to_cell(selected_path)
def add_frame(self, pixbuf):
self.frames += 1