Git commit 868f8db03a0e3eb4e5dd60958c0ae5d1b751f189 by Inge Wallin. Committed on 31/07/2012 at 23:04. Pushed by ingwa into branch 'export-epub-moji'. Break out generation of HTML head into its own function M +2 -0 filters/words/epub/exportepub2.cpp M +46 -31 filters/words/epub/htmlconvert.cpp http://commits.kde.org/calligra/868f8db03a0e3eb4e5dd60958c0ae5d1b751f189 diff --git a/filters/words/epub/exportepub2.cpp b/filters/words/epub/export= epub2.cpp index 72da396..4342ddd 100644 --- a/filters/words/epub/exportepub2.cpp +++ b/filters/words/epub/exportepub2.cpp @@ -117,6 +117,8 @@ KoFilter::ConversionStatus ExportEpub2::convert(const Q= ByteArray &from, const QB bool moreFiles =3D false; QString prefix =3D "body"; // FIXME: Change to "chapter". Beware of= hardcoded "body" here and there. while (1) { + // first: conversion status. Must be OK, otherwise we break off th= e process + // second: true if there is more to convert QPair pair =3D convertContent(odfStore, m_meta, &epub, htmlContent , m_pBreakStylesList, startNode, moreFiles); diff --git a/filters/words/epub/htmlconvert.cpp b/filters/words/epub/htmlco= nvert.cpp index e50e6f0..5b69ec7 100644 --- a/filters/words/epub/htmlconvert.cpp +++ b/filters/words/epub/htmlconvert.cpp @@ -38,6 +38,10 @@ #include "libepub/EpubFile.h" = = +static void createHtmlHead(KoXmlWriter *writer, QHash &m= etaData); + + + KoFilter::ConversionStatus stylesParse(KoStore *odfStore, QHash > &st= yles, QHash &stylesInUs= e, QList &breakBeforeStylesList) @@ -373,38 +377,8 @@ QPair convertContent= (KoStore *odfStore, QHash< KoXmlWriter *bodyWriter =3D new KoXmlWriter(&outBuf); = bodyWriter->startElement("html"); - bodyWriter->addAttribute("xmlns", "http://www.w3.org/1999/xhtml"); - bodyWriter->startElement("head"); - - bodyWriter->startElement("title"); - bodyWriter->addTextNode(metaData.value("title")); - bodyWriter->endElement(); // title = - bodyWriter->startElement("meta"); - bodyWriter->addAttribute("http-equiv", "Content-Type"); - bodyWriter->addAttribute("content", "text/html; charset=3Dutf-8"); - bodyWriter->endElement(); // meta - - // write meta tag - // m-meta - // - - metaData.remove("title"); - - foreach (QString name, metaData.keys() ) { - bodyWriter->startElement("meta"); - bodyWriter->addAttribute("name", name); - bodyWriter->addAttribute("content", metaData.value(name)); - bodyWriter->endElement(); // meta - } - - bodyWriter->startElement("link"); - bodyWriter->addAttribute("href", "styleSheet.css"); - bodyWriter->addAttribute("type", "text/css"); - bodyWriter->addAttribute("rel", "stylesheet"); - bodyWriter->endElement(); // link - - bodyWriter->endElement(); // head + createHtmlHead(bodyWriter, metaData); = // ---------------------------------------------------------------- // Parse body from content.xml @@ -698,3 +672,44 @@ QPair convertContent= (KoStore *odfStore, QHash< odfStore->close(); return qMakePair(KoFilter::OK, false); } + + +void createHtmlHead(KoXmlWriter *writer, QHash &metaData) +{ + writer->addAttribute("xmlns", "http://www.w3.org/1999/xhtml"); + writer->startElement("head"); + + writer->startElement("title"); + writer->addTextNode(metaData.value("title")); + writer->endElement(); // title + + writer->startElement("meta"); + writer->addAttribute("http-equiv", "Content-Type"); + writer->addAttribute("content", "text/html; charset=3Dutf-8"); + writer->endElement(); // meta + + // write meta tag + // m-meta + // + + //metaData.remove("title"); + + foreach (QString name, metaData.keys() ) { + // Title is handled above. + if (name =3D=3D "title") + continue; + + writer->startElement("meta"); + writer->addAttribute("name", name); + writer->addAttribute("content", metaData.value(name)); + writer->endElement(); // meta + } + + writer->startElement("link"); + writer->addAttribute("href", "styleSheet.css"); + writer->addAttribute("type", "text/css"); + writer->addAttribute("rel", "stylesheet"); + writer->endElement(); // link + + writer->endElement(); // head +}