From a4b0ac2af03f4a78469a3dc0e04f785cde4ab381 Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Tue, 14 Feb 2012 12:55:38 +1000 Subject: Fix access to context properties within TextEdit.cursorDelegate Don't create the cursorDelegate instance before componentComplete as the context may not be fully populated prior to that. Task-number: QTBUG-21780 Change-Id: I6ca8a24989bc28e5c5ca06d61a85e32ff630ce7c Reviewed-by: Martin Jones --- tests/auto/qtquick2/qquicktextedit/data/Cursor.qml | 5 +++++ .../qtquick2/qquicktextedit/data/cursorTestExternal.qml | 15 +++++++++++++++ .../qtquick2/qquicktextedit/data/cursorTestInline.qml | 15 +++++++++++++++ tests/auto/qtquick2/qquicktextedit/tst_qquicktextedit.cpp | 12 +++++++++++- 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 tests/auto/qtquick2/qquicktextedit/data/Cursor.qml create mode 100644 tests/auto/qtquick2/qquicktextedit/data/cursorTestExternal.qml create mode 100644 tests/auto/qtquick2/qquicktextedit/data/cursorTestInline.qml (limited to 'tests/auto/qtquick2/qquicktextedit') diff --git a/tests/auto/qtquick2/qquicktextedit/data/Cursor.qml b/tests/auto/qtquick2/qquicktextedit/data/Cursor.qml new file mode 100644 index 0000000000..e5c1853fc5 --- /dev/null +++ b/tests/auto/qtquick2/qquicktextedit/data/Cursor.qml @@ -0,0 +1,5 @@ +import QtQuick 2.0 + +Rectangle { + property string localProperty +} diff --git a/tests/auto/qtquick2/qquicktextedit/data/cursorTestExternal.qml b/tests/auto/qtquick2/qquicktextedit/data/cursorTestExternal.qml new file mode 100644 index 0000000000..7e916ec818 --- /dev/null +++ b/tests/auto/qtquick2/qquicktextedit/data/cursorTestExternal.qml @@ -0,0 +1,15 @@ +import QtQuick 2.0 + +Rectangle { width: 300; height: 300; color: "white" + property string contextualProperty: "Hello" + TextEdit { + text: "Hello world!" + id: textEditObject; + objectName: "textEditObject" + cursorDelegate: Cursor { + id:cursorInstance; + objectName: "cursorInstance"; + localProperty: contextualProperty; + } + } +} diff --git a/tests/auto/qtquick2/qquicktextedit/data/cursorTestInline.qml b/tests/auto/qtquick2/qquicktextedit/data/cursorTestInline.qml new file mode 100644 index 0000000000..786f39113c --- /dev/null +++ b/tests/auto/qtquick2/qquicktextedit/data/cursorTestInline.qml @@ -0,0 +1,15 @@ +import QtQuick 2.0 + +Rectangle { width: 300; height: 300; color: "white" + property string contextualProperty: "Hello" + TextEdit { + text: "Hello world!" + id: textEditObject + objectName: "textEditObject" + cursorDelegate: Item { + id:cursorInstance + objectName: "cursorInstance" + property string localProperty: contextualProperty + } + } +} diff --git a/tests/auto/qtquick2/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/qtquick2/qquicktextedit/tst_qquicktextedit.cpp index 77d17d99d6..eb8e711e6a 100644 --- a/tests/auto/qtquick2/qquicktextedit/tst_qquicktextedit.cpp +++ b/tests/auto/qtquick2/qquicktextedit/tst_qquicktextedit.cpp @@ -134,6 +134,7 @@ private slots: void linkActivated(); + void cursorDelegate_data(); void cursorDelegate(); void cursorVisible(); void delegateLoading_data(); @@ -1813,9 +1814,18 @@ void tst_qquicktextedit::linkActivated() QCOMPARE(spy.count(), 2); } +void tst_qquicktextedit::cursorDelegate_data() +{ + QTest::addColumn("source"); + QTest::newRow("out of line") << testFileUrl("cursorTest.qml"); + QTest::newRow("in line") << testFileUrl("cursorTestInline.qml"); + QTest::newRow("external") << testFileUrl("cursorTestExternal.qml"); +} + void tst_qquicktextedit::cursorDelegate() { - QQuickView view(testFileUrl("cursorTest.qml")); + QFETCH(QUrl, source); + QQuickView view(source); view.show(); view.requestActivateWindow(); QQuickTextEdit *textEditObject = view.rootObject()->findChild("textEditObject"); -- cgit v1.2.3