Merge lp:~yuningdodo/usb-creator/usb-creator.lp978691-select-readded-source into lp:usb-creator

Proposed by Yu Ning
Status: Rejected
Rejected by: Mathieu Trudel-Lapierre
Proposed branch: lp:~yuningdodo/usb-creator/usb-creator.lp978691-select-readded-source
Merge into: lp:usb-creator
Diff against target: 103 lines (+35/-1)
4 files modified
debian/changelog (+7/-0)
usbcreator/backends/base/backend.py (+4/-0)
usbcreator/frontends/gtk/frontend.py (+16/-1)
usbcreator/frontends/kde/frontend.py (+8/-0)
To merge this branch: bzr merge lp:~yuningdodo/usb-creator/usb-creator.lp978691-select-readded-source
Reviewer Review Type Date Requested Status
Yu Ning (community) Disapprove
Mathieu Trudel-Lapierre Needs Fixing
Review via email: mp+238286@code.launchpad.net

Description of the change

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.

To post a comment you must log in.
Revision history for this message
midenok (midenok) wrote :
Revision history for this message
Yu Ning (yuningdodo) wrote :

Thanks for the review. I have checked that patch before I compose my own one, and found it was already included in both ubuntu trusty and utopic.

Current status of usb-creator-gtk 0.2.56.2 (trusty-updates):
1. add a source for the first time, it will be selected, but the list will not be scrolled to it.
2. add a source for the second time, it won't be selected.

So my patch is actually based on your one:
1. add a source for the first time, it will be selected, the list will be automatically scrolled to it.
2. add a source for the second time, it will be selected, the list will be automatically scrolled to it.

SRU process requires a patch to be "clean", so I think it's better to commit your other patches separately instead of mixing them in this bug.

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

Looks fine, but I'll first get rid of the changelog changes for utopic and apply this for vivid, since it's a prerequisite for landing things as SRU.

review: Approve
Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

Actually, looks like this isn't closing the right bug -- the bug you're closing is for selecting an image when it is added; not re-selecting an image that was already loaded. Could you please fix this to point to the right bug or a new one regarding that specific issue? This is a requirement for SRU anyway.

review: Needs Fixing
Revision history for this message
Yu Ning (yuningdodo) wrote :

Checked on vivid daily image (20150306), usb-creator version is 0.2.65.

usb-creator-gtk: a re-added image won't be automatically selected
usb-creator-kde: a re-added image will be automatically selected, and will auto scroll to it.

My branch was originally utopic based (or maybe trusty? can't recall clearly), when I try to run my branch on vivid:

usb-creator-gtk: a re-added image will be automatically selected, but will not scroll to it.
usb-creator-kde: can't be launched.

Looks like the patch need to be updated. I will resubmit my branch against the current trunk branch later.

review: Disapprove
Revision history for this message
Yu Ning (yuningdodo) wrote :

The patch has been resubmitted against current trunk (vivid) at:
https://code.launchpad.net/~yuningdodo/usb-creator/usb-creator.lp978691v2-select-readded-source/+merge/252082

Please help to view it and reject this one. Thanks.

Unmerged revisions

457. By Yu Ning

* GTK, KDE: select a source if it's already added. (LP: #978691)
* GTK: scroll to the selected source.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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 @@
1usb-creator (0.2.63) utopic; urgency=medium
2
3 * GTK, KDE: select a source if it's already added. (LP: #978691)
4 * GTK: scroll to the selected source.
5
6 -- Yu Ning <ning.yu@canonical.com> Tue, 14 Oct 2014 19:34:48 +0800
7
1usb-creator (0.2.62) utopic; urgency=medium8usb-creator (0.2.62) utopic; urgency=medium
29
3 * Re-create the udisks client otherwise it will not return the newly10 * Re-create the udisks client otherwise it will not return the newly
411
=== 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 @@
26 if filename in self.sources:26 if filename in self.sources:
27 logging.warn('Source already added.')27 logging.warn('Source already added.')
28 # TODO evand 2009-07-27: Scroll to source and select.28 # TODO evand 2009-07-27: Scroll to source and select.
29 self.source_selected_cb(filename)
29 return30 return
3031
31 extension = os.path.splitext(filename)[1]32 extension = os.path.splitext(filename)[1]
@@ -102,6 +103,9 @@
102 def target_removed_cb(self, drive):103 def target_removed_cb(self, drive):
103 pass104 pass
104105
106 def source_selected_cb(self, drive):
107 pass
108
105 def target_changed_cb(self, udi):109 def target_changed_cb(self, udi):
106 pass110 pass
107111
108112
=== 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 @@
120 self.backend.install_progress_pulse_cb = self.progress_pulse120 self.backend.install_progress_pulse_cb = self.progress_pulse
121 self.backend.install_progress_pulse_stop_cb = self.progress_pulse_stop121 self.backend.install_progress_pulse_stop_cb = self.progress_pulse_stop
122 self.backend.retry_cb = self.retry122 self.backend.retry_cb = self.retry
123 self.backend.source_selected_cb = self.select_source
123 self.backend.target_changed_cb = self.update_target124 self.backend.target_changed_cb = self.update_target
124 self.backend.format_ended_cb = self.format_ended125 self.backend.format_ended_cb = self.format_ended
125 self.backend.format_failed_cb = self.format_failed126 self.backend.format_failed_cb = self.format_failed
@@ -432,6 +433,18 @@
432 self.source_treeview.connect('drag_drop', drop_cb)433 self.source_treeview.connect('drag_drop', drop_cb)
433 self.source_treeview.connect('drag-data-received', data_received_cb)434 self.source_treeview.connect('drag-data-received', data_received_cb)
434435
436 def select_source(self, source):
437 treeview = self.source_treeview
438 model = treeview.get_model()
439 iterator = model.get_iter_first()
440 while iterator is not None:
441 if model.get_value(iterator, 0) == source:
442 path = model.get_path(iterator)
443 treeview.set_cursor(path, None, False)
444 treeview.scroll_to_cell(path)
445 return
446 iterator = model.iter_next(iterator)
447
435 def update_target(self, udi):448 def update_target(self, udi):
436 m = self.dest_treeview.get_model()449 m = self.dest_treeview.get_model()
437 iterator = m.get_iter_first()450 iterator = m.get_iter_first()
@@ -814,6 +827,8 @@
814 model = treeview.get_model()827 model = treeview.get_model()
815 new_iter = model.append(new_row)828 new_iter = model.append(new_row)
816 if force_selection or (treeview.get_selection().get_selected()[1] is None):829 if force_selection or (treeview.get_selection().get_selected()[1] is None):
817 treeview.set_cursor(model.get_path(new_iter), None, False)830 path = model.get_path(new_iter)
831 treeview.set_cursor(path, None, False)
832 treeview.scroll_to_cell(path)
818833
819# vim: set ai et sts=4 tabstop=4 sw=4:834# vim: set ai et sts=4 tabstop=4 sw=4:
820835
=== 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 @@
84 self.__backend.install_progress_cb = self.progress84 self.__backend.install_progress_cb = self.progress
85 self.__backend.install_progress_message_cb = self.progress_message85 self.__backend.install_progress_message_cb = self.progress_message
86 self.__backend.retry_cb = self.retry86 self.__backend.retry_cb = self.retry
87 self.__backend.source_selected_cb = self.select_source
87 self.__backend.target_changed_cb = self.update_target88 self.__backend.target_changed_cb = self.update_target
88 self.__backend.format_ended_cb = self.format_ended89 self.__backend.format_ended_cb = self.format_ended
89 self.__backend.format_failed_cb = self.format_failed90 self.__backend.format_failed_cb = self.format_failed
@@ -380,6 +381,13 @@
380 else:381 else:
381 return 0382 return 0
382383
384 def select_source(self, source):
385 for i in range(0,self.__mainWindow.ui_source_list.topLevelItemCount()):
386 item = self.__mainWindow.ui_source_list.topLevelItem(i)
387 if item.data(0,Qt.UserRole) == source:
388 self.__mainWindow.ui_source_list.setCurrentItem(item,True)
389 return
390
383 def update_target(self, udi):391 def update_target(self, udi):
384 for i in range(0,self.__mainWindow.ui_dest_list.topLevelItemCount()):392 for i in range(0,self.__mainWindow.ui_dest_list.topLevelItemCount()):
385 item = self.__mainWindow.ui_dest_list.topLevelItem(i)393 item = self.__mainWindow.ui_dest_list.topLevelItem(i)

Subscribers

People subscribed via source and target branches

to all changes: