diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-09-07 10:26:52 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-09-07 10:26:52 (GMT) |
commit | 549be18e280fd24cd6c2b16f21c144de4d6fe415 (patch) | |
tree | 574c71ae425f183653cc21acd91e585b9e94672a /src/jarabe | |
parent | 569bf1d6f3474a961417e0fdf7f0fb1b92ea933a (diff) |
Process non-ds object in the right way in Journal #1262
Diffstat (limited to 'src/jarabe')
-rw-r--r-- | src/jarabe/journal/expandedentry.py | 41 | ||||
-rw-r--r-- | src/jarabe/journal/listview.py | 5 | ||||
-rw-r--r-- | src/jarabe/journal/model.py | 9 |
3 files changed, 40 insertions, 15 deletions
diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py index 9c0f922..ff830bf 100644 --- a/src/jarabe/journal/expandedentry.py +++ b/src/jarabe/journal/expandedentry.py @@ -159,12 +159,18 @@ class ExpandedEntry(hippo.CanvasBox): return icon def _create_title(self): - title = CanvasEntry() - title.set_background(style.COLOR_WHITE.get_html()) - title.props.text = self._metadata.get('title', _('Untitled')) - title.props.widget.connect('focus-out-event', - self._title_focus_out_event_cb) - return title + entry = gtk.Entry() + entry.props.text = self._metadata.get('title', _('Untitled')) + + bg_color = style.COLOR_WHITE.get_gdk_color() + entry.modify_bg(gtk.STATE_INSENSITIVE, bg_color) + entry.modify_base(gtk.STATE_INSENSITIVE, bg_color) + + entry.props.editable = model.is_editable(self._metadata) + if entry.props.editable: + entry.connect('focus-out-event', self._title_focus_out_event_cb) + + return hippo.CanvasWidget(widget=entry) def _create_date(self): date = hippo.CanvasText(xalign=hippo.ALIGNMENT_START, @@ -297,8 +303,11 @@ class ExpandedEntry(hippo.CanvasBox): vbox.append(text_view, hippo.PACK_EXPAND) text_view.text_view_widget.props.accepts_tab = False - text_view.text_view_widget.connect('focus-out-event', - self._description_focus_out_event_cb) + editable = model.is_editable(self._metadata) + if editable: + text_view.text_view_widget.connect('focus-out-event', + self._description_focus_out_event_cb) + text_view.text_view_widget.props.editable = editable return vbox, text_view @@ -322,8 +331,11 @@ class ExpandedEntry(hippo.CanvasBox): vbox.append(text_view, hippo.PACK_EXPAND) text_view.text_view_widget.props.accepts_tab = False - text_view.text_view_widget.connect('focus-out-event', - self._tags_focus_out_event_cb) + editable = model.is_editable(self._metadata) + if editable: + text_view.text_view_widget.connect('focus-out-event', + self._tags_focus_out_event_cb) + text_view.text_view_widget.props.editable = editable return vbox, text_view @@ -345,9 +357,10 @@ class ExpandedEntry(hippo.CanvasBox): needs_update = False old_title = self._metadata.get('title', None) - if old_title != self._title.props.text: - self._icon.palette.props.primary_text = self._title.props.text - self._metadata['title'] = self._title.props.text + new_title = self._title.props.widget.props.text + if old_title != new_title: + self._icon.palette.props.primary_text = new_title + self._metadata['title'] = new_title self._metadata['title_set_by_user'] = '1' needs_update = True @@ -373,6 +386,8 @@ class ExpandedEntry(hippo.CanvasBox): return int(self._metadata.get('keep', 0)) == 1 def _keep_icon_activated_cb(self, keep_icon): + if not model.is_editable(self._metadata): + return if self.get_keep(): self._metadata['keep'] = 0 else: diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py index 9d69419..5e829bc 100644 --- a/src/jarabe/journal/listview.py +++ b/src/jarabe/journal/listview.py @@ -263,6 +263,8 @@ class BaseListView(gtk.Bin): def __favorite_clicked_cb(self, cell, path): row = self._model[path] metadata = model.get(row[ListModel.COLUMN_UID]) + if not model.is_editable(metadata): + return if metadata.get('keep', 0) == '1': metadata['keep'] = '0' else: @@ -325,6 +327,9 @@ class BaseListView(gtk.Bin): self._scroll_position = self.tree_view.props.vadjustment.props.value logging.debug('ListView.__map_cb %r', self._scroll_position) + is_editable = self._query.get('mountpoints', '') == '/' + self.cell_title.props.editable = is_editable + def _is_query_empty(self): # FIXME: This is a hack, we shouldn't have to update this every time # a new search term is added. diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py index 8ae78d8..f452a7f 100644 --- a/src/jarabe/journal/model.py +++ b/src/jarabe/journal/model.py @@ -371,9 +371,11 @@ def _datastore_updated_cb(object_id): def _datastore_deleted_cb(object_id): deleted.send(None, object_id=object_id) -def find(query, page_size): +def find(query_, page_size): """Returns a ResultSet """ + query = query_.copy() + if 'order_by' not in query: query['order_by'] = ['-mtime'] @@ -529,7 +531,10 @@ def _get_unique_file_name(mount_point, file_name): return file_name +def is_editable(metadata): + mountpoint = metadata.get('mountpoint', '/') + return mountpoint == '/' + created = dispatch.Signal() updated = dispatch.Signal() deleted = dispatch.Signal() - |