Accepting request 754286 from home:Vogtinator:qt5.14

Qt 5.14.0 RC1

OBS-URL: https://build.opensuse.org/request/show/754286
OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.14/libqt5-qtsvg?expand=0&rev=5
This commit is contained in:
Luca Beltrame 2019-12-05 09:41:17 +00:00 committed by Git OBS Bridge
parent c26a2969e0
commit 93b0485e80
5 changed files with 18 additions and 124 deletions

View File

@ -1,116 +0,0 @@
From df10b8b84ca1b94f7b0e493ca460d2ee7eeefdf7 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Thu, 24 Oct 2019 15:19:56 +0200
Subject: [PATCH] Revert "Fix rendering of SVGs with viewBoxes"
This reverts commit 14fa4591eb34a35cf3d485fd901e3f1e2caa7770.
---
src/svg/qsvgtinydocument.cpp | 38 +++++---------------
src/svg/qsvgtinydocument_p.h | 5 +--
tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp | 10 ------
3 files changed, 9 insertions(+), 44 deletions(-)
diff --git a/src/svg/qsvgtinydocument.cpp b/src/svg/qsvgtinydocument.cpp
index 3143ad2..b9e2d82 100644
--- a/src/svg/qsvgtinydocument.cpp
+++ b/src/svg/qsvgtinydocument.cpp
@@ -338,7 +338,6 @@ void QSvgTinyDocument::setHeight(int len, bool percent)
void QSvgTinyDocument::setViewBox(const QRectF &rect)
{
m_viewBox = rect;
- m_implicitViewBox = false;
}
void QSvgTinyDocument::addSvgFont(QSvgFont *font)
@@ -420,35 +419,14 @@ void QSvgTinyDocument::mapSourceToTarget(QPainter *p, const QRectF &targetRect,
source = viewBox();
if (source != target && !source.isNull()) {
- if (m_implicitViewBox) {
- QTransform transform;
- transform.scale(target.width() / source.width(),
- target.height() / source.height());
- QRectF c2 = transform.mapRect(source);
- p->translate(target.x() - c2.x(),
- target.y() - c2.y());
- p->scale(target.width() / source.width(),
- target.height() / source.height());
- } else {
- // Code path used when a view box is specified and we're not rendering a specific element by id
- // but the entire document. This attempts to emulate the default values of the <preserveAspectRatio>
- // tag that's implicitly defined when <viewbox> is used.
-
- // Apply the view box translation if specified.
- p->translate(target.x() - source.x(),
- target.y() - source.y());
-
- // Scale the view box into the view port (target) by preserve the aspect ratio.
- QSizeF viewBoxSize = source.size();
- viewBoxSize.scale(target.width(), target.height(), Qt::KeepAspectRatio);
-
- // Center the view box in the view port
- p->translate((target.width() - viewBoxSize.width()) / 2,
- (target.height() - viewBoxSize.height()) / 2);
-
- p->scale(viewBoxSize.width() / source.width(),
- viewBoxSize.height() / source.height());
- }
+ QTransform transform;
+ transform.scale(target.width() / source.width(),
+ target.height() / source.height());
+ QRectF c2 = transform.mapRect(source);
+ p->translate(target.x() - c2.x(),
+ target.y() - c2.y());
+ p->scale(target.width() / source.width(),
+ target.height() / source.height());
}
}
diff --git a/src/svg/qsvgtinydocument_p.h b/src/svg/qsvgtinydocument_p.h
index 404587d..4babb9f 100644
--- a/src/svg/qsvgtinydocument_p.h
+++ b/src/svg/qsvgtinydocument_p.h
@@ -125,7 +125,6 @@ private:
bool m_widthPercent;
bool m_heightPercent;
- mutable bool m_implicitViewBox = true;
mutable QRectF m_viewBox;
QHash<QString, QSvgRefCounter<QSvgFont> > m_fonts;
@@ -174,10 +173,8 @@ inline bool QSvgTinyDocument::heightPercent() const
inline QRectF QSvgTinyDocument::viewBox() const
{
- if (m_viewBox.isNull()) {
+ if (m_viewBox.isNull())
m_viewBox = transformedBounds();
- m_implicitViewBox = true;
- }
return m_viewBox;
}
diff --git a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
index cf19213..e0646f2 100644
--- a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
+++ b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
@@ -268,16 +268,6 @@ void tst_QSvgRenderer::testMapViewBoxToTarget()
QCOMPARE(picture.boundingRect(), QRect(125, 125, 250, 250));
}
- { // Viewport and viewBox specified -> scale 500x500 square to 1000x750 while preserving aspect ratio gives 750x750
- // however the box is centered at 375, 250
- data = "<svg width=\"1000\" height=\"750\" viewBox=\"-250 -250 500 500\"><g><rect x=\"0\" y=\"0\" width=\"500\" height=\"500\" /></g></svg>";
- QPicture picture;
- QPainter painter(&picture);
- QSvgRenderer rend(data);
- rend.render(&painter);
- painter.end();
- QCOMPARE(picture.boundingRect(), QRect(375, 250, 750, 750));
- }
}
void tst_QSvgRenderer::testRenderElement()
--
2.23.0

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Wed Dec 4 14:38:08 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.14.0-rc:
* New bugfix release
* No changelog available
* For more details please see:
* For more details about Qt 5.14 please see:
https://wiki.qt.io/New_Features_in_Qt_5.14
- Drop patch, fixed upstream:
* 0001-Revert-Fix-rendering-of-SVGs-with-viewBoxes.patch
-------------------------------------------------------------------
Tue Nov 12 13:03:06 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>

View File

@ -21,20 +21,18 @@
%define libname libQt5Svg5
Name: libqt5-qtsvg
Version: 5.14.0~beta3
Version: 5.14.0~rc
Release: 0
Summary: Qt 5 SVG Library
License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only
Group: Development/Libraries/X11
Url: https://www.qt.io
%define base_name libqt5
%define real_version 5.14.0-beta3
%define real_version 5.14.0-rc
%define so_version 5.14.0
%define tar_version qtsvg-everywhere-src-5.14.0-beta3
%define tar_version qtsvg-everywhere-src-5.14.0-rc
Source: https://download.qt.io/development_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz
Source1: baselibs.conf
# PATCH-FIX-OPENSUSE
Patch1: 0001-Revert-Fix-rendering-of-SVGs-with-viewBoxes.patch
BuildRequires: libQt5Core-private-headers-devel >= %{version}
BuildRequires: libQt5Gui-private-headers-devel >= %{version}
BuildRequires: libQt5Widgets-private-headers-devel >= %{version}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1344c124f38a0b19ba8efd275c7e2cb9f16061826fcc0408ff9fa1e0a0e128c8
size 1892744

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2adfa8b06ef0afb44d6fef4ade8beddfd78fdfc30c9abd57daa70ecd0ced4fa3
size 1867112