summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp')
-rw-r--r--tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
index 82832bced1..70df31ed69 100644
--- a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
+++ b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
@@ -40,6 +40,7 @@
#include <qdockwidget.h>
#include <qmainwindow.h>
#include <qlineedit.h>
+#include <qtabbar.h>
#include <QDesktopWidget>
#include <QtGui/QPainter>
#include "private/qdockwidget_p.h"
@@ -68,6 +69,7 @@ private slots:
void allowedAreas();
void toggleViewAction();
void visibilityChanged();
+ void updateTabBarOnVisibilityChanged();
void dockLocationChanged();
void setTitleBarWidget();
void titleBarDoubleClick();
@@ -586,6 +588,44 @@ void tst_QDockWidget::visibilityChanged()
QCOMPARE(spy.at(0).at(0).toBool(), true);
}
+void tst_QDockWidget::updateTabBarOnVisibilityChanged()
+{
+ // QTBUG49045: Populate tabified dock area with 4 widgets, set the tab
+ // index to 2 (dw2), hide dw0, dw1 and check that the tab index is 0 (dw3).
+ QMainWindow mw;
+ mw.setMinimumSize(400, 400);
+ mw.setWindowTitle(QTest::currentTestFunction());
+ QDockWidget *dw0 = new QDockWidget("d1", &mw);
+ dw0->setAllowedAreas(Qt::LeftDockWidgetArea);
+ mw.addDockWidget(Qt::LeftDockWidgetArea, dw0);
+ QDockWidget *dw1 = new QDockWidget("d2", &mw);
+ dw1->setAllowedAreas(Qt::LeftDockWidgetArea);
+ mw.addDockWidget(Qt::LeftDockWidgetArea, dw1);
+ QDockWidget *dw2 = new QDockWidget("d3", &mw);
+ dw2->setAllowedAreas(Qt::LeftDockWidgetArea);
+ mw.addDockWidget(Qt::LeftDockWidgetArea, dw2);
+ QDockWidget *dw3 = new QDockWidget("d4", &mw);
+ dw3->setAllowedAreas(Qt::LeftDockWidgetArea);
+ mw.addDockWidget(Qt::LeftDockWidgetArea, dw3);
+ mw.tabifyDockWidget(dw0, dw1);
+ mw.tabifyDockWidget(dw1, dw2);
+ mw.tabifyDockWidget(dw2, dw3);
+
+ QTabBar *tabBar = mw.findChild<QTabBar *>();
+ QVERIFY(tabBar);
+ tabBar->setCurrentIndex(2);
+
+ mw.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&mw));
+
+ QCOMPARE(tabBar->currentIndex(), 2);
+
+ dw0->hide();
+ dw1->hide();
+ QTRY_COMPARE(tabBar->count(), 2);
+ QCOMPARE(tabBar->currentIndex(), 0);
+}
+
Q_DECLARE_METATYPE(Qt::DockWidgetArea)
void tst_QDockWidget::dockLocationChanged()