Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2010-12-14 10:24:06 (GMT)
committer Simon Schampijer <simon@schampijer.de>2010-12-14 10:24:06 (GMT)
commitc6068ef3d6df54e777d059be889122fd838f73ed (patch)
tree6b53b8d441679576131148deb6538346e1936990
parent5dcddbe8213e4a99408aabbd980c0dab5668d048 (diff)
Journal: display entries that have no title on storage devices #10533
When copying an entry to the storage device we set the title (filename) to _('Untitled'). Conversion from 0.82 entries: If an entry has no title we set it to _('Untitled') and rename the file accordingly, taking care of creating a unique filename.
-rw-r--r--src/jarabe/journal/model.py11
-rw-r--r--src/jarabe/journal/volumestoolbar.py15
2 files changed, 20 insertions, 6 deletions
diff --git a/src/jarabe/journal/model.py b/src/jarabe/journal/model.py
index 04c3be9..521cd8b 100644
--- a/src/jarabe/journal/model.py
+++ b/src/jarabe/journal/model.py
@@ -24,6 +24,7 @@ from stat import S_IFMT, S_IFDIR, S_IFREG
import traceback
import re
import json
+from gettext import gettext as _
import gobject
import dbus
@@ -587,11 +588,13 @@ def _write_entry_on_external_device(metadata, file_path):
raise ValueError('Entries without a file cannot be copied to '
'removable devices')
- file_name = _get_file_name(metadata['title'], metadata['mime_type'])
+ if metadata['title'] == '':
+ metadata['title'] = _('Untitled')
+ file_name = get_file_name(metadata['title'], metadata['mime_type'])
destination_path = os.path.join(metadata['mountpoint'], file_name)
if destination_path != file_path:
- file_name = _get_unique_file_name(metadata['mountpoint'], file_name)
+ file_name = get_unique_file_name(metadata['mountpoint'], file_name)
destination_path = os.path.join(metadata['mountpoint'], file_name)
clean_name, extension_ = os.path.splitext(file_name)
metadata['title'] = clean_name
@@ -651,7 +654,7 @@ def _write_entry_on_external_device(metadata, file_path):
return object_id
-def _get_file_name(title, mime_type):
+def get_file_name(title, mime_type):
file_name = title
mime_extension = mime.get_primary_extension(mime_type)
@@ -675,7 +678,7 @@ def _get_file_name(title, mime_type):
return file_name
-def _get_unique_file_name(mount_point, file_name):
+def get_unique_file_name(mount_point, file_name):
if os.path.exists(os.path.join(mount_point, file_name)):
i = 1
name, extension = os.path.splitext(file_name)
diff --git a/src/jarabe/journal/volumestoolbar.py b/src/jarabe/journal/volumestoolbar.py
index 99f1725..9a49cdf 100644
--- a/src/jarabe/journal/volumestoolbar.py
+++ b/src/jarabe/journal/volumestoolbar.py
@@ -56,8 +56,9 @@ def _convert_entries(root):
- entries that do not have an associated file are not
converted.
- - when done we write the file converted to the old metadat
- directory, that we do not convert several times
+ - if an entry has no title we set it to Untitled and rename
+ the file accordingly, taking care of creating a unique
+ filename
"""
try:
@@ -109,6 +110,16 @@ def _convert_entries(root):
if not os.path.exists(os.path.join(root, filename)):
continue
+ if metadata['title'] == '':
+ metadata['title'] = _('Untitled')
+ fn = model.get_file_name(metadata['title'],
+ metadata['mime_type'])
+ new_filename = model.get_unique_file_name(root, fn)
+ metadata['filename'] = new_filename
+ os.rename(os.path.join(root, filename),
+ os.path.join(root, new_filename))
+ filename = new_filename
+
preview_path = os.path.join(root, _JOURNAL_0_METADATA_DIR,
'preview', uid)
if os.path.exists(preview_path):