[Sugar-devel] [PATCH] Journal: Do not rescan external device if is not needed - OLPC #10841

Gonzalo Odiard godiard at sugarlabs.org
Fri Jun 17 10:45:25 EDT 2011


On Fri, Jun 17, 2011 at 11:34 AM, Martin Abente <
martin.abente.lahaye at gmail.com> wrote:

> It would be useful to do this with the deleted and updated callbacks
> too. :)


Was my first idea, but you can't trigger delete or update when you are
looking another view
(like uodate the journal when you are looking a external device)



> Makes no sense to refresh the ListModel when the object_id
> doesn't belong to it.
>
>
This is tricky too. Because in external devices, the object_id is the path
of the file,
and when you change the title in the list view, the file_name is changed,
and the object_id is not synchronized. I was doing tests, but we need change
a lot of code.
I think is better do it in a separate patch.

Gonzalo



> On Fri, Jun 17, 2011 at 10:20 AM,  <godiard at sugarlabs.org> wrote:
> > From: Gonzalo Odiard <godiard at gmail.com>
> >
> > Signed-off-by: Gonzalo Odiard <gonzalo at laptop.org>
> >
> > Do not rescan if the created item is not part of the currently selected
> view
> > ---
> >  src/jarabe/journal/listview.py |   10 +++++++++-
> >  1 files changed, 9 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/jarabe/journal/listview.py
> b/src/jarabe/journal/listview.py
> > index 0aee1b7..1bc8f8a 100644
> > --- a/src/jarabe/journal/listview.py
> > +++ b/src/jarabe/journal/listview.py
> > @@ -118,7 +118,8 @@ class BaseListView(gtk.Bin):
> >         model.deleted.connect(self.__model_deleted_cb)
> >
> >     def __model_created_cb(self, sender, **kwargs):
> > -        self._set_dirty()
> > +        if self._is_new_item_visible(kwargs):
> > +            self._set_dirty()
> >
> >     def __model_updated_cb(self, sender, **kwargs):
> >         self._set_dirty()
> > @@ -126,6 +127,13 @@ class BaseListView(gtk.Bin):
> >     def __model_deleted_cb(self, sender, **kwargs):
> >         self._set_dirty()
> >
> > +    def _is_new_item_visible(self, kwargs):
> > +        """Check if the created item is part of the currently selected
> view"""
> > +        if self._query['mountpoints'] == ['/']:
> > +            return not kwargs['object_id'].startswith('/')
> > +        else:
> > +            return
> kwargs['object_id'].startswith(self._query['mountpoints'][0])
> > +
> >     def _add_columns(self):
> >         cell_favorite = CellRendererFavorite(self.tree_view)
> >         cell_favorite.connect('clicked', self.__favorite_clicked_cb)
> > --
> > 1.7.4.4
> >
> > _______________________________________________
> > Sugar-devel mailing list
> > Sugar-devel at lists.sugarlabs.org
> > http://lists.sugarlabs.org/listinfo/sugar-devel
> >
>



-- 
Gonzalo Odiard
SugarLabs Argentina
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sugarlabs.org/archive/sugar-devel/attachments/20110617/3374daf4/attachment.html>


More information about the Sugar-devel mailing list