usb-creator-hackers team mailing list archive
-
usb-creator-hackers team
-
Mailing list archive
-
Message #00144
[Merge] lp:~yuningdodo/usb-creator/usb-creator.lp978691-select-readded-source into lp:usb-creator
Yu Ning has proposed merging lp:~yuningdodo/usb-creator/usb-creator.lp978691-select-readded-source into lp:usb-creator.
Requested reviews:
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.lp978691-select-readded-source/+merge/238286
If a source is re-added we should select it and scroll to it in the list.
This patch works for only gtk and kde frontends, but not winui.
--
https://code.launchpad.net/~yuningdodo/usb-creator/usb-creator.lp978691-select-readded-source/+merge/238286
Your team usb-creator hackers is requested to review the proposed merge of lp:~yuningdodo/usb-creator/usb-creator.lp978691-select-readded-source into lp:usb-creator.
=== modified file 'debian/changelog'
--- debian/changelog 2014-09-02 20:13:14 +0000
+++ debian/changelog 2014-10-14 12:01:10 +0000
@@ -1,3 +1,10 @@
+usb-creator (0.2.63) utopic; urgency=medium
+
+ * GTK, KDE: select a source if it's already added. (LP: #978691)
+ * GTK: scroll to the selected source.
+
+ -- Yu Ning <ning.yu@xxxxxxxxxxxxx> Tue, 14 Oct 2014 19:34:48 +0800
+
usb-creator (0.2.62) utopic; urgency=medium
* Re-create the udisks client otherwise it will not return the newly
=== modified file 'usbcreator/backends/base/backend.py'
--- usbcreator/backends/base/backend.py 2014-03-31 14:08:49 +0000
+++ usbcreator/backends/base/backend.py 2014-10-14 12:01:10 +0000
@@ -26,6 +26,7 @@
if filename in self.sources:
logging.warn('Source already added.')
# TODO evand 2009-07-27: Scroll to source and select.
+ self.source_selected_cb(filename)
return
extension = os.path.splitext(filename)[1]
@@ -102,6 +103,9 @@
def target_removed_cb(self, drive):
pass
+ def source_selected_cb(self, drive):
+ pass
+
def target_changed_cb(self, udi):
pass
=== modified file 'usbcreator/frontends/gtk/frontend.py'
--- usbcreator/frontends/gtk/frontend.py 2014-07-25 11:40:08 +0000
+++ usbcreator/frontends/gtk/frontend.py 2014-10-14 12:01:10 +0000
@@ -120,6 +120,7 @@
self.backend.install_progress_pulse_cb = self.progress_pulse
self.backend.install_progress_pulse_stop_cb = self.progress_pulse_stop
self.backend.retry_cb = self.retry
+ self.backend.source_selected_cb = self.select_source
self.backend.target_changed_cb = self.update_target
self.backend.format_ended_cb = self.format_ended
self.backend.format_failed_cb = self.format_failed
@@ -432,6 +433,18 @@
self.source_treeview.connect('drag_drop', drop_cb)
self.source_treeview.connect('drag-data-received', data_received_cb)
+ def select_source(self, source):
+ treeview = self.source_treeview
+ model = treeview.get_model()
+ iterator = model.get_iter_first()
+ while iterator is not None:
+ if model.get_value(iterator, 0) == source:
+ path = model.get_path(iterator)
+ treeview.set_cursor(path, None, False)
+ treeview.scroll_to_cell(path)
+ return
+ iterator = model.iter_next(iterator)
+
def update_target(self, udi):
m = self.dest_treeview.get_model()
iterator = m.get_iter_first()
@@ -814,6 +827,8 @@
model = treeview.get_model()
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)
+ path = model.get_path(new_iter)
+ treeview.set_cursor(path, None, False)
+ treeview.scroll_to_cell(path)
# vim: set ai et sts=4 tabstop=4 sw=4:
=== modified file 'usbcreator/frontends/kde/frontend.py'
--- usbcreator/frontends/kde/frontend.py 2014-03-13 11:56:48 +0000
+++ usbcreator/frontends/kde/frontend.py 2014-10-14 12:01:10 +0000
@@ -84,6 +84,7 @@
self.__backend.install_progress_cb = self.progress
self.__backend.install_progress_message_cb = self.progress_message
self.__backend.retry_cb = self.retry
+ self.__backend.source_selected_cb = self.select_source
self.__backend.target_changed_cb = self.update_target
self.__backend.format_ended_cb = self.format_ended
self.__backend.format_failed_cb = self.format_failed
@@ -380,6 +381,13 @@
else:
return 0
+ def select_source(self, source):
+ for i in range(0,self.__mainWindow.ui_source_list.topLevelItemCount()):
+ item = self.__mainWindow.ui_source_list.topLevelItem(i)
+ if item.data(0,Qt.UserRole) == source:
+ self.__mainWindow.ui_source_list.setCurrentItem(item,True)
+ return
+
def update_target(self, udi):
for i in range(0,self.__mainWindow.ui_dest_list.topLevelItemCount()):
item = self.__mainWindow.ui_dest_list.topLevelItem(i)
Follow ups