summaryrefslogtreecommitdiff
path: root/kde-frameworks/kdeclarative/files/kdeclarative-5.95.0-fix-potd-centered.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-frameworks/kdeclarative/files/kdeclarative-5.95.0-fix-potd-centered.patch')
-rw-r--r--kde-frameworks/kdeclarative/files/kdeclarative-5.95.0-fix-potd-centered.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/kde-frameworks/kdeclarative/files/kdeclarative-5.95.0-fix-potd-centered.patch b/kde-frameworks/kdeclarative/files/kdeclarative-5.95.0-fix-potd-centered.patch
new file mode 100644
index 000000000000..cac44a4333bf
--- /dev/null
+++ b/kde-frameworks/kdeclarative/files/kdeclarative-5.95.0-fix-potd-centered.patch
@@ -0,0 +1,54 @@
+From 41b3d0b142387c3acbba73f6ac332b3f314f7700 Mon Sep 17 00:00:00 2001
+From: Fushan Wen <qydwhotmail@gmail.com>
+Date: Thu, 9 Jun 2022 12:57:55 +0800
+Subject: [PATCH] qmlcontrols: add `Pad` fill mode in `QImageItem`
+
+This matches the behavior in `QQuickImage`.
+
+BUG: 389623
+FIXED-IN: 5.96
+---
+ src/qmlcontrols/kquickcontrolsaddons/qimageitem.cpp | 7 ++++++-
+ src/qmlcontrols/kquickcontrolsaddons/qimageitem.h | 1 +
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/qmlcontrols/kquickcontrolsaddons/qimageitem.cpp b/src/qmlcontrols/kquickcontrolsaddons/qimageitem.cpp
+index 36929eed..060069a1 100644
+--- a/src/qmlcontrols/kquickcontrolsaddons/qimageitem.cpp
++++ b/src/qmlcontrols/kquickcontrolsaddons/qimageitem.cpp
+@@ -103,7 +103,11 @@ void QImageItem::paint(QPainter *painter)
+ painter->scale(1, height() / (qreal)m_image.height());
+ }
+
+- if (m_fillMode >= Tile) {
++ if (m_fillMode == Pad) {
++ QRect centeredRect = m_paintedRect;
++ centeredRect.moveCenter(m_image.rect().center());
++ painter->drawImage(m_paintedRect, m_image, centeredRect);
++ } else if (m_fillMode >= Tile) {
+ painter->drawTiledPixmap(m_paintedRect, QPixmap::fromImage(m_image));
+ } else {
+ painter->drawImage(m_paintedRect, m_image, m_image.rect());
+@@ -174,6 +178,7 @@ void QImageItem::updatePaintedRect()
+ }
+ case Stretch:
+ case Tile:
++ case Pad:
+ default:
+ destRect = boundingRect().toRect();
+ }
+diff --git a/src/qmlcontrols/kquickcontrolsaddons/qimageitem.h b/src/qmlcontrols/kquickcontrolsaddons/qimageitem.h
+index f32ae7da..ba38a4a1 100644
+--- a/src/qmlcontrols/kquickcontrolsaddons/qimageitem.h
++++ b/src/qmlcontrols/kquickcontrolsaddons/qimageitem.h
+@@ -32,6 +32,7 @@ public:
+ Tile, // the image is duplicated horizontally and vertically
+ TileVertically, // the image is stretched horizontally and tiled vertically
+ TileHorizontally, // the image is stretched vertically and tiled horizontally
++ Pad, /**< the image is not transformed @since 5.96 **/
+ };
+ Q_ENUM(FillMode)
+
+--
+GitLab
+