summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp b/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp
index 168a17773e..650f189309 100644
--- a/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp
+++ b/tests/auto/widgets/widgets/qtoolbutton/tst_qtoolbutton.cpp
@@ -66,6 +66,7 @@ private slots:
void task230994_iconSize();
void task176137_autoRepeatOfAction();
void qtbug_26956_popupTimerDone();
+ void qtbug_34759_sizeHintResetWhenSettingMenu();
protected slots:
void sendMouseClick();
@@ -265,5 +266,32 @@ void tst_QToolButton::qtbug_26956_popupTimerDone()
tb->showMenu();
}
+void tst_QToolButton::qtbug_34759_sizeHintResetWhenSettingMenu()
+{
+ // There is no reliable way of checking what's ultimately a style-dependent
+ // sizing. So the idea is checking if the size is the "correct" size w.r.t.
+ // another toolbutton which has had a menu set before it was shown for the first time
+
+ QToolButton button1;
+ QToolButton button2;
+
+ button1.setToolButtonStyle(Qt::ToolButtonIconOnly);
+ button1.setPopupMode(QToolButton::MenuButtonPopup);
+
+ button2.setToolButtonStyle(Qt::ToolButtonIconOnly);
+ button2.setPopupMode(QToolButton::MenuButtonPopup);
+
+ button2.setMenu(new QMenu(&button2));
+
+ button1.show();
+ button2.show();
+
+ QVERIFY(QTest::qWaitForWindowExposed(&button1));
+ QVERIFY(QTest::qWaitForWindowExposed(&button2));
+
+ button1.setMenu(new QMenu(&button1));
+ QTRY_COMPARE(button1.sizeHint(), button2.sizeHint());
+}
+
QTEST_MAIN(tst_QToolButton)
#include "tst_qtoolbutton.moc"