Daniel,<br><br>I agree that the reason of applying this particular fix is not very well explained, but this was the best that worked, without breaking  anything else.<br><br>To put it logically, once the list is rendered, we do not need  any "not-updatable activity entries" anyway; also the only next step after the rendering, is "Refresh", wherein the entire process is followed again.<br>
<br>Anyhow, as long as all the use-cases work as expected, we should be ok :)<br><br>It would be good if it is known whether the "Select/Deselect" feature worked at all previously (I doubt it ever did). In the unlikely scenario that it worked before, I will be happy to delve in more into this.<br>
<br><br><div class="gmail_quote">On Fri, Nov 30, 2012 at 10:47 PM, Daniel Drake <span dir="ltr"><<a href="mailto:dsd@laptop.org" target="_blank">dsd@laptop.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for the patch. If you'd like to speed up the process and save<br>
me some time, please add a commit message explaining what was wrong<br>
and how/why this fixes it. It does not jump out at me from the patch.<br>
It also doesn't feel like the right place to be doing a spring<br>
cleaning of the activities model.<br>
<div class="HOEnZb"><div class="h5"><br>
On Tue, Nov 27, 2012 at 10:31 AM, Ajay Garg <<a href="mailto:ajay@activitycentral.com">ajay@activitycentral.com</a>> wrote:<br>
> diff --git a/src/model.py b/src/model.py<br>
> index 35896e2..533183b 100755<br>
> --- a/src/model.py<br>
> +++ b/src/model.py<br>
> @@ -229,7 +229,13 @@ class UpdateList(Gtk.ListStore):<br>
><br>
>      def toggle_select(self, path):<br>
>          """Toggle whether the given update will be installed."""<br>
> -        row = self[path]<br>
> +        # We first need to remove all the spurious activities existing<br>
> +        # in the model, for whom "UPDATE_EXISTS" is False.<br>
> +        for act in self:<br>
> +            if act[UPDATE_EXISTS] is False:<br>
> +                self.remove(act.iter)<br>
> +<br>
> +        row = self[self.get_iter_from_string(path)]<br>
>          row[UPDATE_SELECTED] = not row[UPDATE_SELECTED]<br>
><br>
>      # don't touch the UI in refresh, it needs to be thread-safe.<br>
> diff --git a/src/view.py b/src/view.py<br>
> index 32cb580..9c8efdb 100755<br>
> --- a/src/view.py<br>
> +++ b/src/view.py<br>
> @@ -84,7 +84,6 @@ class ActivityListView(Gtk.ScrolledWindow):<br>
>          if self.activity_updater._in_sugar:<br>
>              crbool.set_property('indicator_size', style.zoom(26))<br>
>          def toggled_cb(crbool, path, self):<br>
> -            path = self.ftreestore.convert_path_to_child_path(path)<br>
>              self.activity_updater.activity_list.toggle_select(path)<br>
>              self.activity_pane._refresh_update_size()<br>
>          crbool.connect('toggled', toggled_cb, self)<br>
> --<br>
> 1.7.11.7<br>
><br>
</div></div></blockquote></div><br><br clear="all"><br><font face="arial, sans-serif">Regards,<br><br>Ajay Garg</font><br style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font face="arial, sans-serif">Dextrose Developer</font><br style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">Activity Central: </span><a href="http://activitycentral.com/" style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)" target="_blank">http://activitycentral.com</a><br>