qtwebengine: add a fix for building demobrowser without printing support

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Martin Jansa
2017-08-19 11:24:55 +02:00
parent 969f1f80bf
commit a0b2220b5e
2 changed files with 247 additions and 0 deletions

View File

@@ -0,0 +1,241 @@
From a8c0deca850ca519b3f146c71492a8f42a33dd84 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=BCri=20Valdmann?= <juri.valdmann@qt.io>
Date: Tue, 20 Jun 2017 15:36:43 +0200
Subject: [PATCH] Always compile QWebEnginePage::print
- Remove two out of five layers of ifdefs around and inside this method.
- Now always compiled but will yield an error if printing is disabled.
- Remove printing-related ifdefs from demobrowser.
Task-number: QTBUG-61510
Change-Id: I79781189d3d3fb62db0a2216b2b989e3fa1d1f86
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
---
examples/webenginewidgets/demobrowser/browsermainwindow.cpp | 12 ------------
examples/webenginewidgets/demobrowser/browsermainwindow.h | 6 ------
examples/webenginewidgets/demobrowser/printtopdfdialog.cpp | 7 -------
src/webenginewidgets/api/qwebenginepage.cpp | 10 ++--------
src/webenginewidgets/api/qwebenginepage.h | 8 --------
5 files changed, 2 insertions(+), 41 deletions(-)
diff --git a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp
index 327d7a9d..14d49f7f 100644
--- a/examples/webenginewidgets/demobrowser/browsermainwindow.cpp
+++ b/examples/webenginewidgets/demobrowser/browsermainwindow.cpp
@@ -109,9 +109,7 @@ BrowserMainWindow::BrowserMainWindow(QWidget *parent, Qt::WindowFlags flags)
, m_historyForward(0)
, m_stop(0)
, m_reload(0)
-#ifndef QT_NO_PRINTER
, m_currentPrinter(nullptr)
-#endif
{
setToolButtonStyle(Qt::ToolButtonFollowStyle);
setAttribute(Qt::WA_DeleteOnClose, true);
@@ -312,9 +310,7 @@ void BrowserMainWindow::setupMenu()
#if defined(QWEBENGINEPAGE_PRINT)
fileMenu->addAction(tr("P&rint Preview..."), this, SLOT(slotFilePrintPreview()));
#endif
-#ifndef QT_NO_PRINTER
fileMenu->addAction(tr("&Print..."), this, SLOT(slotFilePrint()), QKeySequence::Print);
-#endif
fileMenu->addAction(tr("&Print to PDF..."), this, SLOT(slotFilePrintToPDF()));
fileMenu->addSeparator();
@@ -702,23 +698,19 @@ void BrowserMainWindow::slotFileOpen()
void BrowserMainWindow::slotFilePrintPreview()
{
-#ifndef QT_NO_PRINTPREVIEWDIALOG
if (!currentTab())
return;
QPrintPreviewDialog *dialog = new QPrintPreviewDialog(this);
connect(dialog, SIGNAL(paintRequested(QPrinter*)),
currentTab(), SLOT(print(QPrinter*)));
dialog->exec();
-#endif
}
void BrowserMainWindow::slotFilePrint()
{
-#ifndef QT_NO_PRINTER
if (!currentTab())
return;
printRequested(currentTab()->page());
-#endif
}
void BrowserMainWindow::slotHandlePdfPrinted(const QByteArray& result)
@@ -751,7 +743,6 @@ void BrowserMainWindow::slotFilePrintToPDF()
currentTab()->page()->printToPdf(invoke(this, &BrowserMainWindow::slotHandlePdfPrinted), dialog->pageLayout());
}
-#ifndef QT_NO_PRINTER
void BrowserMainWindow::slotHandlePagePrinted(bool result)
{
Q_UNUSED(result);
@@ -763,7 +754,6 @@ void BrowserMainWindow::slotHandlePagePrinted(bool result)
void BrowserMainWindow::printRequested(QWebEnginePage *page)
{
-#ifndef QT_NO_PRINTDIALOG
if (m_currentPrinter)
return;
m_currentPrinter = new QPrinter();
@@ -774,9 +764,7 @@ void BrowserMainWindow::printRequested(QWebEnginePage *page)
return;
}
page->print(m_currentPrinter, invoke(this, &BrowserMainWindow::slotHandlePagePrinted));
-#endif
}
-#endif
void BrowserMainWindow::slotPrivateBrowsing()
{
diff --git a/examples/webenginewidgets/demobrowser/browsermainwindow.h b/examples/webenginewidgets/demobrowser/browsermainwindow.h
index 91e1c1d2..5bbbb292 100644
--- a/examples/webenginewidgets/demobrowser/browsermainwindow.h
+++ b/examples/webenginewidgets/demobrowser/browsermainwindow.h
@@ -56,9 +56,7 @@
#include <QtCore/QUrl>
QT_BEGIN_NAMESPACE
-#ifndef QT_NO_PRINTER
class QPrinter;
-#endif
class QWebEnginePage;
QT_END_NAMESPACE
@@ -142,10 +140,8 @@ private slots:
void slotSwapFocus();
void slotHandlePdfPrinted(const QByteArray&);
-#ifndef QT_NO_PRINTER
void slotHandlePagePrinted(bool result);
void printRequested(QWebEnginePage *page);
-#endif
void geometryChangeRequested(const QRect &geometry);
void updateToolbarActionText(bool visible);
void updateBookmarksToolbarActionText(bool visible);
@@ -180,9 +176,7 @@ private:
QAction *m_restoreLastSession;
QAction *m_addBookmark;
-#ifndef QT_NO_PRINTER
QPrinter *m_currentPrinter;
-#endif
QIcon m_reloadIcon;
QIcon m_stopIcon;
diff --git a/examples/webenginewidgets/demobrowser/printtopdfdialog.cpp b/examples/webenginewidgets/demobrowser/printtopdfdialog.cpp
index 0f3b1765..50a8bb91 100644
--- a/examples/webenginewidgets/demobrowser/printtopdfdialog.cpp
+++ b/examples/webenginewidgets/demobrowser/printtopdfdialog.cpp
@@ -52,10 +52,8 @@
#include "ui_printtopdfdialog.h"
#include <QtCore/QDir>
-#ifndef QT_NO_PRINTER
#include <QtPrintSupport/QPageSetupDialog>
#include <QtPrintSupport/QPrinter>
-#endif // QT_NO_PRINTER
#include <QtWidgets/QFileDialog>
PrintToPdfDialog::PrintToPdfDialog(const QString &filePath, QWidget *parent) :
@@ -66,11 +64,8 @@ PrintToPdfDialog::PrintToPdfDialog(const QString &filePath, QWidget *parent) :
ui->setupUi(this);
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
connect(ui->chooseFilePathButton, &QToolButton::clicked, this, &PrintToPdfDialog::onChooseFilePathButtonClicked);
-#ifndef QT_NO_PRINTER
connect(ui->choosePageLayoutButton, &QToolButton::clicked, this, &PrintToPdfDialog::onChoosePageLayoutButtonClicked);
-#else
ui->choosePageLayoutButton->hide();
-#endif // QT_NO_PRINTER
updatePageLayoutLabel();
setFilePath(filePath);
}
@@ -82,7 +77,6 @@ PrintToPdfDialog::~PrintToPdfDialog()
void PrintToPdfDialog::onChoosePageLayoutButtonClicked()
{
-#ifndef QT_NO_PRINTER
QPrinter printer;
printer.setPageLayout(currentPageLayout);
@@ -92,7 +86,6 @@ void PrintToPdfDialog::onChoosePageLayoutButtonClicked()
currentPageLayout.setPageSize(printer.pageLayout().pageSize());
currentPageLayout.setOrientation(printer.pageLayout().orientation());
updatePageLayoutLabel();
-#endif // QT_NO_PRINTER
}
void PrintToPdfDialog::onChooseFilePathButtonClicked()
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 82720ae3..20d3268c 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -80,11 +80,9 @@
#include <QMenu>
#include <QMessageBox>
#include <QMimeData>
-#if defined(QT_PRINTSUPPORT_LIB)
-#ifndef QT_NO_PRINTER
+#ifdef ENABLE_PRINTING
#include <QPrinter>
-#endif //QT_NO_PRINTER
-#endif //QT_PRINTSUPPORT_LIB
+#endif
#include <QStandardPaths>
#include <QStyle>
#include <QTimer>
@@ -2052,8 +2050,6 @@ void QWebEnginePage::printToPdf(const QWebEngineCallback<const QByteArray&> &res
#endif // if defined(ENABLE_PDF)
}
-#if defined(QT_PRINTSUPPORT_LIB)
-#ifndef QT_NO_PRINTER
/*!
\fn void QWebEnginePage::print(QPrinter *printer, FunctorOrLambda resultCallback)
Renders the current content of the page into a temporary PDF document, then prints it using \a printer.
@@ -2090,8 +2086,6 @@ void QWebEnginePage::print(QPrinter *printer, const QWebEngineCallback<bool> &re
d->m_callbacks.invokeDirectly(resultCallback, false);
#endif // if defined(ENABLE_PDF)
}
-#endif // if defined(QT_NO_PRINTER)
-#endif // if defined(QT_PRINTSUPPORT_LIB)
/*!
\since 5.7
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index c7d5a19e..5619639c 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -55,11 +55,7 @@
QT_BEGIN_NAMESPACE
class QMenu;
-#if defined(QT_PRINTSUPPORT_LIB)
-#ifndef QT_NO_PRINTER
class QPrinter;
-#endif // QT_NO_PRINTER
-#endif // QT_PRINTSUPPORT_LIB
class QWebChannel;
class QWebEngineContextMenuData;
@@ -294,15 +290,11 @@ public:
void printToPdf(const QWebEngineCallback<const QByteArray&> &resultCallback, const QPageLayout &layout = QPageLayout(QPageSize(QPageSize::A4), QPageLayout::Portrait, QMarginsF()));
#endif
-#if defined(QT_PRINTSUPPORT_LIB)
-#ifndef QT_NO_PRINTER
#ifdef Q_QDOC
void print(QPrinter *printer, FunctorOrLambda resultCallback);
#else
void print(QPrinter *printer, const QWebEngineCallback<bool> &resultCallback);
#endif // QDOC
-#endif // QT_NO_PRINTER
-#endif // QT_PRINTSUPPORT_LIB
const QWebEngineContextMenuData &contextMenuData() const;

View File

@@ -129,12 +129,18 @@ RDEPENDS_${PN}-examples += " \
QT_MODULE_BRANCH_CHROMIUM = "56-based"
# Patches from https://github.com/meta-qt5/qtwebengine/commits/b5.9
SRC_URI += " \
${QT_GIT}/qtwebengine-chromium.git;name=chromium;branch=${QT_MODULE_BRANCH_CHROMIUM};protocol=${QT_GIT_PROTOCOL};destsuffix=git/src/3rdparty \
file://0001-functions.prf-allow-build-for-linux-oe-g-platform.patch \
file://0002-WebEngine-qquickwebengineview_p_p.h-add-include-QCol.patch \
file://0003-Include-dependency-to-QCoreApplication-translate.patch \
file://0004-Force-host-toolchain-configuration.patch \
file://0005-Always-compile-QWebEnginePage-print.patch \
"
# Patches from https://github.com/meta-qt5/qtwebengine-chromium/commits/56-based
SRC_URI += " \
file://0001-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch;patchdir=src/3rdparty \
file://0002-chromium-Force-host-toolchain-configuration.patch;patchdir=src/3rdparty \
"