From 80ec48e50b802e5042ae8bc80faa98bfc5e7b1a0 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sun, 27 Mar 2011 14:29:47 -0400 Subject: [PATCH 1/2] Fix bug #743533: Active book highlight bar to move with metadata. --- src/calibre/gui2/actions/edit_metadata.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/calibre/gui2/actions/edit_metadata.py b/src/calibre/gui2/actions/edit_metadata.py index 6c2cfb8126..3f053e5223 100644 --- a/src/calibre/gui2/actions/edit_metadata.py +++ b/src/calibre/gui2/actions/edit_metadata.py @@ -164,6 +164,8 @@ class EditMetadataAction(InterfaceAction): if d.row_delta == 0: break current_row += d.row_delta + self.gui.library_view.set_current_row(current_row) + self.gui.library_view.scroll_to_row(current_row) if changed: From bd6cb6e694c8fb8c82d5493b89eed6d11a911caf Mon Sep 17 00:00:00 2001 From: John Schember Date: Sun, 27 Mar 2011 15:12:41 -0400 Subject: [PATCH 2/2] MOBI Metadata: Add 113 record for ebooks when editing metadata if it does not exist. --- src/calibre/ebooks/metadata/mobi.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/calibre/ebooks/metadata/mobi.py b/src/calibre/ebooks/metadata/mobi.py index 963391dcf8..a5bfbd2add 100644 --- a/src/calibre/ebooks/metadata/mobi.py +++ b/src/calibre/ebooks/metadata/mobi.py @@ -271,11 +271,11 @@ class MetadataUpdater(object): FILTER=''.join([(len(repr(chr(x)))==3) and chr(x) or '.' for x in range(256)]) N=0; result='' while src: - s,src = src[:length],src[length:] - hexa = ' '.join(["%02X"%ord(x) for x in s]) - s = s.translate(FILTER) - result += "%04X %-*s %s\n" % (N, length*3, hexa, s) - N+=length + s,src = src[:length],src[length:] + hexa = ' '.join(["%02X"%ord(x) for x in s]) + s = s.translate(FILTER) + result += "%04X %-*s %s\n" % (N, length*3, hexa, s) + N+=length print result def get_pdbrecords(self): @@ -370,6 +370,9 @@ class MetadataUpdater(object): update_exth_record((203, pack('>I', 0))) if self.thumbnail_record is not None: update_exth_record((202, pack('>I', self.thumbnail_rindex))) + if 113 not in self.original_exth_records and 501 in self.original_exth_records and self.original_exth_records[501] == 'EBOK' and not recs.has_key(501): + from uuid import uuid4 + update_exth_record((113, str(uuid4()))) if 503 in self.original_exth_records: update_exth_record((503, mi.title.encode(self.codec, 'replace')))