From 6c98c8b0c8739814d9367d5c29f5c4034ebda0b1 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 23 Sep 2009 12:56:29 +1000 Subject: QFxTextEdit test passes again --- src/declarative/fx/qfxtextedit.cpp | 3 ++- tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp index f7b92a4..ce06348 100644 --- a/src/declarative/fx/qfxtextedit.cpp +++ b/src/declarative/fx/qfxtextedit.cpp @@ -1051,7 +1051,8 @@ void QFxTextEdit::updateSize() if(d->cursor) cursorWidth = d->cursor->width(); newWidth += cursorWidth; - newWidth += 3;// ### Need a better way of ensuring cursor is in width + if(!d->document->isEmpty()) + newWidth += 3;// ### Need a better way of accounting for space between char and cursor setImplicitWidth(newWidth); setImplicitHeight(d->text.isEmpty() ? fm.height() : (int)d->document->size().height()); diff --git a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp index ffbb09b..e38e0e7 100644 --- a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp +++ b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp @@ -130,7 +130,7 @@ void tst_qfxtextedit::width() QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); - QCOMPARE(textEditObject->width(), 0.); + QCOMPARE(textEditObject->width(), 1.);//+1 for cursor } for (int i = 0; i < standard.size(); i++) @@ -144,7 +144,7 @@ void tst_qfxtextedit::width() QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); - QCOMPARE(textEditObject->width(), qreal(metricWidth)); + QCOMPARE(textEditObject->width(), qreal(metricWidth + 1 + 3));//+3 is the current way of accounting for space between cursor and last character. } for (int i = 0; i < richText.size(); i++) @@ -160,7 +160,7 @@ void tst_qfxtextedit::width() QFxTextEdit *textEditObject = qobject_cast(texteditComponent.create()); QVERIFY(textEditObject != 0); - QCOMPARE(textEditObject->width(), qreal(documentWidth)); + QCOMPARE(textEditObject->width(), qreal(documentWidth + 1 + 3)); } } -- cgit v0.12 From 0c5bca04abefde65c445df1e415f27108a8227b3 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 23 Sep 2009 13:00:18 +1000 Subject: fix QFxTextInput Autotest Note that a test based on focus is still failing, presumably due to recent focus changes. Haven't yet investigated if it should be failing or not. --- .../declarative/qfxtextinput/tst_qfxtextinput.cpp | 49 ++++++++++------------ 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp index 13a301d..bd0b9c3 100644 --- a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp +++ b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp @@ -93,7 +93,7 @@ void tst_qfxtextinput::width() { QFont f; QFontMetrics fm(f); - int metricWidth = fm.size(Qt::TextExpandTabs && Qt::TextShowMnemonic, standard.at(i)).width(); + int metricWidth = fm.width(standard.at(i)); QString componentStr = "import Qt 4.6\nTextInput { text: \"" + standard.at(i) + "\" }"; QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); @@ -268,43 +268,36 @@ void tst_qfxtextinput::selection() void tst_qfxtextinput::maxLength() { - QmlView *canvas = createView(SRCDIR "/data/navigation.qml"); - canvas->execute(); - canvas->show(); - - QVERIFY(canvas->root() != 0); - - QFxItem *input = qobject_cast(qvariant_cast(canvas->root()->property("myInput"))); - - QVERIFY(input != 0); - //TODO: Me + QString componentStr = "import Qt 4.6\nTextInput { maximumLength: 10; }"; + QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); + QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QVERIFY(textinputObject != 0); + QVERIFY(textinputObject->text().isEmpty()); + foreach(const QString &str, standard){ + QVERIFY(textinputObject->text().length() <= 10); + textinputObject->setText(str); + QVERIFY(textinputObject->text().length() <= 10); + } + //TODO: Simulated keypress input adding 11 chars at a time } void tst_qfxtextinput::masks() { - QmlView *canvas = createView(SRCDIR "/data/navigation.qml"); - canvas->execute(); - canvas->show(); - - QVERIFY(canvas->root() != 0); - - QFxItem *input = qobject_cast(qvariant_cast(canvas->root()->property("myInput"))); + QString componentStr = "import Qt 4.6\nTextInput { maximumLength: 10; }"; + QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); + QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QVERIFY(textinputObject != 0); - QVERIFY(input != 0); //TODO: Me } void tst_qfxtextinput::validators() { - QmlView *canvas = createView(SRCDIR "/data/navigation.qml"); - canvas->execute(); - canvas->show(); - - QVERIFY(canvas->root() != 0); - - QFxItem *input = qobject_cast(qvariant_cast(canvas->root()->property("myInput"))); + QString componentStr = "import Qt 4.6\nTextInput { maximumLength: 10; }"; + QmlComponent textinputComponent(&engine, componentStr.toLatin1(), QUrl()); + QFxTextInput *textinputObject = qobject_cast(textinputComponent.create()); + QVERIFY(textinputObject != 0); - QVERIFY(input != 0); //TODO: Me } @@ -336,7 +329,7 @@ void tst_qfxtextinput::navigation() void tst_qfxtextinput::cursorDelegate() { - //TODO:Get the QFxTextInput test passing first + //TODO:Get the QFxTextEdit test passing first } void tst_qfxtextinput::simulateKey(QmlView *view, int key) -- cgit v0.12 From 8302f03e137a73543ab52ff451781617ce8a8760 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 23 Sep 2009 14:45:47 +1000 Subject: Repeater is more consistent with its docs Task-number: QT-2030 Reviewed-by: Yann Bodson --- src/declarative/fx/qfxrepeater.cpp | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/declarative/fx/qfxrepeater.cpp b/src/declarative/fx/qfxrepeater.cpp index 84804ce..5ef7b10 100644 --- a/src/declarative/fx/qfxrepeater.cpp +++ b/src/declarative/fx/qfxrepeater.cpp @@ -282,14 +282,26 @@ void QFxRepeater::regenerate() if (!d->model || !d->model->count() || !d->model->isValid() || !parentItem() || !isComponentComplete()) return; - if (d->model) { - for (int ii = 0; ii < count(); ++ii) { - QFxItem *item = d->model->item(ii); - if (item) { - item->setParent(parentItem()); - d->deletables << item; - } + //In order to do the insertion like the examples, we have to be at the + //same point in the childItems() list. Temporary measure until we think of something better + int pos = parentItem()->childItems().indexOf(this); + Q_ASSERT(pos != -1); + QList otherChildren; + for (int ii = pos+1; ii < parentItem()->childItems().count(); ii++){ + QGraphicsItem* otherChild = parentItem()->childItems()[ii]; + otherChildren << otherChild; + otherChild->setParentItem(0); + } + + for (int ii = 0; ii < count(); ++ii) { + QFxItem *item = d->model->item(ii); + if (item) { + item->setParent(parentItem()); + d->deletables << item; } } + + foreach(QGraphicsItem* other, otherChildren) + other->setParentItem(parentItem()); } QT_END_NAMESPACE -- cgit v0.12