diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-11-04 20:18:14 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-11-04 20:18:14 +0100 |
commit | 4159ee840549df11287294f0928e90f35f3e06ff (patch) | |
tree | 4a3947e37d54bdb78b4042e9ced20dbf181b5a2c /tests/auto/widgets/widgets | |
parent | 59dbf1786f22ec4ac88d8f9d38cac5cfb82acaea (diff) | |
parent | c8c39ecc37c156ac2677de09a26548dfc274b564 (diff) |
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
config.tests/unix/ptrsize.test
configure
src/corelib/global/qnamespace.h
src/network/socket/qabstractsocket.cpp
tests/auto/other/networkselftest/networkselftest.pro
Change-Id: Ic78abb4a34f9068567cea876861d4220f5a07672
Diffstat (limited to 'tests/auto/widgets/widgets')
3 files changed, 82 insertions, 18 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() diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp index f936670d9e..ba700ed58d 100644 --- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp +++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp @@ -4326,10 +4326,10 @@ void tst_QLineEdit::clearButtonVisibleAfterSettingText_QTBUG_45518() #endif // QT_BUILD_INTERNAL } -static inline QIcon sideWidgetTestIcon() +static inline QIcon sideWidgetTestIcon(Qt::GlobalColor color = Qt::yellow) { QImage image(QSize(20, 20), QImage::Format_ARGB32); - image.fill(Qt::yellow); + image.fill(color); return QIcon(QPixmap::fromImage(image)); } @@ -4367,6 +4367,15 @@ void tst_QLineEdit::sideWidgets() lineEdit->addAction(iconAction); } +template <class T> T *findAssociatedWidget(const QAction *a) +{ + foreach (QWidget *w, a->associatedWidgets()) { + if (T *result = qobject_cast<T *>(w)) + return result; + } + return Q_NULLPTR; +} + void tst_QLineEdit::sideWidgetsActionEvents() { // QTBUG-39660, verify whether action events are handled by the widget. @@ -4375,28 +4384,43 @@ void tst_QLineEdit::sideWidgetsActionEvents() QLineEdit *lineEdit = new QLineEdit(&testWidget); l->addWidget(lineEdit); l->addSpacerItem(new QSpacerItem(0, 50, QSizePolicy::Ignored, QSizePolicy::Fixed)); - QAction *iconAction = lineEdit->addAction(sideWidgetTestIcon(), QLineEdit::LeadingPosition); + QAction *iconAction1 = lineEdit->addAction(sideWidgetTestIcon(Qt::red), QLineEdit::LeadingPosition); + QAction *iconAction2 = lineEdit->addAction(sideWidgetTestIcon(Qt::blue), QLineEdit::LeadingPosition); + QAction *iconAction3 = lineEdit->addAction(sideWidgetTestIcon(Qt::yellow), QLineEdit::LeadingPosition); + iconAction3->setVisible(false); + testWidget.move(300, 300); testWidget.show(); QVERIFY(QTest::qWaitForWindowExposed(&testWidget)); - QWidget *toolButton = Q_NULLPTR; - foreach (QWidget *w, iconAction->associatedWidgets()) { - if (qobject_cast<QToolButton *>(w)) { - toolButton = w; - break; - } - } - QVERIFY(toolButton); + QWidget *toolButton1 = findAssociatedWidget<QToolButton>(iconAction1); + QWidget *toolButton2 = findAssociatedWidget<QToolButton>(iconAction2); + QWidget *toolButton3 = findAssociatedWidget<QToolButton>(iconAction3); + + QVERIFY(toolButton1); + QVERIFY(toolButton2); + QVERIFY(toolButton3); + + QVERIFY(!toolButton3->isVisible()); // QTBUG-48899 , action hidden before show(). + + QVERIFY(toolButton1->isVisible()); + QVERIFY(toolButton1->isEnabled()); + + QVERIFY(toolButton2->isVisible()); + QVERIFY(toolButton2->isEnabled()); + + const int toolButton1X = toolButton1->x(); + const int toolButton2X = toolButton2->x(); + QVERIFY(toolButton1X < toolButton2X); // QTBUG-48806, positioned beside each other. - QVERIFY(toolButton->isVisible()); - QVERIFY(toolButton->isEnabled()); + iconAction1->setEnabled(false); + QVERIFY(!toolButton1->isEnabled()); - iconAction->setEnabled(false); - QVERIFY(!toolButton->isEnabled()); + iconAction1->setVisible(false); + QVERIFY(!toolButton1->isVisible()); - iconAction->setVisible(false); - QVERIFY(!toolButton->isVisible()); + // QTBUG-39660, button 2 takes position of invisible button 1. + QCOMPARE(toolButton2->x(), toolButton1X); } Q_DECLARE_METATYPE(Qt::AlignmentFlag) diff --git a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp index 4a5f9d535b..5455ebb830 100644 --- a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp +++ b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp @@ -267,7 +267,7 @@ void tst_QProgressBar::sizeHint() //test if the sizeHint is big enough QFontMetrics fm = bar.fontMetrics(); - QStyleOptionProgressBarV2 opt; + QStyleOptionProgressBar opt; bar.initStyleOption(&opt); QSize size = QSize(9 * 7 + fm.width(QLatin1Char('0')) * 4, fm.height() + 8); size= bar.style()->sizeFromContents(QStyle::CT_ProgressBar, &opt, size, &bar); |