From: Frederik Gladhorn Date: Tue, 19 Mar 2013 14:04:44 +0000 (+0100) Subject: Make sure that TextInteractionFlags get set. X-Git-Tag: upstream/5.2.1~817 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7148a79775e31eb5e3053f82f4ee5a9ba702ddae;p=platform%2Fupstream%2Fqtdeclarative.git Make sure that TextInteractionFlags get set. The first time the function is called, it could fail to set the flags. Calling setSelectByKeyboard(true) would not actually set the text interaction flags (was == on). The test didn't detect it because it called setReadOnly before setSelectByKeyboard. Change-Id: Ia54cc782b6ad5a74f1d7029c92fa230116d034b0 Reviewed-by: J-P Nurmi --- diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index e30b9cb..feabbba 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -1265,8 +1265,8 @@ void QQuickTextEdit::setSelectByKeyboard(bool on) { Q_D(QQuickTextEdit); bool was = selectByKeyboard(); - d->selectByKeyboardSet = true; - if (was != on) { + if (!d->selectByKeyboardSet || was != on) { + d->selectByKeyboardSet = true; d->selectByKeyboard = on; if (on) d->control->setTextInteractionFlags(d->control->textInteractionFlags() | Qt::TextSelectableByKeyboard); diff --git a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp index b9041fb..bce1f9e 100644 --- a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp +++ b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp @@ -2171,8 +2171,8 @@ void tst_qquicktextedit::keyboardSelection() QVERIFY(edit); edit->setText(text); - edit->setReadOnly(readOnly); edit->setSelectByKeyboard(selectByKeyboard); + edit->setReadOnly(readOnly); edit->setCursorPosition(cursorPosition); QQuickWindow window;