diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-06-13 03:39:58 +0000 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2014-06-13 03:39:58 +0000 |
commit | 942111e62628e9a5c4729563215b1cfb8911735e (patch) | |
tree | e4353fedfae47ad14ee828b6619ed9d2dd0f4317 /community/wkhtmltopdf/0002-fix-compilation-failures-when-not-building-with-patc.patch | |
parent | 4117cddc8a79bfdd61c7c5708b957be92775d67b (diff) |
Fri Jun 13 03:35:59 UTC 2014
Diffstat (limited to 'community/wkhtmltopdf/0002-fix-compilation-failures-when-not-building-with-patc.patch')
-rw-r--r-- | community/wkhtmltopdf/0002-fix-compilation-failures-when-not-building-with-patc.patch | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/community/wkhtmltopdf/0002-fix-compilation-failures-when-not-building-with-patc.patch b/community/wkhtmltopdf/0002-fix-compilation-failures-when-not-building-with-patc.patch new file mode 100644 index 000000000..e71155ff3 --- /dev/null +++ b/community/wkhtmltopdf/0002-fix-compilation-failures-when-not-building-with-patc.patch @@ -0,0 +1,233 @@ +From ef708c2adb31062d73506917f03fd5e942594d33 Mon Sep 17 00:00:00 2001 +From: Ashish Kulkarni <kulkarni.ashish@gmail.com> +Date: Sat, 15 Mar 2014 11:42:11 +0530 +Subject: [PATCH 2/2] fix compilation failures when not building with patched + QT/WebKit + +Apparently, no one uses the plain vanilla build as no one reported +any issue for a long time. This will get it to compile and work at +least for a sample page. + +Conflicts: + src/lib/pdfconverter.cc +--- + src/lib/pdfconverter.cc | 33 +++++++++++++++++++++++++++------ + src/lib/pdfconverter_p.hh | 14 +++++++++----- + 2 files changed, 36 insertions(+), 11 deletions(-) + +diff --git a/src/lib/pdfconverter.cc b/src/lib/pdfconverter.cc +index b227c87..f883a00 100644 +--- a/src/lib/pdfconverter.cc ++++ b/src/lib/pdfconverter.cc +@@ -78,9 +78,9 @@ bool DLL_LOCAL looksLikeHtmlAndNotAUrl(QString str) { + + PdfConverterPrivate::PdfConverterPrivate(PdfGlobal & s, PdfConverter & o) : + settings(s), pageLoader(s.load), +- out(o), printer(0), painter(0), webPrinter(0) ++ out(o), printer(0), painter(0) + #ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ +- , measuringHFLoader(s.load), hfLoader(s.load), tocLoader1(s.load), tocLoader2(s.load) ++ , webPrinter(0), measuringHFLoader(s.load), hfLoader(s.load), tocLoader1(s.load), tocLoader2(s.load) + , tocLoader(&tocLoader1), tocLoaderOld(&tocLoader2) + , outline(0), currentHeader(0), currentFooter(0) + #endif +@@ -151,13 +151,15 @@ void PdfConverterPrivate::beginConvert() { + fail(); + return; + } +-#endif ++#else + bool headerHeightsCalcNeeded = false; ++#endif + + for (QList<PageObject>::iterator i=objects.begin(); i != objects.end(); ++i) { + PageObject & o=*i; + settings::PdfObject & s = o.settings; + ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + if (!s.header.htmlUrl.isEmpty() ) { + if (looksLikeHtmlAndNotAUrl(s.header.htmlUrl)) { + emit out.error("--header-html should be a URL and not a string containing HTML code."); +@@ -195,6 +197,7 @@ void PdfConverterPrivate::beginConvert() { + o.footerReserveHeight = settings.margin.bottom.first + s.footer.spacing; + } + } ++#endif + + if (!s.isTableOfContent) { + o.loaderObject = pageLoader.addResource(s.page, s.load, &o.data); +@@ -207,6 +210,7 @@ void PdfConverterPrivate::beginConvert() { + emit out.phaseChanged(); + loadProgress(0); + ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + if (headerHeightsCalcNeeded) { + // preload header/footer to check their heights + measuringHFLoader.load(); +@@ -225,8 +229,12 @@ void PdfConverterPrivate::beginConvert() { + + pageLoader.load(); + } ++#else ++ pageLoader.load(); ++#endif + } + ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + // calculates header/footer height + // returns millimeters + qreal PdfConverterPrivate::calculateHeaderHeight(PageObject & object, QWebPage & header) { +@@ -252,6 +260,8 @@ qreal PdfConverterPrivate::calculateHeaderHeight(PageObject & object, QWebPage & + return (height / PdfConverter::millimeterToPointMultiplier); + } + ++#endif ++ + QPrinter * PdfConverterPrivate::createPrinter(const QString & tempFile) { + QPrinter * printer = new QPrinter(settings.resolution); + if (settings.dpi != -1) printer->setResolution(settings.dpi); +@@ -275,6 +285,7 @@ QPrinter * PdfConverterPrivate::createPrinter(const QString & tempFile) { + return printer; + } + ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + void PdfConverterPrivate::preprocessPage(PageObject & obj) { + currentObject++; + if (obj.settings.isTableOfContent) { +@@ -309,7 +320,7 @@ void PdfConverterPrivate::preprocessPage(PageObject & obj) { + outline->addEmptyWebPage(); + painter->restore(); + } +- ++#endif + + /*! + * Prepares printing out the document to the pdf file +@@ -353,9 +364,15 @@ void PdfConverterPrivate::pagesLoaded(bool ok) { + } + + //Setup margins and papersize ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + printer->setPageMargins(settings.margin.left.first, objects[0].headerReserveHeight, + settings.margin.right.first, objects[0].footerReserveHeight, + settings.margin.left.second); ++#else ++ printer->setPageMargins(settings.margin.left.first, settings.margin.top.first, ++ settings.margin.right.first, settings.margin.bottom.first, ++ settings.margin.left.second); ++#endif + + if ((settings.size.height.first != -1) && (settings.size.width.first != -1)) { + printer->setPaperSize(QSizeF(settings.size.width.first,settings.size.height.first), settings.size.height.second); +@@ -656,7 +673,6 @@ void PdfConverterPrivate::endPage(PageObject & object, bool hasHeaderFooter, int + } + + } +-#endif + + void PdfConverterPrivate::handleTocPage(PageObject & obj) { + painter->save(); +@@ -670,6 +686,7 @@ void PdfConverterPrivate::handleTocPage(PageObject & obj) { + tocChanged = outline->replaceWebPage(obj.number, obj.settings.toc.captionText, wp, obj.page->mainFrame(), obj.settings, obj.localLinks, obj.anchors) || tocChanged; + painter->restore(); + } ++#endif + + + void PdfConverterPrivate::tocLoaded(bool ok) { +@@ -731,6 +748,7 @@ void PdfConverterPrivate::measuringHeadersLoaded(bool ok) { + return; + } + ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + for (int d=0; d < objects.size(); ++d) { + PageObject & obj = objects[d]; + if (obj.measuringHeader) { +@@ -743,6 +761,7 @@ void PdfConverterPrivate::measuringHeadersLoaded(bool ok) { + obj.footerReserveHeight = calculateHeaderHeight(obj, *obj.measuringFooter) + obj.settings.header.spacing; + } + } ++#endif + + pageLoader.load(); + } +@@ -758,6 +777,7 @@ void PdfConverterPrivate::headersLoaded(bool ok) { + printDocument(); + } + ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + + void PdfConverterPrivate::spoolPage(int page) { + progressString = QString("Page ") + QString::number(actualPage) + QString(" of ") + QString::number(actualPages); +@@ -904,7 +924,8 @@ void PdfConverterPrivate::endPrintObject(PageObject & obj) { + } + + } +- ++ ++#endif + + void PdfConverterPrivate::printDocument() { + #ifndef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ +diff --git a/src/lib/pdfconverter_p.hh b/src/lib/pdfconverter_p.hh +index 2cfa441..3679673 100644 +--- a/src/lib/pdfconverter_p.hh ++++ b/src/lib/pdfconverter_p.hh +@@ -94,8 +94,11 @@ public: + } + + PageObject(const settings::PdfObject & set, const QString * d=NULL): +- settings(set), loaderObject(0), page(0), headerReserveHeight(0), footerReserveHeight(0), +- measuringHeader(0), measuringFooter(0) { ++ settings(set), loaderObject(0), page(0) ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ ++ , headerReserveHeight(0), footerReserveHeight(0), measuringHeader(0), measuringFooter(0) ++#endif ++ { + if (d) data=*d; + }; + +@@ -134,6 +137,7 @@ private: + bool tocChanged; + int actualPage; + int pageNumber; ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + QWebPrinter * webPrinter; + int objectPage; + +@@ -144,7 +148,6 @@ private: + QHash<int, QVector<QWebElement> > pageFormElements; + bool pageHasHeaderFooter; + +-#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + // loader for measuringHeader and measuringFooter + MultiPageLoader measuringHFLoader; + +@@ -163,14 +166,14 @@ private: + void fillParms(QHash<QString, QString> & parms, int page, const PageObject & object); + QString hfreplace(const QString & q, const QHash<QString, QString> & parms); + QWebPage * loadHeaderFooter(QString url, const QHash<QString, QString> & parms, const settings::PdfObject & ps); +- ++ qreal calculateHeaderHeight(PageObject & object, QWebPage & header); + + #endif + QWebPage * currentHeader; + QWebPage * currentFooter; +- qreal calculateHeaderHeight(PageObject & object, QWebPage & header); + QPrinter * createPrinter(const QString & tempFile); + ++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__ + void handleTocPage(PageObject & obj); + void preprocessPage(PageObject & obj); + void spoolPage(int page); +@@ -179,6 +182,7 @@ private: + void handleFooter(QWebPage * frame, int page); + void beginPrintObject(PageObject & obj); + void endPrintObject(PageObject & obj); ++#endif + + void loadTocs(); + void loadHeaders(); +-- +2.0.0 + |