aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquicktext
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2013-10-29 17:25:00 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-05 22:23:25 +0100
commit22b83ec28a7dfebe9d47ff5c98fddfdb492e4304 (patch)
tree5d6f1bf47d5dadc9a930837f045e1480f8614b28 /tests/auto/quick/qquicktext
parentba674099d6d51e2cca19909e31a13a9d8e4490f8 (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.qml22
-rw-r--r--tests/auto/quick/qquicktext/tst_qquicktext.cpp28
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"