[SCM] qtdeclarative packaging branch, ubuntu+1, updated. debian/5.7.1-1-133-gc38f228
Timo Jyrinki
timo at moszumanska.debian.org
Mon Jan 2 09:41:35 UTC 2017
Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qtdeclarative.git;a=commitdiff;h=991d271
The following commit has been merged in the ubuntu+1 branch:
commit 991d271dd8b9f11cc0278c9e8809f383dcb079d7
Author: Timo Jyrinki <timo.jyrinki at canonical.com>
Date: Mon Jan 2 08:07:19 2017 +0000
debian/patches/Scale-images-correctly-with-sourceSize-and-PreserveA.patch:
* debian/patches/Scale-images-correctly-with-sourceSize-and-PreserveA.patch:
- Backport from dev. (LP: #1604025)
---
debian/changelog | 2 +
...s-correctly-with-sourceSize-and-PreserveA.patch | 950 +++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 953 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 71dd459..d1e5252 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,8 @@ qtdeclarative-opensource-src (5.7.1-1ubuntu1) UNRELEASED; urgency=medium
- debian/patches/fix_binary_location_for_tests.patch
* Rebase QML cache patch for 5.7 and add arm64 support.
* Update symbols and mark private ones for 5.7.0 and 5.7.1.
+ * debian/patches/Scale-images-correctly-with-sourceSize-and-PreserveA.patch:
+ - Backport from dev. (LP: #1604025)
-- Timo Jyrinki <timo-jyrinki at ubuntu.com> Wed, 07 Sep 2016 13:12:08 +0000
diff --git a/debian/patches/Scale-images-correctly-with-sourceSize-and-PreserveA.patch b/debian/patches/Scale-images-correctly-with-sourceSize-and-PreserveA.patch
new file mode 100644
index 0000000..5aa320a
--- /dev/null
+++ b/debian/patches/Scale-images-correctly-with-sourceSize-and-PreserveA.patch
@@ -0,0 +1,950 @@
+From 9c50216c7bbbdb2bb51d4485286bf09e12fb5b62 Mon Sep 17 00:00:00 2001
+From: Albert Astals Cid <albert.astals at canonical.com>
+Date: Fri, 15 Jul 2016 14:21:37 +0200
+Subject: [PATCH] Scale images correctly with sourceSize and
+ PreserveAspectCrop/Fit
+
+It also introduces a private QQuickImageProviderWithOptions to allow
+passing options to image providers so that they can return more
+fine-tuned images. This private class will disappear in Qt6 and the
+functionality will be merged into QQuickImageProvider.
+
+Change-Id: I619065d889d21d3a9e1f8e45fdb6076b9657c7ed
+Reviewed-by: Shawn Rutledge <shawn.rutledge at qt.io>
+---
+ src/quick/items/qquickimage.cpp | 13 ++-
+ src/quick/items/qquickimagebase.cpp | 13 +--
+ src/quick/items/qquickimagebase_p_p.h | 3 +-
+ src/quick/util/qquickimageprovider.cpp | 165 ++++++++++++++++++++++++++++---
+ src/quick/util/qquickimageprovider.h | 13 ++-
+ src/quick/util/qquickpixmapcache.cpp | 172 ++++++++++++++++++++-------------
+ src/quick/util/qquickpixmapcache_p.h | 68 +++++++++++--
+ 7 files changed, 346 insertions(+), 101 deletions(-)
+
+diff --git a/src/quick/items/qquickimage.cpp b/src/quick/items/qquickimage.cpp
+index a53d068..f71a2fb 100644
+--- a/src/quick/items/qquickimage.cpp
++++ b/src/quick/items/qquickimage.cpp
+@@ -304,6 +304,15 @@ void QQuickImage::setFillMode(FillMode mode)
+ if (d->fillMode == mode)
+ return;
+ d->fillMode = mode;
++ if ((mode == PreserveAspectCrop) != d->providerOptions.preserveAspectRatioCrop()) {
++ d->providerOptions.setPreserveAspectRatioCrop(mode == PreserveAspectCrop);
++ if (isComponentComplete())
++ load();
++ } else if ((mode == PreserveAspectFit) != d->providerOptions.preserveAspectRatioFit()) {
++ d->providerOptions.setPreserveAspectRatioFit(mode == PreserveAspectFit);
++ if (isComponentComplete())
++ load();
++ }
+ update();
+ updatePaintedGeometry();
+ emit fillModeChanged();
+@@ -423,7 +432,9 @@ qreal QQuickImage::paintedHeight() const
+ (The \l fillMode is independent of this.)
+
+ If both the sourceSize.width and sourceSize.height are set the image will be scaled
+- down to fit within the specified size, maintaining the image's aspect ratio. The actual
++ down to fit within the specified size (unless PreserveAspectCrop or PreserveAspectFit
++ are used, then it will be scaled to match the optimal size for cropping/fitting),
++ maintaining the image's aspect ratio. The actual
+ size of the image after scaling is available via \l Item::implicitWidth and \l Item::implicitHeight.
+
+ If the source is an intrinsically scalable image (eg. SVG), this property
+diff --git a/src/quick/items/qquickimagebase.cpp b/src/quick/items/qquickimagebase.cpp
+index a2b99b6..a6bf6b4 100644
+--- a/src/quick/items/qquickimagebase.cpp
++++ b/src/quick/items/qquickimagebase.cpp
+@@ -246,7 +246,7 @@ void QQuickImageBase::load()
+ resolve2xLocalFile(d->url, targetDevicePixelRatio, &loadUrl, &d->devicePixelRatio);
+ }
+
+- d->pix.load(qmlEngine(this), loadUrl, d->sourcesize * d->devicePixelRatio, options, d->autoTransform);
++ d->pix.load(qmlEngine(this), loadUrl, d->sourcesize * d->devicePixelRatio, options, d->providerOptions);
+
+ if (d->pix.isLoading()) {
+ if (d->progress != 0.0) {
+@@ -381,17 +381,18 @@ void QQuickImageBase::resolve2xLocalFile(const QUrl &url, qreal targetDevicePixe
+ bool QQuickImageBase::autoTransform() const
+ {
+ Q_D(const QQuickImageBase);
+- if (d->autoTransform == UsePluginDefault)
+- return d->pix.autoTransform() == ApplyTransform;
+- return d->autoTransform == ApplyTransform;
++ if (d->providerOptions.autoTransform() == QQuickImageProviderOptions::UsePluginDefaultTransform)
++ return d->pix.autoTransform() == QQuickImageProviderOptions::ApplyTransform;
++ return d->providerOptions.autoTransform() == QQuickImageProviderOptions::ApplyTransform;
+ }
+
+ void QQuickImageBase::setAutoTransform(bool transform)
+ {
+ Q_D(QQuickImageBase);
+- if (d->autoTransform != UsePluginDefault && transform == (d->autoTransform == ApplyTransform))
++ if (d->providerOptions.autoTransform() != QQuickImageProviderOptions::UsePluginDefaultTransform &&
++ transform == (d->providerOptions.autoTransform() == QQuickImageProviderOptions::ApplyTransform))
+ return;
+- d->autoTransform = transform ? ApplyTransform : DoNotApplyTransform;
++ d->providerOptions.setAutoTransform(transform ? QQuickImageProviderOptions::ApplyTransform : QQuickImageProviderOptions::DoNotApplyTransform);
+ emitAutoTransformBaseChanged();
+ }
+
+diff --git a/src/quick/items/qquickimagebase_p_p.h b/src/quick/items/qquickimagebase_p_p.h
+index 1eb566a..d9b609c 100644
+--- a/src/quick/items/qquickimagebase_p_p.h
++++ b/src/quick/items/qquickimagebase_p_p.h
+@@ -68,7 +68,6 @@ public:
+ : status(QQuickImageBase::Null),
+ progress(0.0),
+ devicePixelRatio(1.0),
+- autoTransform(UsePluginDefault),
+ async(false),
+ cache(true),
+ mirror(false),
+@@ -83,7 +82,7 @@ public:
+ QSize sourcesize;
+ QSize oldSourceSize;
+ qreal devicePixelRatio;
+- AutoTransform autoTransform;
++ QQuickImageProviderOptions providerOptions;
+ bool async : 1;
+ bool cache : 1;
+ bool mirror: 1;
+diff --git a/src/quick/util/qquickimageprovider.cpp b/src/quick/util/qquickimageprovider.cpp
+index 0c245d2..c4182d9 100644
+--- a/src/quick/util/qquickimageprovider.cpp
++++ b/src/quick/util/qquickimageprovider.cpp
+@@ -44,13 +44,6 @@
+
+ QT_BEGIN_NAMESPACE
+
+-class QQuickImageProviderPrivate
+-{
+-public:
+- QQuickImageProvider::ImageType type;
+- QQuickImageProvider::Flags flags;
+-};
+-
+ /*!
+
--
qtdeclarative packaging
More information about the pkg-kde-commits
mailing list