From 42d681f9cfc984046a93b9efe19903d46ac68bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lund=20Martsum?= Date: Mon, 3 Sep 2012 06:35:39 +0200 Subject: Add widget replace function to QLayout Sometimes it is nice to be able to replace a widget in a layout. Change-Id: I23a6a65e417e94d53bc48639503db1a142bc3f10 Reviewed-by: J-P Nurmi --- .../kernel/qstackedlayout/tst_qstackedlayout.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp') diff --git a/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp b/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp index 9ab7bb5305..1ff2e7867c 100644 --- a/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp +++ b/tests/auto/widgets/kernel/qstackedlayout/tst_qstackedlayout.cpp @@ -70,6 +70,7 @@ private slots: void removeWidget(); void keepFocusAfterSetCurrent(); void heigthForWidth(); + void replaceWidget(); private: QWidget *testWidget; @@ -393,6 +394,27 @@ void tst_QStackedLayout::heigthForWidth() } +void tst_QStackedLayout::replaceWidget() +{ + QWidget w; + QStackedLayout *stackLayout = new QStackedLayout(&w); + + QLineEdit *replaceFrom = new QLineEdit; + QLineEdit *replaceTo = new QLineEdit; + stackLayout->addWidget(new QLineEdit()); + stackLayout->addWidget(replaceFrom); + stackLayout->addWidget(new QLineEdit()); + stackLayout->setCurrentWidget(replaceFrom); + + QCOMPARE(stackLayout->indexOf(replaceFrom), 1); + QCOMPARE(stackLayout->indexOf(replaceTo), -1); + stackLayout->replaceWidget(replaceFrom, replaceTo); + + QCOMPARE(stackLayout->indexOf(replaceFrom), -1); + QCOMPARE(stackLayout->indexOf(replaceTo), 1); + QCOMPARE(stackLayout->currentWidget(), replaceTo); +} + QTEST_MAIN(tst_QStackedLayout) #include "tst_qstackedlayout.moc" -- cgit v1.2.3