Simon,<br><br>Mailed the (version-2) patch.<br><br>Patchwork:<br><a href="http://patchwork.sugarlabs.org/patch/1707/">http://patchwork.sugarlabs.org/patch/1707/</a><br><br>Sugar-Devel:<br><a href="http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039338.html">http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039338.html</a><br>
<br><br>Note that I had sent the patch with "--in-reply-to=<a href="mailto:1345225428-12572-1-git-send-email-ajay@activitycentral.com">1345225428-12572-1-git-send-email-ajay@activitycentral.com</a>" ( that is, in continuation with the patch at <a href="http://patchwork.sugarlabs.org/patch/1662/">http://patchwork.sugarlabs.org/patch/1662/</a> ) but apparently, the effect did not take place :-\<br>
<br><br>Regards,<br>Ajay<br><br><div class="gmail_quote">On Tue, Aug 28, 2012 at 4:38 PM, Ajay Garg <span dir="ltr"><<a href="mailto:ajay@activitycentral.com" target="_blank">ajay@activitycentral.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Simon.<br><br>Thanks for the reply !!<br><br>Please find my comments inline.<br><br><br><div class="gmail_quote">
<div class="im">On Tue, Aug 28, 2012 at 3:13 PM, Simon Schampijer <span dir="ltr"><<a href="mailto:simon@schampijer.de" target="_blank">simon@schampijer.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>On 08/19/2012 10:05 PM, Ajay Garg wrote:<br>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Hi all.<br>
<br>
Just saw Simon's patch at <a href="http://patchwork.sugarlabs.org/patch/1670/" target="_blank">http://patchwork.sugarlabs.<u></u>org/patch/1670/</a><br>
<br>
Thereby, it's a gentle request ::<br>
<br>
                   * to get this multi-select feature approved (with all the<br>
latest feedback-changes/bug-fixes).<br>
                   * to get the multi-select patch(es) reviewed.<br>
                   * to get the multi-select patch(es) pushed (if all ok).<br>
<br>
<br>
so that any such enhancements (confirmation alert before erasing, currently<br>
in single-mode) can be easily merged (for single- AND batch-mode); and<br>
there is minimal slogging involved that comes in with merging patches :)<br>
<br>
<br>
Thanks and Regards,<br>
Ajay<br>
</blockquote>
<br>
<br>
<br></div>
Hi Ajay,<br>
<br>
first of all thanks for working on this. Yes, Sugar is moving fast those days, you can apply your patch on top of 3aa88a85143c48b64cf57ab7c79b45<u></u>31dcfa6e8b (Release 0.97.1). You can keep working on top of that and rebase later so you don't have to keep up with master. In any case, you need to port them to gtk3 anyhow later.<br>

</blockquote></div><div><br>Okies..<br><br><br><br> <br></div><div class="im"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
First of all, I think it would be good to send the patches directly to the devel list (as for all I know they are currently only in patchwork) [1] . If I missed anything, please point me to it.<br></blockquote></div><div>
<br>I had already sent the patches to sugar-devel earlier :) at ::<br>
<br><a href="http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039054.html" target="_blank">http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039054.html</a><br><a href="http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039055.html" target="_blank">http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039055.html</a><br>

<a href="http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039056.html" target="_blank">http://lists.sugarlabs.org/archive/sugar-devel/2012-August/039056.html</a><br><br><br>As per your suggestion, I will be changing, and soon posting the changed, version-2 sugar-patch (replying on that same thread), that would do away with the need of the sugar-toolkit patch :)<br>

<br><br><br><br> <br></div><div class="im"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Please add detailed descriptions to the patch (see how I tried and hopefully managed to describe a big change we lately landed in [2]). Get to the point what the patch does. Add items that don't work yet or are critical or if you have questions or are unsure about the approach.<br>

</blockquote></div><div><br>Ok, I think the bulk of the work happens in the different, segregated out stages during a particular metadata-processing. I took care of being verbose there as far as possible :)<br><br>Anyhow, in my version-2 patch (that would do away with the need of the sugar-tollkit patch, as pointed by you), I will also try my hand to have a better, unified description :)<br>

<br><br><br><br> </div><div><div class="h5"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
The good news is, the artwork and toolkit patches are easy to handle. The icons should be cleaned up and can be landed. For the toolkit patch I think you can use add_button fine:<br>
<br>
diff --git a/src/jarabe/journal/<u></u>journalactivity.py b/src/jarabe/journal/<u></u>journalactivity.py<br>
index 7ed8b18..060416b 100644<br>
--- a/src/jarabe/journal/<u></u>journalactivity.py<br>
+++ b/src/jarabe/journal/<u></u>journalactivity.py<br>
@@ -132,16 +132,17 @@ class JournalActivity(JournalWindow)<u></u>:<br>
         self._editing_mode = False<br>
         self._alert = Alert()<br>
<br>
-        self._error_alert = NButtonAlert()<br>
-        self._error_alert._populate_<u></u>buttons([<br>
-            ('dialog-ok', gtk.RESPONSE_OK, _('Ok'))<br>
-                                            ])<br>
-<br>
-        self._confirmation_alert = NButtonAlert()<br>
-        self._confirmation_alert._<u></u>populate_buttons([<br>
-            ('dialog-cancel', gtk.RESPONSE_CANCEL, _('Stop')),<br>
-            ('dialog-ok', gtk.RESPONSE_OK, _('Continue'))<br>
-                                                   ])<br>
+        self._error_alert = Alert()<br>
+        icon = Icon(icon_name='dialog-ok')<br>
+        self._error_alert.add_button(<u></u>gtk.RESPONSE_OK, _('Ok'), icon)<br>
+<br>
+        self._confirmation_alert = Alert()<br>
+        icon = Icon(icon_name='dialog-cancel'<u></u>)<br>
+        self._confirmation_alert.add_<u></u>button(gtk.RESPONSE_CANCEL,<br>
+                                            _('Stop'), icon)<br>
+        icon = Icon(icon_name='dialog-ok')<br>
+        self._confirmation_alert.add_<u></u>button(gtk.RESPONSE_OK,<br>
+                                            _('Continue'), icon)<br>
<br>
We could argue that the add_button API should allow to pass in an icon name instead of the icon directly, I don't think there is a case where this would break. On the other hand not sure changing that now. I would just go with the above and drop your toolkit patch.<br>

</blockquote></div></div><div><br>+1.<br><br><br><br> </div><div class="im"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
So we are left with the shell patch basically. It is loong and invasive :) So it will take some time. More review eyes welcome. I wonder as well if splitting it up in sub-patches would help, but maybe is too hard at this point.<br>

</blockquote></div><div><br>Hmm.. Yes, there is a tendency for things to break.<br>I will be posting with a better, unified description in version-2 patch.<br><br> </div><div class="im"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<br>
On the design end, the work flow is good. I guess the 'uifreeze' is meant to prevent races.</blockquote></div><div><br><br>+1.<br>Gary's aggressive testing produced plenty of those :D  <br><br>So, freezing the UI was the only (and actually, simple and correct) approach.<br>

<br><br> <br></div><div class="im"><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> Is the first time we do it in the UI. Might make sense here. I will think about it a bit more.<br>

</blockquote><div></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Cheers,<br>
   Simon<br>
<br>
[1] <a href="http://wiki.sugarlabs.org/go/Development_Team/Code_Review" target="_blank">http://wiki.sugarlabs.org/go/<u></u>Development_Team/Code_Review</a><br>
[2] <a href="http://git.sugarlabs.org/sugar/mainline/commit/d9fbf9db79b9abab2491ebbdc169985e38a59055" target="_blank">http://git.sugarlabs.org/<u></u>sugar/mainline/commit/<u></u>d9fbf9db79b9abab2491ebbdc16998<u></u>5e38a59055</a><br>


<br>
PS: something that caught my eye in journalactivity.py:<br>
{{{<br>
 def __volume_error_cb(self, gobject, message, severity):<br>
        alert = ErrorAlert(title=severity, msg=message)<br>
        alert.connect('response', self.__alert_response_cb)<br>
        self.add_alert(alert)<br>
        alert.show()<br>
<br>
    def _volume_error_cb(self, gobject, message, severity):<br>
        self.update_error_alert(<u></u>severity, message, None, None)<br>
}}}<br></blockquote></div><div><br>This would be called in the "journal._volume_error_cb(menu_item, message, severity)" in "CopyMenuHelper" class in "src/jarabe/journal/palettes.py".<br>Since "CopyMenuHelper" is a singleton class, and is NOT attached anywhere to the singleton "JournalActivity" widget, thus, there is no way to call the private "__volume_error_cb" method of "JournalActivity" widget directly.<br>

<br><br> </div></div><br>Thanks and Regards,<br>Ajay<br>
</blockquote></div><br>