From c6068ef3d6df54e777d059be889122fd838f73ed Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Tue, 14 Dec 2010 10:24:06 +0000 Subject: 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. --- 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): -- cgit v0.9.1