[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