Details
-
Bug
-
Resolution: Out of scope
-
P3: Somewhat important
-
4.6.0, 4.6.1, 4.6.2, 4.6.3, 4.7.0
-
None
Description
When setFixedWidth() (setFixedHeight) is used for a QDockWidget, the vertical (horizontal) size cannot be changed in the dock state. The splitter handle is not available.
Example to reproduce: Modify Qt example
$QTDIR/examples/mainwindows/dockwidgets/mainwindow.cpp
void MainWindow::createDockWindows() { .... customerList->addItems(QStringList() << "John Doe, Harmony Enterprises, 12 Lakeside, Ambleton" << "Jane Doe, Memorabilia, 23 Watersedge, Beaton" << "Tammy Shea, Tiblanka, 38 Sea Views, Carlton" << "Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal" << "Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston" << "Sally Hobart, Tiroli Tea, 67 Long River, Fedula"); /* add this line */ customerList->setFixedWidth(300); dock->setWidget(customerList); .... }
Result:
The splitter cannot be grabbed between "Customers" and "Paragraphs
Expected:
It should be possible to resize the docked widget height with the splitter
Regression:
Between 4.5.3 and 4.6.0 from commit 308ed3913b406c43dfdab4fa734a332863dc4cbc
Suggested patch:
diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp index e8fa6d8..e42cf2f 100644 --- a/src/gui/widgets/qdockarealayout.cpp +++ b/src/gui/widgets/qdockarealayout.cpp @@ -157,7 +157,7 @@ QSize QDockAreaLayoutItem::maximumSize() const bool QDockAreaLayoutItem::hasFixedSize(Qt::Orientation o) const { - return perp(o, minimumSize()) == perp(o, maximumSize()); + return pick(o, minimumSize()) == pick(o, maximumSize()); } bool QDockAreaLayoutItem::expansive(Qt::Orientation o) const