This commit is contained in:
Jan Grulich 2023-04-11 13:34:57 +02:00
parent d1539ffb4a
commit 9bb06552f7
10 changed files with 27 additions and 163 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@
/qtquickcontrols2-everywhere-opensource-src-5.15.6.tar.xz
/qtquickcontrols2-everywhere-opensource-src-5.15.7.tar.xz
/qtquickcontrols2-everywhere-opensource-src-5.15.8.tar.xz
/qtquickcontrols2-everywhere-opensource-src-5.15.9.tar.xz

View File

@ -1,7 +1,7 @@
From cee73a3e19048ab056edc857bae28e9f8d7d6c4b Mon Sep 17 00:00:00 2001
From 4fd68622be6c6b2b16f8d976b640b79d26dcc075 Mon Sep 17 00:00:00 2001
From: David Redondo <qt@david-redondo.de>
Date: Mon, 19 Jul 2021 10:06:17 +0200
Subject: [PATCH 1/7] Unset mouseGrabberPopup if it's removed from children
Subject: [PATCH 1/5] Unset mouseGrabberPopup if it's removed from children
The mouseGrabberPopup is supposed to be unset in handleRelease, however
when the exit transition of the mouseGrabberPopup (that closed itself on
@ -178,5 +178,5 @@ index 54952d128..3d50e2dd4 100644
#include "tst_qquickpopup.moc"
--
2.39.0
2.40.0

View File

@ -1,7 +1,7 @@
From eea00f031d5ef3b0691ebe87e9e61dac805ca1cc Mon Sep 17 00:00:00 2001
From 774cc9a0d8c177b4363b11b80f88296318967385 Mon Sep 17 00:00:00 2001
From: Aleix Pol <aleixpol@kde.org>
Date: Tue, 4 Jan 2022 16:34:16 +0100
Subject: [PATCH 2/7] Ensure we don't crash when changing sizes after cleanup
Subject: [PATCH 2/5] Ensure we don't crash when changing sizes after cleanup
This addresses the problems I've seen during destruction. Only
encountered it when using complex layouts on a DialogButtonBox.
@ -79,5 +79,5 @@ index e6db14eb5..6197d1547 100644
qreal maxHeight = 0;
for (int i = 0; i < count; ++i) {
--
2.39.0
2.40.0

View File

@ -1,7 +1,7 @@
From 7651ffc8762aa5eca5c7d519b91cd8a0d4e3408a Mon Sep 17 00:00:00 2001
From 7145c2589193b0ca0eafbb35085bc5cb5613b055 Mon Sep 17 00:00:00 2001
From: Mitch Curtis <mitch.curtis@qt.io>
Date: Mon, 18 Jul 2022 15:21:49 +0800
Subject: [PATCH 5/7] Fix scroll bars not showing up when binding to standalone
Subject: [PATCH 3/5] Fix scroll bars not showing up when binding to standalone
contentItem
908aa77d16e00f2bccc0ddae0f8b61955c56a6a1 hid old scroll bars, but
@ -175,5 +175,5 @@ index 0e8b08352..cd4931184 100644
+ }
}
--
2.39.0
2.40.0

View File

@ -1,49 +0,0 @@
From 5ccf04cc3cbfb8539b71e8f1a0717ee7fa798ee6 Mon Sep 17 00:00:00 2001
From: Oliver Eftevaag <oliver.eftevaag@qt.io>
Date: Wed, 19 Jan 2022 22:09:56 +0100
Subject: [PATCH 3/7] QQuickAction: don't grab the same shortcut multiple times
If the entry for the QQuickItem that the QQuickAction is set on has
already grabbed the shortcut, then m_shortcutId is no longer 0 and we
must not overwrite the value. Otherwise, the QQuickItem removing itself
from the action might not remove the correct entry from Qt's shortcut
map, leaving a dangling pointer behind.
Multiple calls to QQuickActionPrivate::ShortcutEntry::grab are possible,
because we grab the shortcut whenever the shortcut changes, or when an
item representing the action becomes visible.
The test case added reproduces this scenario by adding the action to a
menu item and then making the menu explicitly visible, resulting in two
calls to grab() which should be idempotent.
Fixes: QTBUG-96551
Fixes: QTBUG-96561
Pick-to: 6.2
Change-Id: I7d42a4f4c04f7d8759f2d0f24a133720f10e4c47
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 45af5ef2f63704adc515e29260ad8c6aaf51f08e in
qtdeclarative)
---
src/quicktemplates2/qquickaction.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/quicktemplates2/qquickaction.cpp b/src/quicktemplates2/qquickaction.cpp
index 2041e7741..8610cdfae 100644
--- a/src/quicktemplates2/qquickaction.cpp
+++ b/src/quicktemplates2/qquickaction.cpp
@@ -145,7 +145,7 @@ int QQuickActionPrivate::ShortcutEntry::shortcutId() const
void QQuickActionPrivate::ShortcutEntry::grab(const QKeySequence &shortcut, bool enabled)
{
- if (shortcut.isEmpty())
+ if (shortcut.isEmpty() || m_shortcutId)
return;
Qt::ShortcutContext context = Qt::WindowShortcut; // TODO
--
2.39.0

View File

@ -1,89 +0,0 @@
From 3dbb20b182650fce15777feaac31a5db2e04fa85 Mon Sep 17 00:00:00 2001
From: Ulf Hermann <ulf.hermann@qt.io>
Date: Tue, 11 Jan 2022 12:42:47 +0100
Subject: [PATCH 4/7] QQuickAbstractButton: fix crash on destruction
If we listen for size changes we also need to remove the object listened
to when it's deleted.
Pick-to: 5.15 6.2 6.3
Fixes: QTBUG-99644
Change-Id: I613855ebd986b1e67685088020b88d8b070659cf
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 720ffaeb60d43123522066e1de3a69ad551644aa in
qtdeclarative)
---
src/quicktemplates2/qquickabstractbutton.cpp | 11 +++++++++
.../qquickabstractbutton_p_p.h | 1 +
tests/auto/controls/data/tst_switch.qml | 23 +++++++++++++++++++
3 files changed, 35 insertions(+)
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp
index 950e4e099..1df0c706d 100644
--- a/src/quicktemplates2/qquickabstractbutton.cpp
+++ b/src/quicktemplates2/qquickabstractbutton.cpp
@@ -387,6 +387,17 @@ void QQuickAbstractButtonPrivate::itemImplicitHeightChanged(QQuickItem *item)
emit q->implicitIndicatorHeightChanged();
}
+void QQuickAbstractButtonPrivate::itemDestroyed(QQuickItem *item)
+{
+ Q_Q(QQuickAbstractButton);
+ QQuickControlPrivate::itemDestroyed(item);
+ if (item == indicator) {
+ indicator = nullptr;
+ emit q->implicitIndicatorWidthChanged();
+ emit q->implicitIndicatorHeightChanged();
+ }
+}
+
QQuickAbstractButton *QQuickAbstractButtonPrivate::findCheckedButton() const
{
Q_Q(const QQuickAbstractButton);
diff --git a/src/quicktemplates2/qquickabstractbutton_p_p.h b/src/quicktemplates2/qquickabstractbutton_p_p.h
index 9291c1a87..b729720f2 100644
--- a/src/quicktemplates2/qquickabstractbutton_p_p.h
+++ b/src/quicktemplates2/qquickabstractbutton_p_p.h
@@ -109,6 +109,7 @@ public:
void itemImplicitWidthChanged(QQuickItem *item) override;
void itemImplicitHeightChanged(QQuickItem *item) override;
+ void itemDestroyed(QQuickItem *item) override;
// copied from qabstractbutton.cpp
static const int AUTO_REPEAT_DELAY = 300;
diff --git a/tests/auto/controls/data/tst_switch.qml b/tests/auto/controls/data/tst_switch.qml
index b3fab41ca..10b6baa02 100644
--- a/tests/auto/controls/data/tst_switch.qml
+++ b/tests/auto/controls/data/tst_switch.qml
@@ -608,4 +608,27 @@ TestCase {
mouseClick(control.indicator)
verify(control.activeFocus)
}
+
+ Component {
+ id: deletionOrder1
+ Item {
+ Image { id: innerImage }
+ Switch { indicator: innerImage }
+ }
+ }
+
+ Component {
+ id: deletionOrder2
+ Item {
+ Switch { indicator: innerImage }
+ Image { id: innerImage }
+ }
+ }
+
+ function test_deletionOrder() {
+ var control1 = createTemporaryObject(deletionOrder1, testCase)
+ verify(control1)
+ var control2 = createTemporaryObject(deletionOrder2, testCase)
+ verify(control2)
+ }
}
--
2.39.0

View File

@ -1,7 +1,7 @@
From 8fba89821b1978468863a1d23a6146441960c502 Mon Sep 17 00:00:00 2001
From 29c60b84e92c83c28211bc349eb00e6c93eeed80 Mon Sep 17 00:00:00 2001
From: Harald Sitter <sitter@kde.org>
Date: Wed, 2 Nov 2022 12:39:11 +0100
Subject: [PATCH 6/7] implement a11y pressing of qquickabstractbutton
Subject: [PATCH 4/5] implement a11y pressing of qquickabstractbutton
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -22,10 +22,10 @@ qtdeclarative)
2 files changed, 7 insertions(+)
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp
index 1df0c706d..b81fbea0b 100644
index 20cf59c1a..43af47a94 100644
--- a/src/quicktemplates2/qquickabstractbutton.cpp
+++ b/src/quicktemplates2/qquickabstractbutton.cpp
@@ -1187,6 +1187,12 @@ QAccessible::Role QQuickAbstractButton::accessibleRole() const
@@ -1201,6 +1201,12 @@ QAccessible::Role QQuickAbstractButton::accessibleRole() const
}
return QAccessible::Button;
}
@ -51,5 +51,5 @@ index 0fa48980e..ab66220d0 100644
private:
--
2.39.0
2.40.0

View File

@ -1,7 +1,7 @@
From 56ce8233382a091a8476c831edd416b5f704ae4f Mon Sep 17 00:00:00 2001
From 86a84eaa74c4071e5750f23b6e9911762880d391 Mon Sep 17 00:00:00 2001
From: Inho Lee <inho.lee@qt.io>
Date: Mon, 22 Aug 2022 21:05:00 +0800
Subject: [PATCH 7/7] Fix the popup position of a Menu
Subject: [PATCH 5/5] Fix the popup position of a Menu
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@ -41,5 +41,5 @@ index e5fe734f7..e36922775 100644
const QWidgetPlatformMenuItem *widgetItem = qobject_cast<const QWidgetPlatformMenuItem *>(item);
m_menu->popup(targetPos, widgetItem ? widgetItem->action() : nullptr);
--
2.39.0
2.40.0

View File

@ -2,8 +2,8 @@
Name: qt5-%{qt_module}
Summary: Qt5 - module with set of QtQuick controls for embedded
Version: 5.15.8
Release: 3%{?dist}
Version: 5.15.9
Release: 1%{?dist}
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
Url: http://www.qt.io
@ -12,11 +12,9 @@ Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submod
Patch1: 0001-Unset-mouseGrabberPopup-if-it-s-removed-from-childre.patch
Patch2: 0002-Ensure-we-don-t-crash-when-changing-sizes-after-clea.patch
Patch3: 0003-QQuickAction-don-t-grab-the-same-shortcut-multiple-t.patch
Patch4: 0004-QQuickAbstractButton-fix-crash-on-destruction.patch
Patch5: 0005-Fix-scroll-bars-not-showing-up-when-binding-to-stand.patch
Patch6: 0006-implement-a11y-pressing-of-qquickabstractbutton.patch
Patch7: 0007-Fix-the-popup-position-of-a-Menu.patch
Patch3: 0003-Fix-scroll-bars-not-showing-up-when-binding-to-stand.patch
Patch4: 0004-implement-a11y-pressing-of-qquickabstractbutton.patch
Patch5: 0005-Fix-the-popup-position-of-a-Menu.patch
# filter qml provides
@ -112,6 +110,9 @@ rm -f %{buildroot}%{_qt5_libdir}/libQt5*.la
%{_libdir}/cmake/Qt5QuickTemplates2/
%changelog
* Tue Apr 11 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.9-1
- 5.15.9
* Tue Jan 31 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.8-3
- migrated to SPDX license

View File

@ -1 +1 @@
SHA512 (qtquickcontrols2-everywhere-opensource-src-5.15.8.tar.xz) = d42fd70f1d9d1d951e5a8eee886311bf70f0c9b21718b3b76b87ee38fee010c654abc82259e73883c9aca36dafcefb25e5297bf34213cafe4da6a68c4f45d816
SHA512 (qtquickcontrols2-everywhere-opensource-src-5.15.9.tar.xz) = f77a59cb6704438bc7b81f816454dad56bebdf4ce7f015c21a05b09f0c508525750a0cf232da8d7428464aa68de9a2bcbd000906fa781aff1e60e8ee5d70802e