mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
GUI: Convert, use book_ids when possible.
This commit is contained in:
parent
970430c40f
commit
3c045737da
@ -612,23 +612,23 @@ class DeviceGUI(object):
|
|||||||
|
|
||||||
|
|
||||||
def sync_to_device(self, on_card, delete_from_library,
|
def sync_to_device(self, on_card, delete_from_library,
|
||||||
specific_format=None, send_rows=None, do_auto_convert=True):
|
specific_format=None, send_ids=None, do_auto_convert=True):
|
||||||
rows = self.library_view.selectionModel().selectedRows() if send_rows is None else send_rows
|
ids = [self.library_view.model().id(r) for r in self.library_view.selectionModel().selectedRows()] if send_ids is None else send_ids
|
||||||
if not self.device_manager or not rows or len(rows) == 0:
|
if not self.device_manager or not ids or len(ids) == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
_files, _auto_rows = self.library_view.model().get_preferred_formats(rows,
|
_files, _auto_ids = self.library_view.model().get_preferred_formats_from_ids(ids,
|
||||||
self.device_manager.device_class.settings().format_map,
|
self.device_manager.device_class.settings().format_map,
|
||||||
paths=True, set_metadata=True,
|
paths=True, set_metadata=True,
|
||||||
specific_format=specific_format,
|
specific_format=specific_format,
|
||||||
exclude_auto=do_auto_convert)
|
exclude_auto=do_auto_convert)
|
||||||
if do_auto_convert:
|
if do_auto_convert:
|
||||||
rows = list(set(rows).difference(_auto_rows))
|
ids = list(set(ids).difference(_auto_ids))
|
||||||
else:
|
else:
|
||||||
_auto_rows = []
|
_auto_ids = []
|
||||||
|
|
||||||
ids = iter(self.library_view.model().id(r) for r in rows)
|
ids = iter(ids)
|
||||||
metadata = self.library_view.model().get_metadata(rows)
|
metadata = self.library_view.model().get_metadata(ids, True)
|
||||||
for mi in metadata:
|
for mi in metadata:
|
||||||
cdata = mi['cover']
|
cdata = mi['cover']
|
||||||
if cdata:
|
if cdata:
|
||||||
@ -662,8 +662,8 @@ class DeviceGUI(object):
|
|||||||
self.status_bar.showMessage(_('Sending books to device.'), 5000)
|
self.status_bar.showMessage(_('Sending books to device.'), 5000)
|
||||||
|
|
||||||
auto = []
|
auto = []
|
||||||
if _auto_rows != []:
|
if _auto_ids != []:
|
||||||
for row in _auto_rows:
|
for row in _auto_ids:
|
||||||
if specific_format == None:
|
if specific_format == None:
|
||||||
formats = [f.lower() for f in self.library_view.model().db.formats(row).split(',')]
|
formats = [f.lower() for f in self.library_view.model().db.formats(row).split(',')]
|
||||||
formats = formats if formats != None else []
|
formats = formats if formats != None else []
|
||||||
@ -687,8 +687,7 @@ class DeviceGUI(object):
|
|||||||
format = fmt
|
format = fmt
|
||||||
break
|
break
|
||||||
d.exec_()
|
d.exec_()
|
||||||
_auto_rows = [self.library_view.model().db.id(r) for r in _auto_rows]
|
self.auto_convert(_auto_ids, on_card, format)
|
||||||
self.auto_convert(_auto_rows, on_card, format)
|
|
||||||
|
|
||||||
if bad:
|
if bad:
|
||||||
bad = '\n'.join('<li>%s</li>'%(i,) for i in bad)
|
bad = '\n'.join('<li>%s</li>'%(i,) for i in bad)
|
||||||
|
@ -1055,8 +1055,7 @@ class Main(MainWindow, Ui_MainWindow, DeviceGUI):
|
|||||||
current = self.library_view.currentIndex()
|
current = self.library_view.currentIndex()
|
||||||
self.library_view.model().current_changed(current, QModelIndex())
|
self.library_view.model().current_changed(current, QModelIndex())
|
||||||
|
|
||||||
r = self.library_view.model().index(self.library_view.model().db.row(book_id), 0)
|
self.sync_to_device(on_card, False, specific_format=fmt, send_ids=[book_id], do_auto_convert=False)
|
||||||
self.sync_to_device(on_card, False, specific_format=fmt, send_rows=[r], do_auto_convert=False)
|
|
||||||
|
|
||||||
def book_converted(self, job):
|
def book_converted(self, job):
|
||||||
temp_files, fmt, book_id = self.conversion_jobs.pop(job)
|
temp_files, fmt, book_id = self.conversion_jobs.pop(job)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user