tests/auto/qtabbar/tst_qtabbar.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/tests/auto/qtabbar/tst_qtabbar.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/tests/auto/qtabbar/tst_qtabbar.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -95,6 +95,8 @@
 
     void task251184_removeTab();
     void changeTitleWhileDoubleClickingTab();
+
+    void taskQTBUG_10052_widgetLayoutWhenMoving();
 };
 
 // Testing get/set functions
@@ -273,6 +275,9 @@
     if (tabElideMode != -128)
         tabBar.setElideMode(Qt::TextElideMode(tabElideMode));
     QTEST(int(tabBar.elideMode()), "expectedMode");
+    // Make sure style sheet does not override user set mode
+    tabBar.setStyleSheet("QWidget { background-color: #ABA8A6;}");
+    QTEST(int(tabBar.elideMode()), "expectedMode");
 }
 
 void tst_QTabBar::setUsesScrollButtons_data()
@@ -573,5 +578,38 @@
         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"