diff --git a/src/calibre/ebooks/fb2/fb2ml.py b/src/calibre/ebooks/fb2/fb2ml.py index 5df3970577..11a718886f 100644 --- a/src/calibre/ebooks/fb2/fb2ml.py +++ b/src/calibre/ebooks/fb2/fb2ml.py @@ -57,18 +57,18 @@ class FB2MLizer(object): output += self.fb2mlize_images() output += self.fb2_footer() output = self.clean_text(output) - return etree.tostring(etree.fromstring(output), encoding=unicode, pretty_print=True) + return u'\n%s' % etree.tostring(etree.fromstring(output), encoding=unicode, pretty_print=True) def fb2_header(self): return u' ' \ - '%s ' \ + 'xmlns="http://www.gribuser.ru/xml/fictionbook/2.0">\n' \ + '\n%s ' \ ' ' \ - '%s - %s ' \ - '
' % (self.oeb_book.metadata.title[0].value, __appname__, __version__) + '%s - %s\n' \ + '\n\n
' % (self.oeb_book.metadata.title[0].value, __appname__, __version__) def fb2_body_footer(self): - return u'
' + return u'\n
\n' def fb2_footer(self): return u'
' @@ -77,8 +77,17 @@ class FB2MLizer(object): images = u'' for item in self.oeb_book.manifest: if item.media_type in OEB_IMAGES: - data = b64encode(item.data) - images += '%s' % (os.path.basename(item.href), item.media_type, data) + raw_data = b64encode(item.data) + # Don't put the encoded image on a single line. + data = '' + col = 1 + for char in raw_data: + if col == 72: + data += '\n' + col = 1 + col += 1 + data += char + images += '%s\n' % (os.path.basename(item.href), item.media_type, data) return images def clean_text(self, text): @@ -102,7 +111,7 @@ class FB2MLizer(object): tag_count = 0 if tag == 'img': - fb2_text += '' % os.path.basename(elem.attrib['src']) + fb2_text += '' % os.path.basename(elem.attrib['src']) fb2_tag = TAG_MAP.get(tag, None) diff --git a/src/calibre/gui2/dialogs/metadata_single.py b/src/calibre/gui2/dialogs/metadata_single.py index 9d698bd689..465e7e6667 100644 --- a/src/calibre/gui2/dialogs/metadata_single.py +++ b/src/calibre/gui2/dialogs/metadata_single.py @@ -230,7 +230,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.cpixmap = None self.cover.setAcceptDrops(True) self.pubdate.setMinimumDate(QDate(100,1,1)) - self.connect(self.cover, SIGNAL('cover_changed()'), self.cover_dropped) + self.connect(self.cover, SIGNAL('cover_changed(PyQt_PyObject)'), self.cover_dropped) QObject.connect(self.cover_button, SIGNAL("clicked(bool)"), \ self.select_cover) QObject.connect(self.add_format_button, SIGNAL("clicked(bool)"), \ @@ -321,7 +321,7 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog): self.authors.setText(title) self.author_sort.setText('') - def cover_dropped(self): + def cover_dropped(self, paths): self.cover_changed = True self.cover_data = self.cover.cover_data diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 0457f6db6e..9b5780d0b8 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -142,7 +142,7 @@ class ImageView(QLabel): self.setPixmap(pmap) event.accept() self.cover_data = open(path, 'rb').read() - self.emit(SIGNAL('cover_changed()'), paths, Qt.QueuedConnection) + self.emit(SIGNAL('cover_changed(PyQt_PyObject)'), paths) break def dragMoveEvent(self, event):