diff options
author | Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> | 2010-04-23 08:22:44 (GMT) |
---|---|---|
committer | Gabriel de Dietrich <gabriel.dietrich-de@nokia.com> | 2010-04-23 09:18:52 (GMT) |
commit | 4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2 (patch) | |
tree | bdf4fbcd035ac238efa1eb73bc60fd5105d7e2d0 /tests/auto/qtabbar/tst_qtabbar.cpp | |
parent | 66da5958bc3ec0df60e76bb32ead94bfe7b2eac7 (diff) | |
download | Qt-4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2.zip Qt-4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2.tar.gz Qt-4743831d128dfad4ac9fbafa6e7544dbe7fb7ed2.tar.bz2 |
QTabBar: Widgets inside the tab bar where not properly laid out after moveTab()
Only the leftmost tab was being correctly laid out after the move due
to a mistake in QTabBarPrivate::layoutTab().
Auto-test included.
Reviewed-by: Thierry
Task-number: QTBUG-10052
Diffstat (limited to 'tests/auto/qtabbar/tst_qtabbar.cpp')
-rw-r--r-- | tests/auto/qtabbar/tst_qtabbar.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/auto/qtabbar/tst_qtabbar.cpp b/tests/auto/qtabbar/tst_qtabbar.cpp index 72f9dd3..ac3de20 100644 --- a/tests/auto/qtabbar/tst_qtabbar.cpp +++ b/tests/auto/qtabbar/tst_qtabbar.cpp @@ -95,6 +95,8 @@ private slots: void task251184_removeTab(); void changeTitleWhileDoubleClickingTab(); + + void taskQTBUG_10052_widgetLayoutWhenMoving(); }; // Testing get/set functions @@ -576,5 +578,38 @@ void tst_QTabBar::changeTitleWhileDoubleClickingTab() QTest::mouseDClick(&bar, Qt::LeftButton, 0, tabPos); } +class Widget10052 : public QWidget +{ +public: + Widget10052(QWidget *parent) : QWidget(parent), moved(false) + { } + + void moveEvent(QMoveEvent *e) + { + moved = e->oldPos() != e->pos(); + QWidget::moveEvent(e); + } + + bool moved; +}; + +void tst_QTabBar::taskQTBUG_10052_widgetLayoutWhenMoving() +{ + QTabBar tabBar; + tabBar.insertTab(0, "My first tab"); + Widget10052 w1(&tabBar); + tabBar.setTabButton(0, QTabBar::RightSide, &w1); + tabBar.insertTab(1, "My other tab"); + Widget10052 w2(&tabBar); + tabBar.setTabButton(1, QTabBar::RightSide, &w2); + + tabBar.show(); + QTest::qWaitForWindowShown(&tabBar); + w1.moved = w2.moved = false; + tabBar.moveTab(0, 1); + QTRY_VERIFY(w1.moved); + QVERIFY(w2.moved); +} + QTEST_MAIN(tst_QTabBar) #include "tst_qtabbar.moc" |