diff options
Diffstat (limited to 'source/l/qt5/patches/qt5.qtbug-51927.patch')
-rw-r--r-- | source/l/qt5/patches/qt5.qtbug-51927.patch | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/source/l/qt5/patches/qt5.qtbug-51927.patch b/source/l/qt5/patches/qt5.qtbug-51927.patch deleted file mode 100644 index d253dc15e..000000000 --- a/source/l/qt5/patches/qt5.qtbug-51927.patch +++ /dev/null @@ -1,185 +0,0 @@ -From 5149aa68eca6ede8836ec4f07a14d22d9da9b161 Mon Sep 17 00:00:00 2001 -From: Mitch Curtis <mitch.curtis@qt.io> -Date: Tue, 13 Sep 2016 12:42:12 +0200 -Subject: Fix crash on exit when using default property aliases with layouts - -The layout was being destroyed before the text, which meant that the -removeItemChangeListener() call never got hit. To ensure that the -listener is always removed, loop through each child in QQuickLayout's -destructor. - -This is a manual cherry-pick of -59c6c0e0b1b5b46747595a58e11311b7393d7e70. - -Task-number: QTBUG-51927 -Change-Id: I669f42beb8c3dd6b4b741cae0b16e017bb3409df -Reviewed-by: J-P Nurmi <jpnurmi@qt.io> ---- - src/imports/layouts/qquicklayout.cpp | 4 ++ - .../qquicklayouts/data/rowlayout/Container.qml | 55 ++++++++++++++++++++++ - .../qquicklayouts/data/rowlayout/ContainerUser.qml | 53 +++++++++++++++++++++ - .../quick/qquicklayouts/data/tst_rowlayout.qml | 12 +++++ - 4 files changed, 124 insertions(+) - create mode 100644 tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml - create mode 100644 tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml - -diff --git a/src/imports/layouts/qquicklayout.cpp b/src/imports/layouts/qquicklayout.cpp -index abc8f97..9914826 100644 ---- a/src/imports/layouts/qquicklayout.cpp -+++ b/src/imports/layouts/qquicklayout.cpp -@@ -698,6 +698,10 @@ QQuickLayout::QQuickLayout(QQuickLayoutPrivate &dd, QQuickItem *parent) - QQuickLayout::~QQuickLayout() - { - d_func()->m_isReady = false; -+ -+ const auto childItems = d_func()->childItems; -+ for (QQuickItem *child : childItems) -+ QQuickItemPrivate::get(child)->removeItemChangeListener(this, QQuickItemPrivate::SiblingOrder); - } - - QQuickLayoutAttached *QQuickLayout::qmlAttachedProperties(QObject *object) -diff --git a/tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml b/tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml -new file mode 100644 -index 0000000..22205c1 ---- /dev/null -+++ b/tests/auto/quick/qquicklayouts/data/rowlayout/Container.qml -@@ -0,0 +1,55 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the test suite of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:BSD$ -+** You may use this file under the terms of the BSD license as follows: -+** -+** "Redistribution and use in source and binary forms, with or without -+** modification, are permitted provided that the following conditions are -+** met: -+** * Redistributions of source code must retain the above copyright -+** notice, this list of conditions and the following disclaimer. -+** * Redistributions in binary form must reproduce the above copyright -+** notice, this list of conditions and the following disclaimer in -+** the documentation and/or other materials provided with the -+** distribution. -+** * Neither the name of The Qt Company Ltd nor the names of its -+** contributors may be used to endorse or promote products derived -+** from this software without specific prior written permission. -+** -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+import QtQuick 2.7 -+import QtQuick.Layouts 1.3 -+ -+Item { -+ objectName: "qtbug51927-window" -+ visible: true -+ -+ default property alias _contents: customContent.data -+ -+ RowLayout { -+ id: customContent -+ objectName: "qtbug51927-columnLayout" -+ anchors.fill: parent -+ } -+} -diff --git a/tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml b/tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml -new file mode 100644 -index 0000000..ff7ce62 ---- /dev/null -+++ b/tests/auto/quick/qquicklayouts/data/rowlayout/ContainerUser.qml -@@ -0,0 +1,53 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2016 The Qt Company Ltd. -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the test suite of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:BSD$ -+** You may use this file under the terms of the BSD license as follows: -+** -+** "Redistribution and use in source and binary forms, with or without -+** modification, are permitted provided that the following conditions are -+** met: -+** * Redistributions of source code must retain the above copyright -+** notice, this list of conditions and the following disclaimer. -+** * Redistributions in binary form must reproduce the above copyright -+** notice, this list of conditions and the following disclaimer in -+** the documentation and/or other materials provided with the -+** distribution. -+** * Neither the name of The Qt Company Ltd nor the names of its -+** contributors may be used to endorse or promote products derived -+** from this software without specific prior written permission. -+** -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+import QtQuick 2.6 -+import QtQuick.Window 2.2 -+ -+Container { -+ visible: true -+ -+ Text { -+ objectName: "qtbug51927-text" -+ text: qsTr("Hello World") -+ anchors.centerIn: parent -+ renderType: Text.QtRendering -+ } -+} -diff --git a/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml b/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml -index 33b8fd0..2d4e227 100644 ---- a/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml -+++ b/tests/auto/quick/qquicklayouts/data/tst_rowlayout.qml -@@ -926,5 +926,17 @@ Item { - waitForRendering(layout) - layout.destroy() - } -+ -+ -+ function test_defaultPropertyAliasCrash() { -+ var containerUserComponent = Qt.createComponent("rowlayout/ContainerUser.qml"); -+ compare(containerUserComponent.status, Component.Ready); -+ -+ var containerUser = containerUserComponent.createObject(testCase); -+ verify(containerUser); -+ -+ // Shouldn't crash. -+ containerUser.destroy(); -+ } - } - } --- -cgit v1.0-4-g1e03 - |