diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2012-06-28 21:04:54 +0400 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-08-13 19:28:31 +0200 |
commit | 252bad7c589e03d3e12df02354b00a84d8e3159a (patch) | |
tree | 9e572c1704028e4c0d343c63801f4a5d0e8a9627 /tests/auto/widgets/widgets/qtabwidget | |
parent | 91e86688fc119e1bb67fd40ab30101015ddb638b (diff) |
Add useful signals to QTabBar and QTabWidget
In this patch we introduce tabBarClicked and tabBarDoubleClicked to get
a finer grained information on the user interaction with the tab bar.
Done-with: kevin.ottens@kdab.com
Change-Id: I7be76a556ca09186e98f2e076fe2512d6c5e6773
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Diffstat (limited to 'tests/auto/widgets/widgets/qtabwidget')
-rw-r--r-- | tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp b/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp index 5dd9ee9b0f..fa518e6afd 100644 --- a/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp +++ b/tests/auto/widgets/widgets/qtabwidget/tst_qtabwidget.cpp @@ -42,6 +42,7 @@ #include <QtTest/QtTest> #include <qtabwidget.h> +#include <qtabbar.h> #include <qdebug.h> #include <qapplication.h> #include <qlabel.h> @@ -110,6 +111,7 @@ class tst_QTabWidget:public QObject { void minimumSizeHint(); void heightForWidth_data(); void heightForWidth(); + void tabBarClicked(); private: int addPage(); @@ -666,6 +668,46 @@ void tst_QTabWidget::heightForWidth() delete window; } +void tst_QTabWidget::tabBarClicked() +{ + QTabWidget tabWidget; + tabWidget.addTab(new QWidget(&tabWidget), "0"); + QSignalSpy clickSpy(&tabWidget, SIGNAL(tabBarClicked(int))); + QSignalSpy doubleClickSpy(&tabWidget, SIGNAL(tabBarDoubleClicked(int))); + + QCOMPARE(clickSpy.count(), 0); + QCOMPARE(doubleClickSpy.count(), 0); + + QTabBar &tabBar = *tabWidget.tabBar(); + Qt::MouseButton button = Qt::LeftButton; + while (button <= Qt::MaxMouseButton) { + const QPoint tabPos = tabBar.tabRect(0).center(); + + QTest::mouseClick(&tabBar, button, 0, tabPos); + QCOMPARE(clickSpy.count(), 1); + QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), 0); + QCOMPARE(doubleClickSpy.count(), 0); + + QTest::mouseDClick(&tabBar, button, 0, tabPos); + QCOMPARE(clickSpy.count(), 0); + QCOMPARE(doubleClickSpy.count(), 1); + QCOMPARE(doubleClickSpy.takeFirst().takeFirst().toInt(), 0); + + const QPoint barPos(tabBar.tabRect(0).right() + 5, tabBar.tabRect(0).center().y()); + + QTest::mouseClick(&tabBar, button, 0, barPos); + QCOMPARE(clickSpy.count(), 1); + QCOMPARE(clickSpy.takeFirst().takeFirst().toInt(), -1); + QCOMPARE(doubleClickSpy.count(), 0); + + QTest::mouseDClick(&tabBar, button, 0, barPos); + QCOMPARE(clickSpy.count(), 0); + QCOMPARE(doubleClickSpy.count(), 1); + QCOMPARE(doubleClickSpy.takeFirst().takeFirst().toInt(), -1); + + button = Qt::MouseButton(button << 1); + } +} QTEST_MAIN(tst_QTabWidget) #include "tst_qtabwidget.moc" |