Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@gmail.com>2011-06-15 21:23:35 (GMT)
committer Gonzalo Odiard <godiard@gmail.com>2011-06-24 11:52:46 (GMT)
commit59607687c643feb3dc7d6d4ab4a8620b68ca8a6b (patch)
treef2984df89422be1e96b7b0a30fe00378d304eb1c
parent782f013040527abea5a641254003ec0c70b42216 (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.py20
-rw-r--r--src/jarabe/journal/listview.py3
-rw-r--r--src/jarabe/journal/model.py6
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)