diff options
author | Marius Storm-Olsen <marius.storm-olsen@nokia.com> | 2010-10-01 20:10:58 (GMT) |
---|---|---|
committer | Marius Storm-Olsen <marius.storm-olsen@nokia.com> | 2010-10-01 20:10:58 (GMT) |
commit | bf10dbd2f3e5be3464ad26ebe64230bb61ca994f (patch) | |
tree | e57bef65a7d5f460b8f5c3e47eeb28be62959d6a | |
parent | 4cdaadb332a49513d6082b6ea723dc1968b3ad30 (diff) | |
parent | b3a46493a1a74bd7918bd68638c28cf6e84eb57f (diff) | |
download | Qt-bf10dbd2f3e5be3464ad26ebe64230bb61ca994f.zip Qt-bf10dbd2f3e5be3464ad26ebe64230bb61ca994f.tar.gz Qt-bf10dbd2f3e5be3464ad26ebe64230bb61ca994f.tar.bz2 |
Merge branch 'reviews/2429' into os1-4.7
-rw-r--r-- | src/gui/widgets/qworkspace.cpp | 15 | ||||
-rw-r--r-- | tests/auto/qworkspace/tst_qworkspace.cpp | 10 |
2 files changed, 19 insertions, 6 deletions
diff --git a/src/gui/widgets/qworkspace.cpp b/src/gui/widgets/qworkspace.cpp index 7180c4d..3a9b30c 100644 --- a/src/gui/widgets/qworkspace.cpp +++ b/src/gui/widgets/qworkspace.cpp @@ -2551,7 +2551,6 @@ QWorkspaceChild::QWorkspaceChild(QWidget* window, QWorkspace *parent, Qt::Window this, SLOT(titleBarDoubleClicked())); } - setMinimumSize(128, 0); int fw = style()->pixelMetric(QStyle::PM_MdiSubWindowFrameWidth, 0, this); setContentsMargins(fw, fw, fw, fw); @@ -2702,11 +2701,15 @@ QSize QWorkspaceChild::sizeHint() const QSize QWorkspaceChild::minimumSizeHint() const { - if (!childWidget) - return QWidget::minimumSizeHint() + baseSize(); - QSize s = childWidget->minimumSize(); - if (s.isEmpty()) - s = childWidget->minimumSizeHint(); + QSize s; + if (!childWidget) { + s = QWidget::minimumSizeHint(); + } else { + s = childWidget->minimumSize(); + if (s.isEmpty()) + s = childWidget->minimumSizeHint(); + } + s = s.expandedTo(QSize(128, 0)); return s + baseSize(); } diff --git a/tests/auto/qworkspace/tst_qworkspace.cpp b/tests/auto/qworkspace/tst_qworkspace.cpp index 4cf76b5..9039eb3 100644 --- a/tests/auto/qworkspace/tst_qworkspace.cpp +++ b/tests/auto/qworkspace/tst_qworkspace.cpp @@ -44,6 +44,7 @@ #include <qapplication.h> #include <qmainwindow.h> #include <qmenubar.h> +#include <qlayout.h> #include <qworkspace.h> #if defined(QT3_SUPPORT) #include <q3popupmenu.h> @@ -591,16 +592,25 @@ void tst_QWorkspace::childSize() MyChild *child = new MyChild(&ws); child->show(); + ws.addWindow(child); QCOMPARE(child->size(), child->sizeHint()); delete child; child = new MyChild(&ws); child->setFixedSize(200, 200); child->show(); + ws.addWindow(child); QCOMPARE(child->size(), child->minimumSize()); + QCOMPARE(child->parentWidget()->metaObject()->className(), "QWorkspaceChild"); + QVERIFY(child->parentWidget()->width() >= 200); + // check that the minimum size is respected, using closestAcceptableSize + // like QSizeGrip does. + const QSize newSize = QLayout::closestAcceptableSize(child->parentWidget(), QSize(100, 100)); + QVERIFY(newSize.width() >= 200); delete child; child = new MyChild(&ws); + ws.addWindow(child); child->resize(150, 150); child->show(); QCOMPARE(child->size(), QSize(150,150)); |