summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp32
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp197
-rw-r--r--tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp37
-rw-r--r--tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp43
-rw-r--r--tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp29
5 files changed, 222 insertions, 116 deletions
diff --git a/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp b/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
index c3d2c4a9e7..cd9ff28891 100644
--- a/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
+++ b/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
@@ -50,6 +50,7 @@
#include <QVBoxLayout>
#include <QSizeGrip>
#include <QDesktopWidget>
+#include <QWindow>
#include <private/qguiapplication_p.h>
#include <qpa/qplatformtheme.h>
#include <qpa/qplatformtheme_p.h>
@@ -85,6 +86,8 @@ private slots:
void setVisible();
void reject();
void snapToDefaultButton();
+ void transientParent_data();
+ void transientParent();
private:
QDialog *testWidget;
@@ -584,5 +587,34 @@ void tst_QDialog::snapToDefaultButton()
#endif // !QT_NO_CURSOR
}
+void tst_QDialog::transientParent_data()
+{
+ QTest::addColumn<bool>("nativewidgets");
+ QTest::newRow("Non-native") << false;
+ QTest::newRow("Native") << true;
+}
+
+void tst_QDialog::transientParent()
+{
+ QFETCH(bool, nativewidgets);
+ testWidget->hide();
+ QWidget topLevel;
+ topLevel.resize(200, 200);
+ topLevel.move(QGuiApplication::primaryScreen()->availableGeometry().center() - QPoint(100, 100));
+ QVBoxLayout *layout = new QVBoxLayout(&topLevel);
+ QWidget *innerWidget = new QWidget(&topLevel);
+ layout->addWidget(innerWidget);
+ if (nativewidgets)
+ innerWidget->winId();
+ topLevel.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&topLevel));
+ QDialog dialog(innerWidget);
+ dialog.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&dialog));
+ // Transient parent should always be the top level, also when using
+ // native child widgets.
+ QCOMPARE(dialog.windowHandle()->transientParent(), topLevel.windowHandle());
+}
+
QTEST_MAIN(tst_QDialog)
#include "tst_qdialog.moc"
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 73bec9a6b9..4252fb673b 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -262,7 +262,6 @@ private slots:
void optimizedResizeMove();
void optimizedResize_topLevel();
void resizeEvent();
- void moveEvent();
void task110173();
void testDeletionInEventHandlers();
@@ -1211,6 +1210,12 @@ void tst_QWidget::isEnabledTo()
QVERIFY( !childWidget->isEnabledTo( testWidget ) );
QVERIFY( grandChildWidget->isEnabledTo( childWidget ) );
QVERIFY( !grandChildWidget->isEnabledTo( testWidget ) );
+
+ QMainWindow* childDialog = new QMainWindow(testWidget);
+ testWidget->setEnabled(false);
+ QVERIFY(!childDialog->isEnabled());
+ QVERIFY(childDialog->isEnabledTo(0));
+ testWidget->setEnabled(true);
}
void tst_QWidget::visible()
@@ -1465,7 +1470,8 @@ void tst_QWidget::mapFromAndTo()
subWindow2->setGeometry(75, 75, 100, 100);
subSubWindow->setGeometry(10, 10, 10, 10);
-#if !defined (Q_OS_WINCE) //still no proper minimizing
+#if !defined(Q_OS_WINCE) && !defined(Q_OS_QNX) \
+ || (defined(Q_OS_BLACKBERRY) && !defined(Q_OS_BLACKBERRY_TABLET))
//update visibility
if (windowMinimized) {
if (!windowHidden) {
@@ -1828,17 +1834,19 @@ void tst_QWidget::windowState()
{
if (m_platform == QStringLiteral("xcb"))
QSKIP("X11: Many window managers do not support window state properly, which causes this test to fail.");
-#ifdef Q_OS_WINCE_WM
- QPoint pos(500, 500);
+
+ QPoint pos;
QSize size(200, 200);
- if (qt_wince_is_smartphone()) { //small screen
- pos = QPoint(10,10);
- size = QSize(100,100);
- }
-#else
- const QPoint pos(500, 500);
- const QSize size(200, 200);
+ if (QGuiApplicationPrivate::platformIntegration()->defaultWindowState(Qt::Widget)
+ == Qt::WindowFullScreen) {
+ size = QGuiApplication::primaryScreen()->size();
+ } else {
+ pos = QPoint(10, 10);
+#ifdef Q_OS_WINCE_WM
+ if (qt_wince_is_smartphone()) { //small screen
+ size = QSize(100,100);
#endif
+ }
QWidget widget1;
widget1.move(pos);
@@ -1860,7 +1868,7 @@ void tst_QWidget::windowState()
VERIFY_STATE(Qt::WindowMaximized);
QCOMPARE(widget1.windowHandle()->windowState(), Qt::WindowMaximized);
- widget1.show();
+ widget1.setVisible(true);
QTest::qWait(100);
VERIFY_STATE(Qt::WindowMaximized);
QCOMPARE(widget1.windowHandle()->windowState(), Qt::WindowMaximized);
@@ -2109,53 +2117,41 @@ void tst_QWidget::showFullScreen()
class ResizeWidget : public QWidget {
public:
- ResizeWidget(QWidget *p = 0)
- : QWidget(p)
- , m_spontaneousResizeEventCount(0)
- , m_synthesizedResizeEventCount(0)
- , m_spontaneousMoveEventCount(0)
- , m_synthesizedMoveEventCount(0)
+ ResizeWidget(QWidget *p = 0) : QWidget(p)
{
setObjectName(QLatin1String("ResizeWidget"));
setWindowTitle(objectName());
+ m_resizeEventCount = 0;
}
protected:
void resizeEvent(QResizeEvent *e){
QCOMPARE(size(), e->size());
- (e->spontaneous() ? m_spontaneousResizeEventCount : m_synthesizedResizeEventCount)++;
- }
- void moveEvent(QMoveEvent *e)
- {
- (e->spontaneous() ? m_spontaneousMoveEventCount : m_synthesizedMoveEventCount)++;
+ ++m_resizeEventCount;
}
public:
- int m_spontaneousResizeEventCount;
- int m_synthesizedResizeEventCount;
- int m_spontaneousMoveEventCount;
- int m_synthesizedMoveEventCount;
+ int m_resizeEventCount;
};
void tst_QWidget::resizeEvent()
{
+ QSKIP("QTBUG-30744");
+
{
QWidget wParent;
wParent.resize(200, 200);
ResizeWidget wChild(&wParent);
wParent.show();
QTest::qWaitForWindowExposed(&wParent);
- QCOMPARE (wChild.m_synthesizedResizeEventCount, 1); // initial resize event before paint
- QCOMPARE (wChild.m_spontaneousResizeEventCount, 0);
+ QCOMPARE (wChild.m_resizeEventCount, 1); // initial resize event before paint
wParent.hide();
QSize safeSize(640,480);
if (wChild.size() == safeSize)
safeSize.setWidth(639);
wChild.resize(safeSize);
- QCOMPARE (wChild.m_synthesizedResizeEventCount, 1);
- QCOMPARE (wChild.m_spontaneousResizeEventCount, 0);
+ QCOMPARE (wChild.m_resizeEventCount, 1);
wParent.show();
- QCOMPARE (wChild.m_synthesizedResizeEventCount, 2);
- QCOMPARE (wChild.m_spontaneousResizeEventCount, 0);
+ QCOMPARE (wChild.m_resizeEventCount, 2);
}
{
@@ -2163,39 +2159,19 @@ void tst_QWidget::resizeEvent()
wTopLevel.resize(200, 200);
wTopLevel.show();
QTest::qWaitForWindowExposed(&wTopLevel);
- const int synthesizedResizeEventCountAfterShow = wTopLevel.m_synthesizedResizeEventCount;
- QCOMPARE (synthesizedResizeEventCountAfterShow, 1); // initial resize event before paint for toplevels
- QCOMPARE (wTopLevel.m_spontaneousResizeEventCount, 0);
+ QCOMPARE (wTopLevel.m_resizeEventCount, 1); // initial resize event before paint for toplevels
wTopLevel.hide();
QSize safeSize(640,480);
if (wTopLevel.size() == safeSize)
safeSize.setWidth(639);
wTopLevel.resize(safeSize);
- QCOMPARE (wTopLevel.m_synthesizedResizeEventCount, synthesizedResizeEventCountAfterShow);
- QCOMPARE (wTopLevel.m_spontaneousResizeEventCount, 0);
+ QCOMPARE (wTopLevel.m_resizeEventCount, 1);
wTopLevel.show();
QTest::qWaitForWindowExposed(&wTopLevel);
-#ifdef Q_OS_OSX
- QEXPECT_FAIL("", "QTBUG-30744", Abort);
-#endif
- QCOMPARE (wTopLevel.m_synthesizedResizeEventCount, synthesizedResizeEventCountAfterShow + 1);
- QCOMPARE (wTopLevel.m_spontaneousResizeEventCount, 0);
+ QCOMPARE (wTopLevel.m_resizeEventCount, 2);
}
}
-void tst_QWidget::moveEvent()
-{
- ResizeWidget wTopLevel;
- wTopLevel.resize(200, 200);
- centerOnScreen(&wTopLevel);
- wTopLevel.show();
- QTest::qWaitForWindowExposed(&wTopLevel);
- const int synthesizedMoveEventCountAfterShow = wTopLevel.m_synthesizedMoveEventCount;
- wTopLevel.move(wTopLevel.pos() + QPoint(20, 20));
- QTRY_COMPARE (wTopLevel.m_synthesizedMoveEventCount, synthesizedMoveEventCountAfterShow + 1);
- QCOMPARE (wTopLevel.m_spontaneousMoveEventCount, 0);
-}
-
void tst_QWidget::showMinimized()
{
QWidget plain;
@@ -2471,7 +2447,7 @@ void tst_QWidget::normalGeometry()
QCOMPARE(child->normalGeometry(), QRect());
parent.setGeometry(100, 100, 200, 200);
- parent.show();
+ parent.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&parent));
QApplication::processEvents();
@@ -2574,7 +2550,7 @@ void tst_QWidget::setGeometry()
QRect cr(50,50,50,50);
tlw.setGeometry(tr);
child.setGeometry(cr);
- tlw.show();
+ tlw.showNormal();
QTest::qWait(50);
QCOMPARE(tlw.geometry().size(), tr.size());
QCOMPARE(child.geometry(), cr);
@@ -2584,7 +2560,7 @@ void tst_QWidget::setGeometry()
tr.moveTopLeft(QApplication::desktop()->availableGeometry().topLeft());
tlw.setGeometry(tr);
QCOMPARE(tlw.geometry(), tr);
- tlw.show();
+ tlw.showNormal();
QTest::qWait(50);
if (tlw.frameGeometry() != tlw.geometry())
QSKIP("Your window manager is too broken for this test");
@@ -3042,7 +3018,7 @@ void tst_QWidget::saveRestoreGeometry()
QWidget widget;
widget.move(position);
widget.resize(size);
- widget.show();
+ widget.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QApplication::processEvents();
@@ -3069,7 +3045,7 @@ void tst_QWidget::saveRestoreGeometry()
QVERIFY(widget.restoreGeometry(garbage) == false);
QVERIFY(widget.restoreGeometry(savedGeometry));
- widget.show();
+ widget.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QApplication::processEvents();
@@ -3084,7 +3060,7 @@ void tst_QWidget::saveRestoreGeometry()
QWidget widget;
widget.move(position);
widget.resize(size);
- widget.show();
+ widget.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QTRY_COMPARE(widget.geometry().size(), size);
@@ -3206,7 +3182,7 @@ void tst_QWidget::restoreVersion1Geometry()
QCOMPARE(widget.pos(), expectedPosition);
QCOMPARE(widget.size(), expectedSize);
}
- widget.show();
+ widget.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QTest::qWait(100);
@@ -3264,14 +3240,14 @@ void tst_QWidget::widgetAt()
w2->setGeometry(50,50, 160, 100);
w2->setObjectName(QLatin1String("w2"));
w2->setWindowTitle(w2->objectName());
- w1->show();
+ w1->showNormal();
QVERIFY(QTest::qWaitForWindowExposed(w1.data()));
qApp->processEvents();
QWidget *wr;
QTRY_VERIFY((wr = QApplication::widgetAt(100, 100)));
QCOMPARE(wr->objectName(), QString("w1"));
- w2->show();
+ w2->showNormal();
QVERIFY(QTest::qWaitForWindowExposed(w2.data()));
qApp->processEvents();
qApp->processEvents();
@@ -3290,7 +3266,7 @@ void tst_QWidget::widgetAt()
QWidget *w3 = new QWidget(w2.data());
w3->setGeometry(10,10,50,50);
w3->setObjectName("w3");
- w3->show();
+ w3->showNormal();
qApp->processEvents();
QTRY_VERIFY((wr = QApplication::widgetAt(100,100)) && wr->objectName() == QString("w3"));
@@ -3298,6 +3274,11 @@ void tst_QWidget::widgetAt()
qApp->processEvents();
QTRY_VERIFY((wr = QApplication::widgetAt(100, 100)) && wr->objectName() == QString("w2"));
+ if (!QGuiApplicationPrivate::platformIntegration()
+ ->hasCapability(QPlatformIntegration::WindowMasks)) {
+ QSKIP("Platform does not support WindowMasks");
+ }
+
QRegion rgn = QRect(QPoint(0,0), w2->size());
QPoint point = w2->mapFromGlobal(QPoint(100,100));
rgn -= QRect(point, QSize(1,1));
@@ -3735,7 +3716,7 @@ void tst_QWidget::setMinimumSize()
#ifndef Q_OS_WINCE
QSize nonDefaultSize = defaultSize + QSize(5,5);
w.setMinimumSize(nonDefaultSize);
- w.show();
+ w.showNormal();
QTest::qWait(50);
QVERIFY(w.height() >= nonDefaultSize.height());
QVERIFY(w.width() >= nonDefaultSize.width());
@@ -3786,7 +3767,7 @@ void tst_QWidget::setFixedSize()
QVERIFY(!w.testAttribute(Qt::WA_Resized));
w.setFixedSize(defaultSize + QSize(150, 150));
- w.show();
+ w.showNormal();
QTest::qWait(50);
if (m_platform == QStringLiteral("xcb"))
QSKIP("QTBUG-26424");
@@ -4319,7 +4300,7 @@ void tst_QWidget::scroll()
updateWidget.resize(w, h);
updateWidget.reset();
updateWidget.move(QGuiApplication::primaryScreen()->geometry().center() - QPoint(250, 250));
- updateWidget.show();
+ updateWidget.showNormal();
qApp->setActiveWindow(&updateWidget);
QVERIFY(QTest::qWaitForWindowActive(&updateWidget));
QVERIFY(updateWidget.numPaintEvents > 0);
@@ -4522,7 +4503,7 @@ void tst_QWidget::setWindowGeometry()
widget.setWindowFlags(Qt::WindowFlags(windowFlags));
widget.setGeometry(rect);
- widget.show();
+ widget.showNormal();
if (rect.isValid())
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QTRY_COMPARE(widget.geometry(), rect);
@@ -4570,7 +4551,7 @@ void tst_QWidget::setWindowGeometry()
if (windowFlags != 0)
widget.setWindowFlags(Qt::WindowFlags(windowFlags));
- widget.show();
+ widget.showNormal();
if (rect.isValid())
QVERIFY(QTest::qWaitForWindowExposed(&widget));
widget.setGeometry(rect);
@@ -4684,7 +4665,7 @@ void tst_QWidget::windowMoveResize()
widget.move(rect.topLeft());
widget.resize(rect.size());
- widget.show();
+ widget.showNormal();
QTest::qWait(10);
QTRY_COMPARE(widget.pos(), rect.topLeft());
@@ -4764,7 +4745,7 @@ void tst_QWidget::windowMoveResize()
if (windowFlags != 0)
widget.setWindowFlags(Qt::WindowFlags(windowFlags));
- widget.show();
+ widget.showNormal();
if (rect.isValid())
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QApplication::processEvents();
@@ -5008,7 +4989,7 @@ void tst_QWidget::moveChild()
#ifndef QT_NO_CURSOR // Try to make sure the cursor is not in a taskbar area to prevent tooltips or window highlighting
QCursor::setPos(parent.geometry().topRight() + QPoint(50 , 50));
#endif
- parent.show();
+ parent.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&parent));
QTest::qWait(30);
@@ -5163,6 +5144,7 @@ void tst_QWidget::multipleToplevelFocusCheck()
w2.resize(200,200);
w2.show();
QVERIFY(QTest::qWaitForWindowExposed(&w2));
+ QTest::qWait(50);
QApplication::setActiveWindow(&w1);
w1.activateWindow();
@@ -5949,16 +5931,15 @@ void tst_QWidget::childEvents()
QCoreApplication::postEvent(&widget, new QEvent(QEvent::Type(QEvent::User + 1)));
- widget.show();
+ widget.showNormal();
expected =
EventRecorder::EventList()
- << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Polish)
+ << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Move)
<< qMakePair(&widget, QEvent::Resize)
- << qMakePair(&widget, QEvent::Show);
-
- expected << qMakePair(&widget, QEvent::ShowToParent);
+ << qMakePair(&widget, QEvent::Show)
+ << qMakePair(&widget, QEvent::ShowToParent);
QVERIFY2(spy.eventList() == expected,
EventRecorder::msgEventListMismatch(expected, spy.eventList()).constData());
@@ -5968,12 +5949,11 @@ void tst_QWidget::childEvents()
expected =
EventRecorder::EventList()
<< qMakePair(&widget, QEvent::PolishRequest)
- << qMakePair(&widget, QEvent::Type(QEvent::User + 1));
-
-#ifdef Q_OS_MAC
- expected << qMakePair(&widget, QEvent::UpdateLater);
+ << qMakePair(&widget, QEvent::Type(QEvent::User + 1))
+#if defined(Q_OS_OSX) || defined(Q_OS_QNX)
+ << qMakePair(&widget, QEvent::UpdateLater)
#endif
- expected << qMakePair(&widget, QEvent::UpdateRequest);
+ << qMakePair(&widget, QEvent::UpdateRequest);
if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb"))
QEXPECT_FAIL("", EventRecorder::msgExpectFailQtBug26424(expected, spy.eventList()).constData(), Continue);
@@ -6039,18 +6019,17 @@ void tst_QWidget::childEvents()
QCOMPARE(spy.eventList(), expected);
spy.clear();
- widget.show();
+ widget.showNormal();
expected =
EventRecorder::EventList()
- << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Polish)
<< qMakePair(&widget, QEvent::ChildPolished)
<< qMakePair(&widget, QEvent::ChildPolished)
+ << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Move)
<< qMakePair(&widget, QEvent::Resize)
- << qMakePair(&widget, QEvent::Show);
-
- expected << qMakePair(&widget, QEvent::ShowToParent);
+ << qMakePair(&widget, QEvent::Show)
+ << qMakePair(&widget, QEvent::ShowToParent);
QVERIFY2(spy.eventList() == expected,
EventRecorder::msgEventListMismatch(expected, spy.eventList()).constData());
@@ -6061,12 +6040,11 @@ void tst_QWidget::childEvents()
EventRecorder::EventList()
<< qMakePair(&widget, QEvent::PolishRequest)
<< qMakePair(&widget, QEvent::Type(QEvent::User + 1))
- << qMakePair(&widget, QEvent::Type(QEvent::User + 2));
-
-#ifdef Q_OS_MAC
- expected << qMakePair(&widget, QEvent::UpdateLater);
+ << qMakePair(&widget, QEvent::Type(QEvent::User + 2))
+#if defined(Q_OS_OSX) || defined(Q_OS_QNX)
+ << qMakePair(&widget, QEvent::UpdateLater)
#endif
- expected << qMakePair(&widget, QEvent::UpdateRequest);
+ << qMakePair(&widget, QEvent::UpdateRequest);
if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb"))
QEXPECT_FAIL("", EventRecorder::msgExpectFailQtBug26424(expected, spy.eventList()).constData(), Continue);
@@ -6135,17 +6113,17 @@ void tst_QWidget::childEvents()
QCOMPARE(spy.eventList(), expected);
spy.clear();
- widget.show();
+ widget.showNormal();
expected =
EventRecorder::EventList()
- << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Polish)
<< qMakePair(&widget, QEvent::ChildPolished)
+ << qMakePair(&widget, QEvent::WinIdChange)
<< qMakePair(&widget, QEvent::Move)
<< qMakePair(&widget, QEvent::Resize)
- << qMakePair(&widget, QEvent::Show);
+ << qMakePair(&widget, QEvent::Show)
+ << qMakePair(&widget, QEvent::ShowToParent);
- expected << qMakePair(&widget, QEvent::ShowToParent);
QVERIFY2(spy.eventList() == expected,
EventRecorder::msgEventListMismatch(expected, spy.eventList()).constData());
spy.clear();
@@ -6155,12 +6133,11 @@ void tst_QWidget::childEvents()
EventRecorder::EventList()
<< qMakePair(&widget, QEvent::PolishRequest)
<< qMakePair(&widget, QEvent::Type(QEvent::User + 1))
- << qMakePair(&widget, QEvent::Type(QEvent::User + 2));
-
-#ifdef Q_OS_MAC
- expected << qMakePair(&widget, QEvent::UpdateLater);
+ << qMakePair(&widget, QEvent::Type(QEvent::User + 2))
+#if defined(Q_OS_OSX) || defined(Q_OS_QNX)
+ << qMakePair(&widget, QEvent::UpdateLater)
#endif
- expected << qMakePair(&widget, QEvent::UpdateRequest);
+ << qMakePair(&widget, QEvent::UpdateRequest);
if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb"))
QEXPECT_FAIL("", EventRecorder::msgExpectFailQtBug26424(expected, spy.eventList()).constData(), Continue);
@@ -6323,7 +6300,7 @@ void tst_QWidget::renderInvisible()
QFont f;
f.setStyleStrategy(QFont::NoAntialias);
calendar->setFont(f);
- calendar->show();
+ calendar->showNormal();
QVERIFY(QTest::qWaitForWindowExposed(calendar.data()));
// Create a dummy focus widget to get rid of focus rect in reference image.
@@ -7188,7 +7165,7 @@ void tst_QWidget::moveWindowInShowEvent()
QCOMPARE(widget.pos(), initial);
// show it
- widget.show();
+ widget.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QTest::qWait(100);
// it should have moved
@@ -7273,6 +7250,9 @@ void tst_QWidget::hideOpaqueChildWhileHidden()
#if !defined(Q_OS_WINCE)
void tst_QWidget::updateWhileMinimized()
{
+#if defined(Q_OS_QNX) && (!defined(Q_OS_BLACKBERRY) || defined(Q_OS_BLACKBERRY_TABLET))
+ QSKIP("Platform does not support showMinimized()");
+#endif
UpdateWidget widget;
// Filter out activation change and focus events to avoid update() calls in QWidget.
widget.updateOnActivationChangeAndFocusIn = false;
@@ -7823,6 +7803,9 @@ void tst_QWidget::doubleRepaint()
// Minmize: Should not trigger a repaint.
widget.showMinimized();
QTest::qWait(10);
+#if defined(Q_OS_QNX) && (!defined(Q_OS_BLACKBERRY) || defined(Q_OS_BLACKBERRY_TABLET))
+ QEXPECT_FAIL("", "Platform does not support showMinimized()", Continue);
+#endif
QCOMPARE(widget.numPaintEvents, 0);
widget.numPaintEvents = 0;
@@ -9089,7 +9072,7 @@ void tst_QWidget::rectOutsideCoordinatesLimit_task144779()
bigWidget->setPalette(palette);
bigWidget->setAutoFillBackground(true);
- main.show();
+ main.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&main));
QPixmap correct(main.size());
@@ -10285,7 +10268,7 @@ void tst_QWidget::resizeStaticContentsChildWidget_QTBUG35282()
childWidget.setAttribute(Qt::WA_OpaquePaintEvent);
childWidget.setGeometry(250, 250, 500, 500);
- widget.show();
+ widget.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&widget));
QVERIFY(childWidget.numPaintEvents == 0);
childWidget.reset();
diff --git a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
index 14d59d3630..b1e43b69ad 100644
--- a/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
+++ b/tests/auto/widgets/styles/qstylesheetstyle/tst_qstylesheetstyle.cpp
@@ -106,7 +106,7 @@ private slots:
void changeStyleInChangeEvent();
void QTBUG15910_crashNullWidget();
void QTBUG36933_brokenPseudoClassLookup();
-
+ void styleSheetChangeBeforePolish();
//at the end because it mess with the style.
void widgetStyle();
void appStyle();
@@ -147,7 +147,7 @@ tst_QStyleSheetStyle::~tst_QStyleSheetStyle()
void tst_QStyleSheetStyle::numinstances()
{
- QWidget w;
+ /*QWidget w;
w.resize(200, 200);
centerOnScreen(&w);
QCommonStyle *style = new QCommonStyle;
@@ -180,7 +180,7 @@ void tst_QStyleSheetStyle::numinstances()
c.setStyle(style);
QCOMPARE(QStyleSheetStyle::numinstances, 2);
w.setStyleSheet("");
- QCOMPARE(QStyleSheetStyle::numinstances, 0);
+ QCOMPARE(QStyleSheetStyle::numinstances, 0);*/
}
void tst_QStyleSheetStyle::widgetsBeforeAppStyleSheet()
@@ -351,7 +351,7 @@ void tst_QStyleSheetStyle::repolish()
void tst_QStyleSheetStyle::widgetStyle()
{
- qApp->setStyleSheet("");
+ /*qApp->setStyleSheet("");
QWidget *window1 = new QWidget;
window1->setObjectName("window1");
@@ -488,12 +488,12 @@ void tst_QStyleSheetStyle::widgetStyle()
delete widget2;
delete window2;
delete style1;
- delete style2;
+ delete style2;*/
}
void tst_QStyleSheetStyle::appStyle()
{
- qApp->setStyleSheet("");
+ /* qApp->setStyleSheet("");
// qApp style can never be 0
QVERIFY(QApplication::style() != 0);
QPointer<QStyle> style1 = QStyleFactory::create("Windows");
@@ -531,7 +531,7 @@ void tst_QStyleSheetStyle::appStyle()
QVERIFY(qApp->style() == style1);
qApp->setStyleSheet("");
- QVERIFY(qApp->style() == style1);
+ QVERIFY(qApp->style() == style1);*/
}
void tst_QStyleSheetStyle::dynamicProperty()
@@ -1754,6 +1754,29 @@ void tst_QStyleSheetStyle::QTBUG36933_brokenPseudoClassLookup()
QVERIFY(testForColors(image, QColor(0xFF, 0x00, 0x00)));
}
+void tst_QStyleSheetStyle::styleSheetChangeBeforePolish()
+{
+ QWidget widget;
+ QVBoxLayout *vbox = new QVBoxLayout(&widget);
+ QFrame *frame = new QFrame(&widget);
+ frame->setFixedSize(200, 200);
+ frame->setStyleSheet("background-color: #FF0000;");
+ frame->setStyleSheet("background-color: #00FF00;");
+ vbox->addWidget(frame);
+ QFrame *frame2 = new QFrame(&widget);
+ frame2->setFixedSize(200, 200);
+ frame2->setStyleSheet("background-color: #FF0000;");
+ frame2->setStyleSheet("background-color: #00FF00;");
+ vbox->addWidget(frame);
+ widget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ QImage image(frame->size(), QImage::Format_ARGB32);
+ frame->render(&image);
+ QVERIFY(testForColors(image, QColor(0x00, 0xFF, 0x00)));
+ QImage image2(frame2->size(), QImage::Format_ARGB32);
+ frame2->render(&image2);
+ QVERIFY(testForColors(image2, QColor(0x00, 0xFF, 0x00)));
+}
QTEST_MAIN(tst_QStyleSheetStyle)
#include "tst_qstylesheetstyle.moc"
diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
index abc0129f8b..c38c254b9a 100644
--- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the test suite of the Qt Toolkit.
@@ -72,6 +72,7 @@
#include <qstylefactory.h>
#include <qabstractitemview.h>
#include <qstyleditemdelegate.h>
+#include <qstandarditemmodel.h>
#include <qproxystyle.h>
static inline void setFrameless(QWidget *w)
@@ -163,6 +164,7 @@ private slots:
void itemData();
void task_QTBUG_31146_popupCompletion();
void keyboardSelection();
+ void setCustomModelAndView();
};
class MyAbstractItemDelegate : public QAbstractItemDelegate
@@ -1580,6 +1582,45 @@ void tst_QComboBox::setModel()
QVERIFY(box.model() != oldModel);
}
+void tst_QComboBox::setCustomModelAndView()
+{
+ // QTBUG-27597, ensure the correct text is returned when using custom view and a tree model.
+ QComboBox combo;
+ combo.setWindowTitle("QTBUG-27597, setCustomModelAndView");
+ combo.setEditable(true);
+ combo.setMinimumWidth(400);
+ const QRect availableGeometry = QGuiApplication::primaryScreen()->availableGeometry();
+ combo.move(availableGeometry.center() - QPoint(200, 20));
+
+ QStandardItemModel *model = new QStandardItemModel(0, 1, &combo);
+
+ QStandardItem *item = new QStandardItem(QStringLiteral("Item1"));
+ item->appendRow(new QStandardItem(QStringLiteral("Item11")));
+ model->appendRow(item);
+
+ item = new QStandardItem(QStringLiteral("Item2"));
+ model->appendRow(item);
+ const QString subItem21Text = QStringLiteral("Item21");
+ QStandardItem *subItem = new QStandardItem(subItem21Text);
+ item->appendRow(subItem);
+
+ QTreeView* view = new QTreeView(&combo);
+ view->setHeaderHidden(true);
+ view->setSelectionMode(QAbstractItemView::SingleSelection);
+ view->setModel(model);
+ view->expandAll();
+ combo.setModel(model);
+ combo.setView(view);
+ combo.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&combo));
+ combo.showPopup();
+ QTRY_VERIFY(combo.view()->isVisible());
+ const QRect subItemRect = view->visualRect(model->indexFromItem(subItem));
+ QWidget *window = view->window();
+ QTest::mouseClick(window->windowHandle(), Qt::LeftButton, 0, view->mapTo(window, subItemRect.center()));
+ QTRY_COMPARE(combo.currentText(), subItem21Text);
+}
+
void tst_QComboBox::modelDeleted()
{
QComboBox box;
diff --git a/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp b/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp
index 8de3291207..d66a10ae56 100644
--- a/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp
+++ b/tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the test suite of the Qt Toolkit.
@@ -54,6 +54,8 @@
#include <qtextedit.h>
#include <qtreeview.h>
#include <qlabel.h>
+#include <qdialog.h>
+#include <qscreen.h>
#include <qdebug.h> // for file error messages
QT_FORWARD_DECLARE_CLASS(QSplitter)
@@ -94,6 +96,8 @@ private slots:
void taskQTBUG_4101_ensureOneNonCollapsedWidget_data();
void taskQTBUG_4101_ensureOneNonCollapsedWidget();
void setLayout();
+ void autoAdd();
+
private:
void removeThirdWidget();
void addThirdWidget();
@@ -781,5 +785,28 @@ void tst_QSplitter::setLayout()
QCOMPARE(splitter.layout(), &layout);
}
+void tst_QSplitter::autoAdd()
+{
+ QSplitter splitter;
+ splitter.setWindowTitle("autoAdd");
+ splitter.setMinimumSize(QSize(200, 200));
+ splitter.move(QGuiApplication::primaryScreen()->availableGeometry().center() - QPoint(100, 100));
+ splitter.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&splitter));
+ // Constructing a child widget on the splitter should
+ // automatically add and show it.
+ QWidget *childWidget = new QWidget(&splitter);
+ QCOMPARE(splitter.count(), 1);
+ QTRY_VERIFY(childWidget->isVisible());
+ // Deleting should automatically remove it
+ delete childWidget;
+ QCOMPARE(splitter.count(), 0);
+ // QTBUG-40132, top level windows should not be affected by this.
+ QDialog *dialog = new QDialog(&splitter);
+ QCOMPARE(splitter.count(), 0);
+ QCoreApplication::processEvents();
+ QVERIFY(!dialog->isVisible());
+}
+
QTEST_MAIN(tst_QSplitter)
#include "tst_qsplitter.moc"