Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
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 /src
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>
Diffstat (limited to 'src')
-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)