From 22f0d6908c65c8d11a6dbab98d20d03c6ae37b47 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 1 Jan 2010 11:03:42 -0700 Subject: [PATCH 1/4] ... --- src/calibre/gui2/library.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index 70f75917be..4737cdadcd 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -404,7 +404,8 @@ class BooksModel(QAbstractTableModel): for id in ids: mi = self.db.get_metadata(id, index_is_id=True) if mi.series is not None: - mi.tag_order = self.db.books_in_series_of(id, index_is_id=True) + mi.tag_order = { mi.series: self.db.books_in_series_of(id, + index_is_id=True)} ans.append(mi) return ans From 5e3cb90b12f3b46fa24fa392e672a74ebdb74942 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 1 Jan 2010 11:26:30 -0700 Subject: [PATCH 2/4] Fix cover handling in device drivers --- src/calibre/devices/interface.py | 2 +- src/calibre/gui2/device.py | 10 ++++++---- src/calibre/gui2/library.py | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/calibre/devices/interface.py b/src/calibre/devices/interface.py index a774ed37ed..dec3f0304a 100644 --- a/src/calibre/devices/interface.py +++ b/src/calibre/devices/interface.py @@ -275,7 +275,7 @@ class DevicePlugin(Plugin): :metadata: If not None, it is a list of :class:`MetaInformation` objects. The idea is to use the metadata to determine where on the device to put the book. len(metadata) == len(files). Apart from the regular - cover_data, there may also be a thumbnail attribute, which should + cover (path to cover), there may also be a thumbnail attribute, which should be used in preference. The thumbnail attribute is of the form (width, height, cover_data as jpeg). In addition the MetaInformation objects can have a tag_order attribute. diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index a8c30f9532..b07d8fab8e 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -715,8 +715,9 @@ class DeviceGUI(object): prefix = ascii_filename(prefix) names.append('%s_%d%s'%(prefix, id, os.path.splitext(f.name)[1])) - if mi.cover_data and mi.cover_data[1]: - mi.thumbnail = self.cover_to_thumbnail(mi.cover_data[1]) + if mi.cover and os.path.access(mi.cover, os.R_OK): + mi.thumbnail = self.cover_to_thumbnail(open(mi.cover, + 'rb').read()) dynamic.set('news_to_be_synced', set([])) if config['upload_news_to_device'] and files: remove = ids if \ @@ -751,8 +752,9 @@ class DeviceGUI(object): metadata = self.library_view.model().metadata_for(ids) ids = iter(ids) for mi in metadata: - if mi.cover_data and mi.cover_data[1]: - mi.thumbnail = self.cover_to_thumbnail(mi.cover_data[1]) + if mi.cover and os.path.access(mi.cover, os.R_OK): + mi.thumbnail = self.cover_to_thumbnail(open(mi.cover, + 'rb').read()) imetadata = iter(metadata) files = [getattr(f, 'name', None) for f in _files] diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index 4737cdadcd..a7c74fa1cf 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -405,7 +405,7 @@ class BooksModel(QAbstractTableModel): mi = self.db.get_metadata(id, index_is_id=True) if mi.series is not None: mi.tag_order = { mi.series: self.db.books_in_series_of(id, - index_is_id=True)} + index_is_id=True, get_cover=True)} ans.append(mi) return ans From 2912869ff418ce21e332b7a645ca006d19719f77 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 1 Jan 2010 11:30:18 -0700 Subject: [PATCH 3/4] ... --- src/calibre/gui2/library.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/library.py b/src/calibre/gui2/library.py index a7c74fa1cf..6648a5189c 100644 --- a/src/calibre/gui2/library.py +++ b/src/calibre/gui2/library.py @@ -402,10 +402,10 @@ class BooksModel(QAbstractTableModel): def metadata_for(self, ids): ans = [] for id in ids: - mi = self.db.get_metadata(id, index_is_id=True) + mi = self.db.get_metadata(id, index_is_id=True, get_cover=True) if mi.series is not None: mi.tag_order = { mi.series: self.db.books_in_series_of(id, - index_is_id=True, get_cover=True)} + index_is_id=True)} ans.append(mi) return ans From a42269e95d677be7ccf66d6aa36f9f600c7f3416 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 1 Jan 2010 11:31:53 -0700 Subject: [PATCH 4/4] ... --- src/calibre/gui2/device.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index b07d8fab8e..ec91e70257 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -715,7 +715,7 @@ class DeviceGUI(object): prefix = ascii_filename(prefix) names.append('%s_%d%s'%(prefix, id, os.path.splitext(f.name)[1])) - if mi.cover and os.path.access(mi.cover, os.R_OK): + if mi.cover and os.access(mi.cover, os.R_OK): mi.thumbnail = self.cover_to_thumbnail(open(mi.cover, 'rb').read()) dynamic.set('news_to_be_synced', set([])) @@ -752,7 +752,7 @@ class DeviceGUI(object): metadata = self.library_view.model().metadata_for(ids) ids = iter(ids) for mi in metadata: - if mi.cover and os.path.access(mi.cover, os.R_OK): + if mi.cover and os.access(mi.cover, os.R_OK): mi.thumbnail = self.cover_to_thumbnail(open(mi.cover, 'rb').read()) imetadata = iter(metadata)