[vlc-devel] [PATCH 2/2] contrib: qtsvg: provide support for fractional scaling

Hugo Beauzée-Luyssen hugo at beauzee.fr
Tue Feb 20 18:05:21 CET 2018


On Tue, Feb 20, 2018, at 5:58 PM, Pierre Lamot wrote:
> ---
>  ...ine-Paint-correct-size-if-device-pixel-ra.patch | 30 +++++++++++++++
> +++++++
>  contrib/src/qtsvg/rules.mak                        |  1 +
>  2 files changed, 31 insertions(+)
>  create mode 100644 contrib/src/qtsvg/0002-QSvgIconEngine-Paint-correct-
> size-if-device-pixel-ra.patch
> 
> diff --git a/contrib/src/qtsvg/0002-QSvgIconEngine-Paint-correct-size-
> if-device-pixel-ra.patch b/contrib/src/qtsvg/0002-QSvgIconEngine-Paint-
> correct-size-if-device-pixel-ra.patch
> new file mode 100644
> index 0000000000..ec1b38941b
> --- /dev/null
> +++ b/contrib/src/qtsvg/0002-QSvgIconEngine-Paint-correct-size-if-
> device-pixel-ra.patch
> @@ -0,0 +1,30 @@
> +From 02ed4c65618b0f27b9ccb6867ab4d633612415c8 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?B=C5=82a=C5=BCej=20Szczygie=C5=82?= <spaz16 at wp.pl>
> +Date: Sun, 26 Mar 2017 13:55:23 +0200
> +Subject: [PATCH] QSvgIconEngine: Paint correct size if device pixel 
> ratio is
> + fractional
> +
> +Use method which returns qreal. It is available since Qt 5.6.
> +
> +Task-number: QTBUG-59729
> +Change-Id: Ifc1a101c8dd837597c35ce14f0314218d2882501
> +Reviewed-by: Friedemann Kleint <Friedemann.Kleint at qt.io>
> +---
> + src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp 
> b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
> +index 53e9a57..2644326 100644
> +--- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
> ++++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
> +@@ -227,7 +227,7 @@ void QSvgIconEngine::paint(QPainter *painter, const 
> QRect &rect,
> + {
> +     QSize pixmapSize = rect.size();
> +     if (painter->device())
> +-        pixmapSize *= painter->device()->devicePixelRatio();
> ++        pixmapSize *= painter->device()->devicePixelRatioF();
> +     painter->drawPixmap(rect, pixmap(pixmapSize, mode, state));
> + }
> +
> +--
> +2.14.1
> diff --git a/contrib/src/qtsvg/rules.mak b/contrib/src/qtsvg/rules.mak
> index 0d8d8b797b..ca34081958 100644
> --- a/contrib/src/qtsvg/rules.mak
> +++ b/contrib/src/qtsvg/rules.mak
> @@ -22,6 +22,7 @@ qtsvg: qtsvg-$(QTSVG_VERSION).tar.xz .sum-qtsvg
>  	$(UNPACK)
>  	mv qtsvg-opensource-src-$(QTSVG_VERSION) qtsvg-$(QTSVG_VERSION)
>  	$(APPLY) $(SRC)/qtsvg/0001-Force-the-usage-of-QtZlib-header.patch
> +	$(APPLY) $(SRC)/qtsvg/0002-QSvgIconEngine-Paint-correct-size-if-device-
> pixel-ra.patch
>  	$(MOVE)
>  
>  .qtsvg: qtsvg
> -- 
> 2.14.1
> 

If I'm not mistaking, this can also be achieved by upgrading to Qt 5.6.3. Any opinion on the matter?

-- 
  Hugo Beauzée-Luyssen
  hugo at beauzee.fr


More information about the vlc-devel mailing list