summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qsplitter
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-07-15 10:32:07 +0200
committerFriedemann Kleint <Friedemann.Kleint@digia.com>2014-07-15 11:24:38 +0200
commitcdba2439f91c1d3757e5d36f7759ac73a2e8ac2d (patch)
tree8df9dc64fc75fd3e839439457eae26f60316f84f /tests/auto/widgets/widgets/qsplitter
parente0dc27d791cd2106f661bd3d949281aaf1239990 (diff)
QSplitter: Exclude top level widgets from child event handling.
Prevent the splitter from adding them to the layout or showing them. Task-number: QTBUG-40132 Change-Id: Ife2be0bbd7e489570ef41f6f72a034b356c65f18 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Diffstat (limited to 'tests/auto/widgets/widgets/qsplitter')
-rw-r--r--tests/auto/widgets/widgets/qsplitter/tst_qsplitter.cpp29
1 files changed, 28 insertions, 1 deletions
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"