From bb3d2ca9f18071537888622310ca0cb7f587e61d Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Tue, 16 Sep 2014 16:33:57 +0200 Subject: QToolButton: properly reset the size hint when a menu is set on it QToolButton::sizeHint() takes into account the presence of a menu. However, setMenu() doesn't retrigger a size hint recalculation. Hence, (un)setting a menu on an already sized tool button won't properly reset the size hint. Since the calculated size hint is cached, delete the cached value and call updateGeometry to cause a recalculation. Task-number: QTBUG-38949 Change-Id: I6e79e5e70e31afdfd129282b3668875eca86f51d Reviewed-by: Marc Mutz --- src/widgets/widgets/qtoolbutton.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/widgets/widgets/qtoolbutton.cpp b/src/widgets/widgets/qtoolbutton.cpp index 497bc52109..cb441d6c6e 100644 --- a/src/widgets/widgets/qtoolbutton.cpp +++ b/src/widgets/widgets/qtoolbutton.cpp @@ -652,6 +652,10 @@ void QToolButton::setMenu(QMenu* menu) } else { d->menuAction = 0; } + + // changing the menu set may change the size hint, so reset it + d->sizeHint = QSize(); + updateGeometry(); update(); } -- cgit v1.2.3