← Back to team overview

usb-creator-hackers team mailing list archive

[Merge] lp:~yuningdodo/usb-creator/usb-creator.lp978691v2-select-readded-source into lp:usb-creator

 

Yu Ning has proposed merging lp:~yuningdodo/usb-creator/usb-creator.lp978691v2-select-readded-source into lp:usb-creator.

Requested reviews:
  Mathieu Trudel-Lapierre (mathieu-tl)
  usb-creator hackers (usb-creator-hackers)
Related bugs:
  Bug #978691 in usb-creator (Ubuntu): "usb-creator ignores selected source disk image"
  https://bugs.launchpad.net/ubuntu/+source/usb-creator/+bug/978691

For more details, see:
https://code.launchpad.net/~yuningdodo/usb-creator/usb-creator.lp978691v2-select-readded-source/+merge/252082

For gtk frontend. If a source is re-added we should select it; always scroll to the selected source.

The scrolling doesn't work with unity, however it works find with openbox.
-- 
Your team usb-creator hackers is requested to review the proposed merge of lp:~yuningdodo/usb-creator/usb-creator.lp978691v2-select-readded-source into lp:usb-creator.
=== modified file 'usbcreator/frontends/gtk/frontend.py'
--- usbcreator/frontends/gtk/frontend.py	2014-07-25 11:40:08 +0000
+++ usbcreator/frontends/gtk/frontend.py	2015-03-06 11:06:40 +0000
@@ -633,6 +633,16 @@
         if response == Gtk.ResponseType.OK:
             filename = chooser.get_filename()
             chooser.destroy()
+            treeview = self.source_treeview
+            model = treeview.get_model()
+            iterator = model.get_iter_first()
+            while iterator is not None:
+                if model.get_value(iterator, 0) == filename:
+                    path = model.get_path(iterator)
+                    treeview.set_cursor(path, None, False)
+                    treeview.scroll_to_cell(path)
+                    return
+                iterator = model.iter_next(iterator)
             self.backend.add_image(filename)
         elif response == Gtk.ResponseType.CANCEL:
             chooser.destroy()
@@ -815,5 +825,6 @@
     new_iter = model.append(new_row)
     if force_selection or (treeview.get_selection().get_selected()[1] is None):
         treeview.set_cursor(model.get_path(new_iter), None, False)
+        treeview.scroll_to_cell(model.get_path(new_iter))
 
 # vim: set ai et sts=4 tabstop=4 sw=4: