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 Simon Schampijer <simon@schampijer.de>2011-06-24 12:44:27 (GMT)
commit47f2f464f47728afa6b2e792e4d7d4478f36d96e (patch)
treee61ed6320feef4c745f4e9bb74111e934736e871
parentb35dfc63193ac3368dd9b71e269f824d625f2068 (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)