diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2013-10-29 17:25:00 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-11-05 22:23:25 +0100 |
commit | 22b83ec28a7dfebe9d47ff5c98fddfdb492e4304 (patch) | |
tree | 5d6f1bf47d5dadc9a930837f045e1480f8614b28 /tests/auto/quick/qquicktext | |
parent | ba674099d6d51e2cca19909e31a13a9d8e4490f8 (diff) |
Fix QQuickText hover event handling
Catch hover events only when the item contains either rich or styled
text, and make sure to ignore hover events as appropriate to propagate
them further.
Task-number: QTBUG-33842
Change-Id: Idef5be7c502711393ab532c4ace31663b0e0a872
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Diffstat (limited to 'tests/auto/quick/qquicktext')
-rw-r--r-- | tests/auto/quick/qquicktext/data/hover.qml | 22 | ||||
-rw-r--r-- | tests/auto/quick/qquicktext/tst_qquicktext.cpp | 28 |
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktext/data/hover.qml b/tests/auto/quick/qquicktext/data/hover.qml new file mode 100644 index 0000000000..36d9b5c691 --- /dev/null +++ b/tests/auto/quick/qquicktext/data/hover.qml @@ -0,0 +1,22 @@ +import QtQuick 2.1 +import QtQuick.Window 2.1 + +Window { + width: 100 + height: 100 + property alias mouseArea: mouseArea + property alias textItem: textItem + MouseArea { + id: mouseArea + hoverEnabled: true + anchors.fill: parent + acceptedButtons: Qt.NoButton + property bool wasHovered: false + onPositionChanged: wasHovered = true + Text { + id: textItem + text: "plain text" + anchors.fill: parent + } + } +} diff --git a/tests/auto/quick/qquicktext/tst_qquicktext.cpp b/tests/auto/quick/qquicktext/tst_qquicktext.cpp index 6b93791545..78e03be9c2 100644 --- a/tests/auto/quick/qquicktext/tst_qquicktext.cpp +++ b/tests/auto/quick/qquicktext/tst_qquicktext.cpp @@ -44,6 +44,7 @@ #include <QtQml/qqmlengine.h> #include <QtQml/qqmlcomponent.h> #include <QtQuick/private/qquicktext_p.h> +#include <QtQuick/private/qquickmousearea_p.h> #include <private/qquicktext_p_p.h> #include <private/qquickvaluetypes_p.h> #include <QFontMetrics> @@ -151,6 +152,8 @@ private slots: void elideBeforeMaximumLineCount(); + void hover(); + private: QStringList standard; QStringList richText; @@ -3744,6 +3747,31 @@ void tst_qquicktext::elideBeforeMaximumLineCount() QCOMPARE(item->lineCount(), 2); } +void tst_qquicktext::hover() +{ // QTBUG-33842 + QQmlComponent component(&engine, testFile("hover.qml")); + + QScopedPointer<QObject> object(component.create()); + + QQuickWindow *window = qobject_cast<QQuickWindow *>(object.data()); + QVERIFY(window); + + QQuickMouseArea *mouseArea = window->property("mouseArea").value<QQuickMouseArea *>(); + QVERIFY(mouseArea); + QQuickText *textItem = window->property("textItem").value<QQuickText *>(); + QVERIFY(textItem); + + QVERIFY(!mouseArea->property("wasHovered").toBool()); + + QPoint center(window->width() / 2, window->height() / 2); + QPoint delta(window->width() / 10, window->height() / 10); + + QTest::mouseMove(window, center - delta); + QTest::mouseMove(window, center + delta); + + QVERIFY(mouseArea->property("wasHovered").toBool()); +} + QTEST_MAIN(tst_qquicktext) #include "tst_qquicktext.moc" |