diff options
author | Gonzalo Odiard <godiard@gmail.com> | 2011-06-15 21:23:35 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2011-06-24 12:44:27 (GMT) |
commit | 47f2f464f47728afa6b2e792e4d7d4478f36d96e (patch) | |
tree | e61ed6320feef4c745f4e9bb74111e934736e871 | |
parent | b35dfc63193ac3368dd9b71e269f824d625f2068 (diff) |
Journal: Enable saving metadata in external device - OLPC#10717
This patch enable saving metadata and renaming files in device
with write permission.
There are code to avoid break if the user change the title and other
properties, like description, tags or favorites, because changing
the title, the files used to save the meatata change the name too.
Signed-off-by: Gonzalo Odiard <gonzalo@laptop.org>
Acked-By: Simon Schampijer <simon@laptop.org>
-rw-r--r-- | src/jarabe/journal/expandedentry.py | 20 | ||||
-rw-r--r-- | src/jarabe/journal/listview.py | 3 | ||||
-rw-r--r-- | src/jarabe/journal/model.py | 6 |
3 files changed, 22 insertions, 7 deletions
diff --git a/src/jarabe/journal/expandedentry.py b/src/jarabe/journal/expandedentry.py index fe2f320..d293694 100644 --- a/src/jarabe/journal/expandedentry.py +++ b/src/jarabe/journal/expandedentry.py @@ -18,6 +18,7 @@ import logging from gettext import gettext as _ import StringIO import time +import os import hippo import cairo @@ -406,7 +407,14 @@ class ExpandedEntry(hippo.CanvasBox): needs_update = True if needs_update: - model.write(self._metadata, update_mtime=False) + if self._metadata.get('mountpoint', '/') == '/': + model.write(self._metadata, update_mtime=False) + else: + old_file_path = os.path.join(self._metadata['mountpoint'], + model.get_file_name(old_title, + self._metadata['mime_type'])) + model.write(self._metadata, file_path=old_file_path, + update_mtime=False) self._update_title_sid = None @@ -420,7 +428,15 @@ class ExpandedEntry(hippo.CanvasBox): self._metadata['keep'] = 0 else: self._metadata['keep'] = 1 - model.write(self._metadata, update_mtime=False) + + if self._metadata.get('mountpoint', '/') == '/': + model.write(self._metadata, update_mtime=False) + else: + f_path = os.path.join(self._metadata['mountpoint'], + model.get_file_name(self._metadata['title'], + self._metadata['mime_type'])) + model.write(self._metadata, file_path=f_path, + update_mtime=False) keep_icon.props.keep = self.get_keep() diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py index 0554008..70ab701 100644 --- a/src/jarabe/journal/listview.py +++ b/src/jarabe/journal/listview.py @@ -330,9 +330,6 @@ 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 fd25681..2be2bde 100644 --- a/src/jarabe/journal/model.py +++ b/src/jarabe/journal/model.py @@ -782,5 +782,7 @@ def get_unique_file_name(mount_point, file_name): def is_editable(metadata): - mountpoint = metadata.get('mountpoint', '/') - return mountpoint == '/' + if metadata.get('mountpoint', '/') == '/': + return True + else: + return os.access(metadata['mountpoint'], os.W_OK) |