diff options
-rw-r--r-- | src/core/print_view_manager_qt.cpp | 6 | ||||
-rw-r--r-- | src/core/web_engine_settings.cpp | 2 | ||||
-rw-r--r-- | src/core/web_engine_settings.h | 3 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings.cpp | 21 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginesettings_p.h | 4 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginesettings.cpp | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginesettings.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc | 3 |
8 files changed, 42 insertions, 3 deletions
diff --git a/src/core/print_view_manager_qt.cpp b/src/core/print_view_manager_qt.cpp index bb01f531c..26a6c2682 100644 --- a/src/core/print_view_manager_qt.cpp +++ b/src/core/print_view_manager_qt.cpp @@ -50,7 +50,9 @@ #include "chrome/browser/printing/print_job_manager.h" #include "chrome/browser/printing/printer_query.h" #include "components/printing/common/print_messages.h" +#include "content/browser/renderer_host/render_view_host_impl.h" #include "content/public/browser/browser_thread.h" +#include "content/public/common/web_preferences.h" #include "printing/pdf_metafile_skia.h" #include "printing/print_job_constants.h" @@ -125,7 +127,7 @@ static base::DictionaryValue *createPrintSettings() printSettings->SetBoolean(printing::kSettingPreviewModifiable, false); printSettings->SetBoolean(printing::kSettingShouldPrintSelectionOnly, false); - printSettings->SetBoolean(printing::kSettingShouldPrintBackgrounds, false); + printSettings->SetBoolean(printing::kSettingShouldPrintBackgrounds, true); printSettings->SetBoolean(printing::kSettingHeaderFooterEnabled, false); printSettings->SetString(printing::kSettingDeviceName, ""); printSettings->SetInteger(printing::kPreviewUIID, 12345678); @@ -210,6 +212,8 @@ bool PrintViewManagerQt::PrintToPDFInternal(const QPageLayout &pageLayout, bool m_printSettings->SetInteger(printing::kSettingColor, printInColor ? printing::COLOR : printing::GRAYSCALE); applyQPageLayoutSettingsToDictionary(pageLayout, *m_printSettings); + m_printSettings->SetBoolean(printing::kSettingShouldPrintBackgrounds + , web_contents()->GetRenderViewHost()->GetWebkitPreferences().should_print_backgrounds); return Send(new PrintMsg_InitiatePrintPreview(routing_id(), false)); } diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp index a706b860e..754fa2f51 100644 --- a/src/core/web_engine_settings.cpp +++ b/src/core/web_engine_settings.cpp @@ -238,6 +238,7 @@ void WebEngineSettings::initDefaults(bool offTheRecord) s_defaultAttributes.insert(AutoLoadIconsForPage, true); s_defaultAttributes.insert(TouchIconsEnabled, false); s_defaultAttributes.insert(FocusOnNavigationEnabled, true); + s_defaultAttributes.insert(PrintElementBackgrounds, true); } if (offTheRecord) m_attributes.insert(LocalStorageEnabled, false); @@ -313,6 +314,7 @@ void WebEngineSettings::applySettingsToWebPreferences(content::WebPreferences *p prefs->fullscreen_supported = testAttribute(FullScreenSupportEnabled); prefs->accelerated_2d_canvas_enabled = testAttribute(Accelerated2dCanvasEnabled); prefs->experimental_webgl_enabled = testAttribute(WebGLEnabled); + prefs->should_print_backgrounds = testAttribute(PrintElementBackgrounds); // Fonts settings. prefs->standard_font_family_map[content::kCommonScript] = toString16(fontFamily(StandardFont)); diff --git a/src/core/web_engine_settings.h b/src/core/web_engine_settings.h index 55e659b53..31f2198b8 100644 --- a/src/core/web_engine_settings.h +++ b/src/core/web_engine_settings.h @@ -80,7 +80,8 @@ public: Accelerated2dCanvasEnabled, AutoLoadIconsForPage, TouchIconsEnabled, - FocusOnNavigationEnabled + FocusOnNavigationEnabled, + PrintElementBackgrounds }; // Must match the values from the public API in qwebenginesettings.h. diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp index a69db0554..2393f877a 100644 --- a/src/webengine/api/qquickwebenginesettings.cpp +++ b/src/webengine/api/qquickwebenginesettings.cpp @@ -318,6 +318,19 @@ bool QQuickWebEngineSettings::focusOnNavigationEnabled() const } /*! + \qmlproperty bool WebEngineSettings::printElementBackgrounds + \since QtWebEngine 1.4 + + Turns on printing of CSS backgrounds when printing to PDF. + + Enabled by default. +*/ +bool QQuickWebEngineSettings::printElementBackgrounds() const +{ + return d_ptr->testAttribute(WebEngineSettings::PrintElementBackgrounds); +} + +/*! \qmlproperty QString WebEngineSettings::defaultTextEncoding \since QtWebEngine 1.2 @@ -478,6 +491,14 @@ void QQuickWebEngineSettings::setTouchIconsEnabled(bool on) Q_EMIT touchIconsEnabledChanged(); } +void QQuickWebEngineSettings::setPrintElementBackgrounds(bool on) +{ + bool wasOn = d_ptr->testAttribute(WebEngineSettings::PrintElementBackgrounds); + d_ptr->setAttribute(WebEngineSettings::PrintElementBackgrounds, on); + if (wasOn != on) + Q_EMIT printElementBackgroundsChanged(); +} + void QQuickWebEngineSettings::setDefaultTextEncoding(QString encoding) { const QString oldDefaultTextEncoding = d_ptr->defaultTextEncoding(); diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h index 2675630f8..917b9e443 100644 --- a/src/webengine/api/qquickwebenginesettings_p.h +++ b/src/webengine/api/qquickwebenginesettings_p.h @@ -83,6 +83,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject { Q_PROPERTY(bool autoLoadIconsForPage READ autoLoadIconsForPage WRITE setAutoLoadIconsForPage NOTIFY autoLoadIconsForPageChanged REVISION 2) Q_PROPERTY(bool touchIconsEnabled READ touchIconsEnabled WRITE setTouchIconsEnabled NOTIFY touchIconsEnabledChanged REVISION 2) Q_PROPERTY(bool focusOnNavigationEnabled READ focusOnNavigationEnabled WRITE setFocusOnNavigationEnabled NOTIFY focusOnNavigationEnabledChanged REVISION 3) + Q_PROPERTY(bool printElementBackgrounds READ printElementBackgrounds WRITE setPrintElementBackgrounds NOTIFY printElementBackgroundsChanged REVISION 3) public: ~QQuickWebEngineSettings(); @@ -107,6 +108,7 @@ public: bool autoLoadIconsForPage() const; bool touchIconsEnabled() const; bool focusOnNavigationEnabled() const; + bool printElementBackgrounds() const; void setAutoLoadImages(bool on); void setJavascriptEnabled(bool on); @@ -128,6 +130,7 @@ public: void setAutoLoadIconsForPage(bool on); void setTouchIconsEnabled(bool on); void setFocusOnNavigationEnabled(bool on); + void setPrintElementBackgrounds(bool on); signals: void autoLoadImagesChanged(); @@ -150,6 +153,7 @@ signals: Q_REVISION(2) void autoLoadIconsForPageChanged(); Q_REVISION(2) void touchIconsEnabledChanged(); Q_REVISION(3) void focusOnNavigationEnabledChanged(); + Q_REVISION(3) void printElementBackgroundsChanged(); private: explicit QQuickWebEngineSettings(QQuickWebEngineSettings *parentSettings = 0); diff --git a/src/webenginewidgets/api/qwebenginesettings.cpp b/src/webenginewidgets/api/qwebenginesettings.cpp index dbc6a0e9b..f14aa9352 100644 --- a/src/webenginewidgets/api/qwebenginesettings.cpp +++ b/src/webenginewidgets/api/qwebenginesettings.cpp @@ -91,6 +91,9 @@ static WebEngineSettings::Attribute toWebEngineAttribute(QWebEngineSettings::Web return WebEngineSettings::TouchIconsEnabled; case QWebEngineSettings::FocusOnNavigationEnabled: return WebEngineSettings::FocusOnNavigationEnabled; + case QWebEngineSettings::PrintElementBackgrounds: + return WebEngineSettings::PrintElementBackgrounds; + default: return WebEngineSettings::UnsupportedInCoreSettings; } diff --git a/src/webenginewidgets/api/qwebenginesettings.h b/src/webenginewidgets/api/qwebenginesettings.h index fb7fcfee5..23a1d5c99 100644 --- a/src/webenginewidgets/api/qwebenginesettings.h +++ b/src/webenginewidgets/api/qwebenginesettings.h @@ -86,7 +86,8 @@ public: Accelerated2dCanvasEnabled, AutoLoadIconsForPage, TouchIconsEnabled, - FocusOnNavigationEnabled + FocusOnNavigationEnabled, + PrintElementBackgrounds }; enum FontSize { diff --git a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc index 5bea28f55..80927ec8f 100644 --- a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc @@ -151,6 +151,9 @@ (load, stop, reload, reload and bypass cache, forward, backward, set content, and so on). Enabled by default. (Added in Qt 5.8) + \value PrintElementBackgrounds + Turns on printing of CSS backgrounds when printing to PDF. + Enabled by default. (Added in Qt 5.8) */ /*! |