Ticket #1262: sugar-1262.patch

File sugar-1262.patch, 5.6 KB (added by alsroot, 15 years ago)
  • src/jarabe/journal/expandedentry.py

    From 0126491a4d4936fd6bfe61d5de9c954b3a82b320 Mon Sep 17 00:00:00 2001
    From: Aleksey Lim <alsroot@member.fsf.org>
    Date: Sun, 6 Sep 2009 11:53:48 +0000
    Subject: Process non-ds object in the right way in Journal #1262
    
    ---
     src/jarabe/journal/expandedentry.py |   41 +++++++++++++++++++++++-----------
     src/jarabe/journal/listview.py      |    8 ++++++
     src/jarabe/journal/model.py         |    9 ++++++-
     3 files changed, 43 insertions(+), 15 deletions(-)
    
    diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py
    index 9c0f922..ff830bf 100644
    a b class ExpandedEntry(hippo.CanvasBox): 
    159159        return icon
    160160
    161161    def _create_title(self):
    162         title = CanvasEntry()
    163         title.set_background(style.COLOR_WHITE.get_html())
    164         title.props.text = self._metadata.get('title', _('Untitled'))
    165         title.props.widget.connect('focus-out-event',
    166                                    self._title_focus_out_event_cb)
    167         return title
     162        entry = gtk.Entry()
     163        entry.props.text = self._metadata.get('title', _('Untitled'))
     164
     165        bg_color = style.COLOR_WHITE.get_gdk_color()
     166        entry.modify_bg(gtk.STATE_INSENSITIVE, bg_color)
     167        entry.modify_base(gtk.STATE_INSENSITIVE, bg_color)
     168
     169        entry.props.editable = model.is_editable(self._metadata)
     170        if entry.props.editable:
     171            entry.connect('focus-out-event', self._title_focus_out_event_cb)
     172
     173        return hippo.CanvasWidget(widget=entry)
    168174
    169175    def _create_date(self):
    170176        date = hippo.CanvasText(xalign=hippo.ALIGNMENT_START,
    class ExpandedEntry(hippo.CanvasBox): 
    297303        vbox.append(text_view, hippo.PACK_EXPAND)
    298304
    299305        text_view.text_view_widget.props.accepts_tab = False
    300         text_view.text_view_widget.connect('focus-out-event',
    301                                            self._description_focus_out_event_cb)
     306        editable = model.is_editable(self._metadata)
     307        if editable:
     308            text_view.text_view_widget.connect('focus-out-event',
     309                    self._description_focus_out_event_cb)
     310        text_view.text_view_widget.props.editable = editable
    302311
    303312        return vbox, text_view
    304313
    class ExpandedEntry(hippo.CanvasBox): 
    322331        vbox.append(text_view, hippo.PACK_EXPAND)
    323332
    324333        text_view.text_view_widget.props.accepts_tab = False
    325         text_view.text_view_widget.connect('focus-out-event',
    326                                            self._tags_focus_out_event_cb)
     334        editable = model.is_editable(self._metadata)
     335        if editable:
     336            text_view.text_view_widget.connect('focus-out-event',
     337                    self._tags_focus_out_event_cb)
     338        text_view.text_view_widget.props.editable = editable
    327339
    328340        return vbox, text_view
    329341
    class ExpandedEntry(hippo.CanvasBox): 
    345357        needs_update = False
    346358
    347359        old_title = self._metadata.get('title', None)
    348         if old_title != self._title.props.text:
    349             self._icon.palette.props.primary_text = self._title.props.text
    350             self._metadata['title'] = self._title.props.text
     360        new_title = self._title.props.widget.props.text
     361        if old_title != new_title:
     362            self._icon.palette.props.primary_text = new_title
     363            self._metadata['title'] = new_title
    351364            self._metadata['title_set_by_user'] = '1'
    352365            needs_update = True
    353366
    class ExpandedEntry(hippo.CanvasBox): 
    373386        return int(self._metadata.get('keep', 0)) == 1
    374387
    375388    def _keep_icon_activated_cb(self, keep_icon):
     389        if not model.is_editable(self._metadata):
     390            return
    376391        if self.get_keep():
    377392            self._metadata['keep'] = 0
    378393        else:
  • src/jarabe/journal/listview.py

    diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py
    index 82e76b0..26f309d 100644
    a b class BaseListView(gtk.Bin): 
    261261    def __favorite_clicked_cb(self, cell, path):
    262262        row = self._model[path]
    263263        metadata = model.get(row[ListModel.COLUMN_UID])
     264        if not model.is_editable(metadata):
     265            return
    264266        if metadata.get('keep', 0) == '1':
    265267            metadata['keep'] = '0'
    266268        else:
    class BaseListView(gtk.Bin): 
    310312        else:
    311313            self._clear_message()
    312314
     315        is_editable = False
     316        mountpoints = self._query.get('mountpoints')
     317        if mountpoints is not None and len(mountpoints):
     318            is_editable = mountpoints[0] == '/'
     319        self.cell_title.props.editable = is_editable
     320
    313321    def _is_query_empty(self):
    314322        # FIXME: This is a hack, we shouldn't have to update this every time
    315323        # a new search term is added.
  • src/jarabe/journal/model.py

    diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py
    index 8ae78d8..f452a7f 100644
    a b def _datastore_updated_cb(object_id): 
    371371def _datastore_deleted_cb(object_id):
    372372    deleted.send(None, object_id=object_id)
    373373
    374 def find(query, page_size):
     374def find(query_, page_size):
    375375    """Returns a ResultSet
    376376    """
     377    query = query_.copy()
     378
    377379    if 'order_by' not in query:
    378380        query['order_by'] = ['-mtime']
    379381
    def _get_unique_file_name(mount_point, file_name): 
    529531
    530532    return file_name
    531533
     534def is_editable(metadata):
     535    mountpoint = metadata.get('mountpoint', '/')
     536    return mountpoint == '/'
     537
    532538created = dispatch.Signal()
    533539updated = dispatch.Signal()
    534540deleted = dispatch.Signal()
    535