summaryrefslogtreecommitdiff
path: root/community/wkhtmltopdf/0002-fix-compilation-failures-when-not-building-with-patc.patch
diff options
context:
space:
mode:
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.patch233
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
+