diff --git a/src/calibre/ebooks/pdf/pdftohtml.py b/src/calibre/ebooks/pdf/pdftohtml.py
index 4ac1d0e368..4aa0953738 100644
--- a/src/calibre/ebooks/pdf/pdftohtml.py
+++ b/src/calibre/ebooks/pdf/pdftohtml.py
@@ -13,7 +13,7 @@ from functools import partial
from calibre.ebooks import ConversionError, DRMError
from calibre.ptempfile import PersistentTemporaryFile
-from calibre import isosx, iswindows, islinux, isfreebsd
+from calibre.constants import isosx, iswindows, islinux, isfreebsd
from calibre import CurrentDir
PDFTOHTML = 'pdftohtml'
@@ -43,6 +43,8 @@ def pdftohtml(output_dir, pdf_path, no_images):
# This is neccessary as pdftohtml doesn't always (linux) respect absolute paths
pdf_path = os.path.abspath(pdf_path)
cmd = [PDFTOHTML, '-enc', 'UTF-8', '-noframes', '-p', '-nomerge', '-nodrm', '-q', pdf_path, os.path.basename(index)]
+ if isfreebsd:
+ cmd.remove('-nodrm')
if no_images:
cmd.append('-i')
diff --git a/src/calibre/gui2/layout.py b/src/calibre/gui2/layout.py
index 9a6148eb7b..a7ae479eb4 100644
--- a/src/calibre/gui2/layout.py
+++ b/src/calibre/gui2/layout.py
@@ -238,7 +238,7 @@ class Spacer(QWidget): # {{{
self.l.addStretch(10)
# }}}
-class MenuAction(QAction):
+class MenuAction(QAction): # {{{
def __init__(self, clone, parent):
QAction.__init__(self, clone.text(), parent)
@@ -247,7 +247,7 @@ class MenuAction(QAction):
def clone_changed(self):
self.setText(self.clone.text())
-
+# }}}
class MenuBar(QMenuBar): # {{{
diff --git a/src/calibre/gui2/metadata/single_download.py b/src/calibre/gui2/metadata/single_download.py
index 176c164d3d..7fa052844f 100644
--- a/src/calibre/gui2/metadata/single_download.py
+++ b/src/calibre/gui2/metadata/single_download.py
@@ -398,12 +398,24 @@ class IdentifyWidget(QWidget): # {{{
self.abort.set()
# }}}
-class FullFetch(QDialog): # {{{
+class CoverWidget(QWidget): # {{{
def __init__(self, log, parent=None):
- QDialog.__init__(self, parent)
+ QWidget.__init__(self, parent)
self.log = log
+ def start(self, book, current_cover, title, authors):
+ self.book, self.current_cover = book, current_cover
+ self.title, self.authors = title, authors
+ self.log('\n\nStarting cover download for:', book.title)
+# }}}
+
+class FullFetch(QDialog): # {{{
+
+ def __init__(self, log, current_cover=None, parent=None):
+ QDialog.__init__(self, parent)
+ self.log, self.current_cover = log, current_cover
+
self.setWindowTitle(_('Downloading metadata...'))
self.setWindowIcon(QIcon(I('metadata.png')))
@@ -428,12 +440,19 @@ class FullFetch(QDialog): # {{{
self.identify_widget.results_found.connect(self.identify_results_found)
self.identify_widget.book_selected.connect(self.book_selected)
self.stack.addWidget(self.identify_widget)
+
+ self.cover_widget = CoverWidget(self.log, parent=self)
+ self.stack.addWidget(self.cover_widget)
+
self.resize(850, 500)
def book_selected(self, book):
- print (book)
self.next_button.setVisible(False)
self.ok_button.setVisible(True)
+ self.book = book
+ self.stack.setCurrentIndex(1)
+ self.cover_widget.start(book, self.current_cover,
+ self.title, self.authors)
def accept(self):
# Prevent the usual dialog accept mechanisms from working
@@ -453,6 +472,7 @@ class FullFetch(QDialog): # {{{
pass
def start(self, title=None, authors=None, identifiers={}):
+ self.title, self.authors = title, authors
self.identify_widget.start(title=title, authors=authors,
identifiers=identifiers)
self.exec_()