summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativetextedit
diff options
context:
space:
mode:
authorChristopher Ham <christopher.ham@nokia.com>2011-01-28 03:32:25 (GMT)
committerChristopher Ham <christopher.ham@nokia.com>2011-01-28 03:32:25 (GMT)
commit64c0ee4e5f1f05105ab6168ebb4cb188e8fd838f (patch)
tree2e0ffdfb7c9dbf702eed0609ebe46b77339b97e7 /tests/auto/declarative/qdeclarativetextedit
parent57ddd7c69705dfbf3d06b8a0157e5e706120c818 (diff)
downloadQt-64c0ee4e5f1f05105ab6168ebb4cb188e8fd838f.zip
Qt-64c0ee4e5f1f05105ab6168ebb4cb188e8fd838f.tar.gz
Qt-64c0ee4e5f1f05105ab6168ebb4cb188e8fd838f.tar.bz2
Fixing right-to-left text in Text and TextInput
The Text and TextInput items should now automatically flip the alignment of right-to-left text. Autotests also added to ensure the text is on the correct side (added for TextInput also). Task-number: QTBUG-15880 Reviewed-by: Martin Jones
Diffstat (limited to 'tests/auto/declarative/qdeclarativetextedit')
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml23
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp25
2 files changed, 48 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml b/tests/auto/declarative/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml
new file mode 100644
index 0000000..43ea8d8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml
@@ -0,0 +1,23 @@
+import QtQuick 1.0
+
+Rectangle {
+ id: top
+ width: 200; height: 70;
+
+ property alias horizontalAlignment: text.horizontalAlignment
+ property string text: "اختبا"
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: 200
+ height: 20
+ color: "green"
+
+ TextEdit {
+ id: text
+ objectName: "text"
+ anchors.fill: parent
+ text: top.text
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
index cd1977a..b1e0cb9 100644
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -102,6 +102,7 @@ private slots:
// ### these tests may be trivial
void hAlign();
+ void hAlign_RightToLeft();
void vAlign();
void font();
void color();
@@ -424,6 +425,30 @@ void tst_qdeclarativetextedit::hAlign()
}
+void tst_qdeclarativetextedit::hAlign_RightToLeft()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/horizontalAlignment_RightToLeft.qml");
+ QDeclarativeTextEdit *textEdit = canvas->rootObject()->findChild<QDeclarativeTextEdit*>("text");
+ QVERIFY(textEdit != 0);
+ canvas->show();
+
+ QVERIFY(textEdit->positionToRectangle(0).x() > canvas->width()/2);
+
+ // "Right" align
+ textEdit->setHAlign(QDeclarativeTextEdit::AlignRight);
+ QCOMPARE(textEdit->hAlign(), QDeclarativeTextEdit::AlignRight);
+ QVERIFY(textEdit->positionToRectangle(0).x() < canvas->width()/2);
+
+ // Center align
+ // Note that position 0 is on the right-hand side
+ textEdit->setHAlign(QDeclarativeTextEdit::AlignHCenter);
+ QCOMPARE(textEdit->hAlign(), QDeclarativeTextEdit::AlignHCenter);
+ QVERIFY(textEdit->positionToRectangle(0).x() - textEdit->width() < canvas->width()/2);
+ QVERIFY(textEdit->positionToRectangle(0).x() > canvas->width()/2);
+
+ delete canvas;
+}
+
void tst_qdeclarativetextedit::vAlign()
{
//test one align each, and then test if two align fails.