mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Drag and drop copies only a single format to OS instead of the whole book dir
This commit is contained in:
parent
8a42eebbd9
commit
09437134ba
@ -465,8 +465,25 @@ class BooksView(QTableView): # {{{
|
|||||||
ids = ' '.join(map(str, selected))
|
ids = ' '.join(map(str, selected))
|
||||||
md = QMimeData()
|
md = QMimeData()
|
||||||
md.setData('application/calibre+from_library', ids)
|
md.setData('application/calibre+from_library', ids)
|
||||||
md.setUrls([QUrl.fromLocalFile(db.abspath(i, index_is_id=True))
|
fmt = prefs['output_format']
|
||||||
for i in selected])
|
|
||||||
|
def url_for_id(i):
|
||||||
|
ans = db.format_abspath(i, fmt, index_is_id=True)
|
||||||
|
if ans is None:
|
||||||
|
fmts = db.formats(i, index_is_id=True)
|
||||||
|
if fmts:
|
||||||
|
fmts = fmts.split(',')
|
||||||
|
else:
|
||||||
|
fmts = []
|
||||||
|
for f in fmts:
|
||||||
|
ans = db.format_abspath(i, f, index_is_id=True)
|
||||||
|
if ans is not None:
|
||||||
|
break
|
||||||
|
if ans is None:
|
||||||
|
ans = db.abspath(i, index_is_id=True)
|
||||||
|
return QUrl.fromLocalFile(ans)
|
||||||
|
|
||||||
|
md.setUrls([url_for_id(i) for i in selected])
|
||||||
drag = QDrag(self)
|
drag = QDrag(self)
|
||||||
drag.setMimeData(md)
|
drag.setMimeData(md)
|
||||||
cover = self.drag_icon(m.cover(self.currentIndex().row()),
|
cover = self.drag_icon(m.cover(self.currentIndex().row()),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user